Csc1203 Programming Language 2 Courseoutline Spring 2021-2022
Csc1203 Programming Language 2 Courseoutline Spring 2021-2022
Csc1203 Programming Language 2 Courseoutline Spring 2021-2022
COURSE OUTLINE
Term: Spring 2021-2022
VI - Objectives: At the end of the course, the following objectives should be achieved:
1. A comprehensive understanding on the principles of Object-Oriented Programing (OOP).
2. A detail knowledge of C++ programming.
3. A firm grab on solving real life problems using OOP principles.
4. Implementation of OOP solutions using C++ language.
5. Prepare and present a group project.
1
inheritance, encapsulation,
abstraction & polymorphism)
f. Coding environment (compiler,
editor), example IDE.
g. Basic building blocks of C++
program (namespace, scope
resolution operator, syntax for
input, output, header file, etc.)
Classes and a. Define: Class, Object Week a. Justifying. a. Illustrative
Objects in C++ b. Illustrative real life example for 2 b. Class Lecture.
deriving class and objects exercises. b. Class room
c. Definition and declaration of a c. Assignments. question
class, class data member, member Group answer
function, and object. discussion. session
d. Access modifiers (private, public, c. Board work.
protected) and their purpose.
e. Application of access modifiers for
class, and class members
(variables and function).
f. Accessing class data member and
member function from inside and
outside of the class.
g. Memory mapping for Class, object
and their members.
Functions and a. Declaring and defining functions. Week a. Justifying. a. Illustrative
Operators in Setter, getter functions in a Class. 3&4 b. Class Lecture.
C++ b. Passing arguments to a function exercises. b. Class room
(call-by-value, call-by-reference). c. Assignments. question
c. Default arguments /parameter for Group answer
functions. discussion. session
d. Function overloading c. Board work.
(polymorphism).
Constructor, a. Constructor and Destructor: what Week a. Justifying. a. Illustrative
Destructor, and why? 5 b. Class exercises. Lecture.
Class member b. Default constructor, c. Assignments. b. Class room
in C++ Parameterized constructor. Group question
c. Constructor and destructor discussion. answer
calling order. session
d. Class members: why and how c. Board work.
(Static data member and
function)
Inheritance in a. Base class and derived class in Week a. Justifying. a. Illustrative
C++ relation to inheritance (real life 6 b. Class exercises. Lecture.
example) c. Assignments. b. Class room
b. What is inherited in inheritance Group question
/Access control in Inheritance discussion. answer
(public, private and protected) session
2
c. Multiple inheritances. c. Board work.
Mid Term exam (Week 7)
Data a. Data Encapsulation (data hiding), Week a. Justifying. a. Illustrative
Encapsulation, Benefits of Data Encapsulation. 8 & 9 b. Class exercises. Lecture.
Abstraction b. Data Abstraction and benefits of c. Assignments. b. Class room
and data abstraction, Interface in Group question
Polymorphism data abstraction. discussion. answer
in C++ c. Virtual function, object pointers, session
dynamic linkage, late binding. c. Board work.
d. Polymorphism, Pure virtual
function.
3
Standard a. STL and its purpose in C++. Week a. Justifying. a. Illustrative
Template b. Discussion on STL: Sequence 13 b. Class exercises. Lecture.
Library in C++ Containers (vector, list, deque), c. Assignments. b. Class room
Associate Containers (multiset, Group discussion. question
set, multimap, map), Container answer session
Adapters (stack, queue, priority c. Board work.
queue. Lab final and Project
Demonstration.
Final Term Exam
Week 14
IX– Evaluation
Mid and Final term Attendance 10
Theory Quiz 20
Lab Quiz 10
Lab Work/Assignment 10
Exam 50
Total 100
Grand Total 40% of Midterm + 60% of Final Term
X – Textbook/ References
Basic Texts
1. Teach Yourself C++, 3rd Edition, Herbert Schildt.
2. The C++ Complete Reference, 4th Edition, Herbert Schildt.
3. http://www.cplusplus.com/doc/tutorial/
4
6. Essential C++ (The C++ In-depth Series) by Stanley B. Lippman