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.