Course Title: Computer Programming
Course Description: This course provides an introduction to programming using the C language, followed
by an exploration of object-oriented programming (OOP) concepts using C++. Topics include basic
programming structures, control flow, functions, arrays, pointers, structures, unions, and an introduction
to OOP principles, classes, inheritance, polymorphism, and interfaces.
Course Objectives:
• Understand the basic structure of programs and fundamental programming concepts.
• Gain proficiency in writing programs using C language constructs.
• Learn object-oriented programming principles and apply them using C++.
• Develop problem-solving skills through programming exercises and projects.
Week 1-4: Introduction to Programming with C (6 weeks total)
• Week 1: Introduction to Programming, Basic Structure of a Program, Data Types, Variables,
Constants, and Basic Library Functions.
• Week 2: Control Flow and Decision Making: Conditional Statements (if, else-if, switch), Loops (for,
while, do-while), Controlling Loop Execution with break and continue.
• Week 3: Functions and Modular Programming: Types of User-Defined Functions, Passing
Arguments (Call by Value vs. Call by Reference), Scope, and Lifetime of Variables.
• Week 4: Arrays and Pointers: Declaring and Using Arrays, Pointers: Address and Dereferencing,
Dynamic Memory Allocation, Multi-dimensional Arrays and Pointers.
Week 5-8: Object-Oriented Programming with C++ (6 weeks total)
• Week 5: Introduction to Object-Oriented Programming: Understanding OOP Principles and
Benefits, Emulating Objects using Structures, Encapsulation: Data Hiding and Abstraction.
• Week 6: Functions and Pointers in OOP: Function Pointers, Creating Callbacks, Polymorphism in
C: Function Overriding.
• Week 7: Creating Classes: Designing Classes, Data Members, Member Functions, Implementing
Constructors, and Destructors, Public and Private Members within a Class.
• Week 8: Inheritance and Reusability: Achieving Inheritance through Structures, Using Function
Pointers for Inherited Functions.
Week 9,11-12: Advanced Concepts in C++ (6 weeks total)
• Week 9: Polymorphism and Interfaces: Polymorphism with Function Pointers, Creating Interfaces,
Defining Function Signatures.
• Week 11-12: Advanced topics based on student interest or project requirements. Example topics
may include template programming, exception handling, file handling, etc.
Week 10: Midterm Examination (1 week)
• Review of all topics covered in weeks 1-9.
• Practice midterm examination questions covering concepts from C programming, object-oriented
programming principles, classes, inheritance, polymorphism, interfaces, file handling, and
dynamic memory allocation.
• Conduct the midterm examination.
Week 13-16: Application Development and Projects (4 weeks total)
• Week 13-15: Application Development: Students work on individual or group projects applying
the concepts learned in the course.
• Week 16: Project Presentation and Evaluation: Students present their projects and receive
feedback from peers and instructors.
Assessment:
• Weekly Programming Assignments and Assignments (20%)
• Midterm Exam (20%)
• Final Exam (60%)
Reference Books:
1. "C How to Program" by Paul Deitel and Harvey Deitel
• A comprehensive guide to learning C programming, featuring extensive examples,
exercises, and case studies.
2. "C Programming: A Modern Approach" by K. N. King
• A comprehensive introduction to C programming with clear explanations and practical
examples.
3. "Programming in C" by Stephen G. Kochan
• Covers the fundamentals of C programming with exercises and programming projects for
reinforcement.
4. "The C Programming Language" by Brian W. Kernighan and Dennis M. Ritchie
• A concise and authoritative reference to the C programming language authored by its
creators.
5. "C How to Program" by Paul Deitel and Harvey Deitel
• A comprehensive guide to learning C programming, featuring extensive examples,
exercises, and case studies.
6. "C++ Primer" by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo
• An introductory text for learning C++ covering language features, standard library, and
object-oriented programming concepts.
7. "Effective C++: 55 Specific Ways to Improve Your Programs and Designs" by Scott Meyers
• Offers practical advice and guidelines for writing efficient and maintainable C++ code.
8. "C++ Primer Plus" by Stephen Prata
• Provides a thorough introduction to C++ programming with clear explanations and
examples.
9. "Object-Oriented Programming with C++" by E. Balagurusamy
• Focuses on teaching object-oriented programming concepts using the C++ language with
examples and exercises.