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 Room 16, FCIT Old Campus
Office Hours: Tuesday, 2:30 p.m. - 3:30 p.m.
Google Classroom: https://classroom.google.com/c/ODg0NDk1ODM1MTU0
TAs: Hassan Ayoub (bcsf23m004@pucit.edu.pk) and Afaq Hussain Bhutta (bcsf23m003@pucit.edu.pk)
Labs: Friday, 9:00 a.m. - 12:00 p.m in New Seminar Hall
Primary textbook
CC211 16-week course map
| Week | Topics | Reading map | Labs | Quizzes | Assignments |
|---|---|---|---|---|---|
| 1 | Orientation, C++ environment and OOP motivation | Deitel 10/e, selected Chapter 1, 2. | Lab1 | Quiz 1 | |
| 2 | Classes, objects and encapsulation | 3.1, 3.2, 3.3. | |||
| Constructors, Initialization, and Valid State | 3.4, 3.5, 3.6. | Lab2 | Quiz 2 | ||
| 3 | Destructors, Object Lifetime, and Dynamic Objects | 9.7, 9.8, 9.14. | Lab3 | Quiz 3 | |
| 4 | Copying, const and static members | 9.10, 9.11, 9.15. | Lab4 | Quiz 4 | |
| 5 | Composition, aggregation and arrays of objects | Selected Chapters 3, 7 and 9. | Lab5 | Quiz 5 | |
| 6 | Operator overloading I | Chapter 10 selected sections. | Lab6 | Quiz 6 | Assignment 1 |
| 7 | Operator overloading II | Chapter 10 selected sections. | Lab7 | Quiz 7 | |
| 8 | Friends, streams and conversions | Selected Chapters 9-10. | Lab8 | ||
| 9 | Inheritance | Chapter 11. | Lab9 | ||
| 10 | Virtual functions and dynamic binding | Chapter 12 selected sections. | Lab10 | ||
| 11 | Abstract classes and advanced polymorphism | Selected Chapter 12; course-authored examples. | Lab11 | ||
| 12 | Multiple inheritance, relationships and UML | Selected Chapters 9 and 11; UML material as appropriate. | Lab12 | ||
| 13 | Streams and file handling | Selected Chapters 13-14. | Lab13 | ||
| 14 | Function and class templates | Selected Chapter 18; course-authored specialization material. | Lab14 | ||
| 15 | Partial specialization and STL | Selected Chapter 15. | Lab15 | ||
| 16 | Exceptions and course integration | Selected Chapter 17. | Lab16 |
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 |