Programming Fundamental
Programming Fundamental
Course This course provides fundamental concepts of programming to freshmen. The courses is
prerequisite to many other courses, therefore, students are strongly advised to cover all contents
Introduction and try to achieve CLOs to the maximum possible level.
At the end of the course, the students will be able to: BT PLO
Course C2
CLO1: Understand basic problem-solving steps and logic constructs. 1,2
Learning (Understand)
Outcomes CLO2: Apply basic programing concepts. C3 (Apply) 3,4
(CLOs)
CLO3: Design and implement algorithms to solve real world
C3 (Solve) 3,4
problems.
Introduction to Problem Solving, Algorithms, Programming, and C Language: Problem Solving, a
brief review of Von-Neumann Architecture., The C Programming Language, Pseudo-code, Concept of
Variable, Data types in Pseudo-code, The C Standard Library and Open Source, Input/Output, Arithmetic
expressions, Assignment statement, Operator precedence, Concept of Integer division, Flowchart and its
notations, Typical C Program Development Environment, Role of Compiler and Linker, Test Driving C
Application. Introduction to C Programming: A Simple C Program: Printing Text, Adding Two Integer,
Memory Concepts, Arithmetic in C, Operators. Decision Making: Equality and Relational Operators.
Structured Program Development: The if, if…else, while Nested Control Statements. Program Control:
for, switch, do…while, break, continue, Logical Operators. Functions: Modularizing Program in C, Math
Library Functions, Function Definitions and Prototypes, Function-Call Stack and Stack Frames, Stack
rolling and unrolling, Headers, Passing Arguments by Value and by Reference, Random Number
Generation, Scope Rules, Recursion, Recursion vs Iteration. Arrays: Defining Arrays, Character Arrays,
Static and Automatic Local Arrays, Passing Arrays to Function, Sorting and Searching Arrays,
Course
Multidimensional and Variable Length Arrays. Pointers: Pointer Definitions and Initialization, Pointer
Description Operators, Passing Arguments to Function by Reference, Using the const and sizeof Operator, Pointer
Expressions and Arithmetic, Pointers and Arrays, Array of Pointers, Function Pointers. Characters and
Strings: Strings and Characters, Character Handling Library, String Functions, Library Functions.
Formatted Input/Output: Streams, Formatted Output with printf, Formatted Input with scanf.
Structures: Defining Structures, Accessing Structure Member, Structures and Functions, typedef, Unions.
Bit Manipulation and Enumeration: Bitwise Operators, Bit Fields, Enumeration Constants. File
Processing: Files and Streams, Creating, Reading and Writing data to a Sequential and a Random-Access
File. Preprocessor: #include, #define, Conditional Compilation, #error and #pragma, # and ## Operators,
Predefined Symbolic Constants, Assertions. Other Topics: Variable Length Argument List, Using
Command Line Arguments, Compiling Multiple-Source-File Programs, Program Termination with exit and
atexit, Suffixes for Integer and Floating-Point Literals, Signal Handling, Dynamic Memory Allocation
calloc and realloc, goto. Advance Topics: Self-Referential Structures, Linked Lists. Efficiency of
Algorithms, Selection and Insertion Sort.
Text Book(s) Paul Deitel, Harvey Deitel, C How To Program, 9th Edition, Pearson, 2022.
1. Tony Gaddis, Starting out with Programming Logic and Design, 5th Edition, Pearson, 2018.
Reference 2. The C Programming Language, 2nd Edition by Brian W. Kernighan, Dennis M. Ritchie
Material 3. Object Oriented Programming in C++ by Robert Lafore
1. Problem Solving and Program Design in C++, 7th Edition by Jeri R. Hanly & Elliot B. Koffman