Programming Fundamentals
This course introduces fundamental computing concepts and structured programming methodologies. Students will develop logical reasoning, algorithmic problem-solving skills, and practical programming proficiency using the C language.
Instructor: Mr. Musawar Ali
Term: Fall
Location: CS Department, National University of Computer & Emerging Sciences, Karachi
Course Overview
The objective of this course is to systematically build computational thinking, problem-solving techniques, and foundational structured software development skills.
Students will:
- Describe fundamental concepts of structured and procedural programming using the C language.
- Examine source code writing, compiling, debugging, and standalone program execution.
- Justify problem-solving techniques and analytical thinking by identifying the properties of algorithms.
- Design real-world algorithmic solutions through small-to-medium programming applications given as projects.
Prerequisites
- None
Textbooks
- C How to Program, 7th Edition, Paul Deitel & Harvey Deitel (Publisher: Pearson).
- Problem Solving and Program Design in C, 7th Edition, Maureen Sprankle & Jim Hubbard (Publisher: Prentice Hall).
Reference Material
- Working with C / Let us C, Yashwant Kanetkar (Publisher: BPB Publications).
- Waite Group’s Turbo C — Programming for the PC, Robert Lafore (Publisher: SAMS).
Grading
- Assignments: 10%
- Course Project: 10%
- Midterm 1: 15%
- Midterm 2: 15%
- Final Examination: 50%
Core Course Components & Communication
- Programming Assignments: Graded assignments will map core implementation areas including functions, array manipulation, memory pointers, custom structures, dynamic memory allocation, and file processing workflows.
- Project Scope: Students design and defend small-to-medium application problems to validate their programming tools and logic. Course project parameters are announced in Week 2, with final source code deliverables integrated into Week 13 tracking.
- Communication Deliverables: Every student must submit a minimum of 1 written technical report of approximately 2 pages and deliver 1 oral presentation lasting 10 minutes. These artifacts are graded rigorously for grammar, styling, technical accuracy, and completeness.
Schedule
| Week | Date | Topic | Materials |
|---|---|---|---|
| 1-2 | Computer Organization, Algorithms & Flowcharts Basic computer organization, introduction to the IDE (compiled programs, text editors, debuggers), program structure, and basic I/O. Introduction to algorithm design, writing pseudo-code, and drawing flowcharts with working examples. | ||
| 3-5 | C Syntax Fundamentals & Looping Structures Keywords, escape sequences, data types, data manipulation, and math.h. Deep dive into looping structures (for, while, do-while) and control structures (if, if-else, nested-if) alongside targeted coding examples. | ||
| 6 | Midterm I Midterm I Examination phase. | ||
| 7-10 | Advanced Control, Arrays & Strings Ternary operator (?), switch statements, and nested looping. Comprehensive coverage of arrays (initializing and traversing 1D and 2D arrays), introduction to string structures, string operations, and array manipulation examples. | ||
| 11 | Functions & Modular Programming Introduction to functions, passing values to functions, and passing complete array structures to modular blocks. | ||
| 12 | Midterm II Midterm II Examination phase. | ||
| 13-14 | Pointers & File I/O Streams Introduction to pointers, passing pointer variables to functions, and introduction to data filing. Working with text and binary input/output configuration examples. | ||
| 15-16 | User-Defined Structures & Revisions Introduction to structures, working with structural variables, and introduction to unions. Comprehensive code review and finalization of class sessional marks. | ||
| 17 | Final Examination Final Comprehensive Examination. |