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. |