CC211 / CSC-111 Object Oriented Programming with Lab
Nazar Khan
Programming is the design and development of solutions to computational problems. CC211 builds on Programming Fundamentals and develops the ability to design, implement, debug and reason about software using objects, responsibilities, relationships and reusable components.
Credit hours: 4 (3,1)
Prerequisite: CC112 / CSC-110 Programming Fundamentals
Follow-up: CC213 / CSC-210 Data Structures
Language: C++17
Compiler: GCC 9.4
Debugger: GDB
Learning outcomes
Lectures:
Tuesday and Thursday, 12:15 p.m. - 1:45 p.m. in New Seminar Hall, FCIT Old Campus
Office Hours: Monday, 2:30 p.m. - 3:30 p.m.
Google Classroom: https://classroom.google.com/c/
Assessment:
Quizzes |
Short checks of tracing, design and explanation |
Assignments |
Progressive implementation and design tasks |
Examinations and project |
Reasoning, implementation, debugging and integration |
Primary textbook
CC211 16-week course map
| Week | Topics | Reading map |
|---|---|---|
| 1 | Orientation, C++ environment and OOP motivation Compile/run/test workflow; C++ and C; targeted prerequisite bridge. | Deitel 10/e, selected Chapter 1; targeted Chapter 8 pointer/array review. |
| 2 | Classes, objects and encapsulation | Chapter 3 selected sections. |
| 3 | Constructors, destructors and object lifetime | Chapter 3.4; selected Chapters 9 and 10. |
| 4 | Copying, const and static members | Selected Chapters 9-10. |
| 5 | Composition, aggregation and arrays of objects | Selected Chapters 3, 7 and 9. |
| 6 | Operator overloading I | Chapter 10 selected sections. |
| 7 | Operator overloading II | Chapter 10 selected sections. |
| 8 | Friends, streams and conversions | Selected Chapters 9-10. |
| 9 | Inheritance | Chapter 11. |
| 10 | Virtual functions and dynamic binding | Chapter 12 selected sections. |
| 11 | Abstract classes and advanced polymorphism | Selected Chapter 12; course-authored examples. |
| 12 | Multiple inheritance, relationships and UML | Selected Chapters 9 and 11; UML material as appropriate. |
| 13 | Streams and file handling | Selected Chapters 13-14. |
| 14 | Function and class templates | Selected Chapter 18; course-authored specialization material. |
| 15 | Partial specialization and STL | Selected Chapter 15. |
| 16 | Exceptions and course integration | Selected Chapter 17. |
Assessment note: Quizzes, progressive assignments, examinations and a small-scale application project are planned. Exact marks and percentages follow the instructor's finalized assessment policy.
Legacy PF schedule
|
# |
Topics |
Readings |
Miscellaneous |
|
1 |
|
DD 1.1 -- 1.4 |
|
|
2 |
|
DD 1.5 -- 1.10 |
|
|
3 |
Introduction to C Programming - I
|
DD 2.1 -- 2.4 |
|
|
4 |
Introduction to C Programming - II
|
DD 2.5 -- 2.6 |
Assignment 1 |
|
5-8 |
Structured Program Development in C
|
DD 3.1 -- 3.12 |
Assignment 2 |
|
9-13 |
|
DD 4.4 -- 4.11 |
Assignment 3 |
|
14-16 |
|
DD 5.1 -- 5.9 |
|
|
|
Mid-term Exam |
|
|
|
17-18 |
|
DD 5.10 -- 5.11 |
Assignment 4 |
|
19-20 |
Storage Classes and Scope Rules
|
DD 5.12 -- 5.13 |
|
|
21 |
|
DD 5.14 -- 5.16 |
Assignment 5 |
|
22-25 |
|
DD 6.1 -- 6.12 |
Assignment 6 |
|
26-28 |
|
DD 7.1 -- 7.12 |
Assignment 7 |
|
29 |
|
DD 10.1 -- 10.7, 10.9, 10.10 |
|
|
30 |
|
DD 11.1 -- 11.7 |
Assignment 8 |
|
31 |
|
DD 13.1 -- 13.6, 13.10 |
|
|
|
Final Exam |