Programming Fundamentals - Lab

Getting students acquainted with problem understanding, modeling and solving. Covers computation, problem-solving techniques, and complete syntax implementation using the C programming language.

Instructor: Mr. Musawar Ali

Term: Fall

Location: CS Department, National University of Computer & Emerging Sciences, Karachi

Course Overview

The goal of this course is to introduce fundamental computing methodologies, emphasizing mathematical modeling, logical algorithm formulation, and robust problem execution.

Students will:

  • Gain deep familiarity with understanding, modeling, and structurally solving problems.
  • Learn the explicit core concepts underpinning modern programming languages.
  • Master algorithmic execution designs mapped directly onto real-world problems.
  • Implement programmatic solutions using structured syntax models within the C programming language.

Prerequisites

  • None

Textbooks

  • C How to Program, 7th Edition, Paul Deitel & Harvey Deitel (Pearson).
  • Problem Solving and Programming Concepts, 9th Edition, Maureen Sprankle & Jim Hubbard (Prentice Hall).

Reference Material

  • Working with C / Let us C, Yashwant Kanetkar (BPB Publications).
  • Waite Group’s Turbo C — Programming for the PC, Robert Lafore (SAMS).

Grading

  • Assignments: 20%
  • Course Project: 10%
  • Midterm Examination 1: 10%
  • Midterm Examination 2: 10%
  • Final Examination: 50%

Academic Integrity & Policies

  • Cheating & Plagiarism: Strict zero-tolerance policy in alignment with institutional regulations. Plagiarized submissions carry a minimum 100% course grade penalty (course failure) and automatic referral to the department committee.
  • Late Policy: Late assignment turn-ins are permitted up until class-wide solution discussions take place, carrying a maximum grading penalty of 50%.
  • Quizzes: Unannounced quizzes may be administered at the start of sessions. Missed quizzes cannot be made up under any circumstances.
  • Communication: Students are required to send a same-day email verification to the instructor for any verbal permissions or adjustments made during class hours (e.g., class participation credits, late submission grace periods, or approved leaves).
  • Core Communications: Every student must submit 1 written technical report (typically 2 pages) and deliver 1 oral presentation (typically 10 minutes) evaluated on grammatical precision, style, and technical accuracy.

Schedule

Week Date Topic Materials
1-2 Problem Modeling & Flowcharting

Algorithm analysis, problem modeling, basic flowchart design, and introductory block diagrams.

3-4 Basic C Syntax & Control Structures

Data types, basic programming with algorithms and flowcharts, operators, input/output structures, and control structures including if-else, nested-if, and switch statements.

5-7 Repetition & Array Buffers

Loops, nested loops, 1D arrays, multiple subscripted arrays (2D/3D arrays), and string manipulation. Mid-1 Examination and course project assignment distribution are handled during this tracking phase.

8-10 Modular Execution & Memory Pointers

Functions, recursive problem solving, introduction to memory address pointers, dynamic memory allocation routines, pointer functions, and void pointers. Includes the Lab Midterm evaluation.

12 Custom Types & Structures

Introduction to user-defined data structures, structural arrays, pointers to structures, and optional union data structures.

13-14 Persistent File Processing & Review

Comprehensive file processing mapping both text and binary stream operations alongside focused structural reviews covering structures, pointers, and array frameworks.

15-16 Laboratory Examinations & Project Defenses

Course wrap-up revisions, Final Practical Lab Examination, and dedicated project evaluation defenses.