Csc1203 Programming Language 2 Courseoutline Spring 2021-2022

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

AMERICAN INTERNATIONAL UNIVERSITY-BANGLADESH (AIUB)

Faculty of Science and Technology


Department of Computer Science
Undergraduate Program

COURSE OUTLINE
Term: Spring 2021-2022

I - Course Code and Title: CSC 1203: Programming Language 2


II - Credit: 3/1 credit hours (3 hours of Lab and 2 hours of theory per week)
III - Nature: Major Course
IV - Prerequisite: CSC 1102: Programming Language 1
V - Course Description: Introduction to C++, Object Oriented Programming Principles, Classes,
Objects, Operator Overloading, Inheritance, Multiple Inheritance, Virtual Functions and Polymorphism,
Encapsulation, Abstract Classes, Interface, C++ Stream Input/Output, File Processing, Templates, Exception
Handling, Class string and String Stream Processing, Standard Template Library (STL)

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.

VII – Topics to be covered

TOPICS Specific Objective(s) Time Suggested Activities Teaching


Frame Strategy(s)
Introduction a. Biography of C++: origin, c++ as Week a. Justifying. a. Illustrative
to C++ and midlevel language and as an OOP 1 b. Class Lecture.
Object b. Object Oriented Programming exercises. b. Class room
Oriented c. Procedural vs. OOP c. Assignments. question
Programming d. Need of OOP d. Group answer
Principles e. Pillars / fundamental building discussion. session
blocks of OOP (class, object, c. Board work.

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.

C++ Stream a. File manipulation: Week a. Justifying. a. Illustrative


Input/Output, Open and close a file, Read and 10 b. Class exercises. Lecture.
File writing to and from a file, C++ c. Assignments. b. Class room
Processing, library for file streaming. Group question
String in C++ b. String representation: C-style discussion. answer
character string, String class. session
c. Methods in String class: capacity, c. Board work.
reserve, assign, compare, erase,
conversion, concatenation,
copying, and others.

Exception a. Define exception, distinction Week a. Justifying. a. Illustrative


Handling between exception and compile 11 b. Class exercises. Lecture.
time error. c. Assignments. b. Class room
b. Handling exceptions in c++ Group question
c. Use of try, catch, throw in discussion. answer session
handing exceptions. c. Board work.
d. Default and multiple catch blocks,
nested try blocks.
User defined exception using
exception class.
Function and a. Creating Template functions (an Week a. Justifying. a. Illustrative
Operator alternate to overloading). 12 b. Class exercises. Lecture.
Overloading b. Friend function and friend class. c. Assignments. b. Class room
c. Operator overloading: what and Group question
why. discussion. answer session
d. Unary and binary operator c. Board work.
overloading.
e. Dynamic memory allocation and
deallocation with New and delete
operator.
f. Stream insertion and extraction
operator.
this pointer.

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

VIII- Course Requirements


1. Must appear at least two quizzes before the midterm examination and two before the final term
examination.
2. Should submit at least 80% of the lab assignments.
3. Should submit at least 80% of the class exercises.
4. Must submit and present a project based on any application regarding any of the algorithm
techniques. There can be more than one small projects or one big project through the semester.
5. Must appear at the Midterm and the Final term examination.
Students must have 80% attendance to pass the course.

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/

Reference Texts/ Weblinks:


1. C++ How to Program, 4th Edition, Deitel and Deitel.
2. The C++ Programming Language, Special 3rd Edition, Bjarne Stroustrup
3. Thinking in C++, Volume One, 2nd Edition. Bruce Eckel.
Downloadable from http://www.BruceEckel.com.
4. The C++ Programming Language by Bjarne Stroustrup
5. C++ Primer Plus, 5th Edition by Stephen Prata

4
6. Essential C++ (The C++ In-depth Series) by Stanley B. Lippman

You might also like