COURSE PASSPORT

NETB151 Object-Oriented Programming (C++)

NETB171 Object Oriented Design with C++

Credits: 3 for NETB151 and 3 for NETB171
Department Informatics
Lecturers:
Assoc. Prof. PhD Nikolay Kirov (NETB151) and
Assist. PhD Lasko Laskow (NETB171)

e-mail: nkirov<at>nbu.bg, llaskov<at>nbu.bg

We will maintain a course homepage that will contain links to all course handouts and some supplementary materials. The URL for this course is
http://nikolay.kirov.be/2012/NETB151/index.html
(and mirror:
http://www.math.bas.bg/or/nkirov/2012/NETB151/index.html)
which you may want to save as a bookmark in your web browser. 

1. COMPETENCES:

    Students successfully finished this course will:
1) know:
- Pointers and Memory Allocation and Deallocation
- Inheritance, Base and Derived Classes, Polymorphism
- The Inheritance Hierarchy of Stream Classes, String Streams, Random Access
- Basic Sorting Algorithms, Analyzing the Sorting Algorithms
- Linked Lists
- Operator Overloading, Automatic Memory Management, Templates, Nested Classes and Name Spaces, Exception Handling
2) be able to:
- Using Pointers
- Writing classes
- Reading and Writing Text Files
- Writing and Analyzing Sorting Algorithms
- Implementing Linked Lists, Stacks and Queues


2. MAIN TOPICS

1. Pointers
Defining and using Pointers,  Arrays and Pointers. C and C++ Strings. Dynamic Memory allocation. Arrays and Vectors of Pointers. Structures and Pointers.
2. Streams
Reading and Writing Text Files, The Inheritance Hierarchy of Stream Classes, String Streams,  Command Line Arguments, Random Access and Binary files.
3. Classes
Object-oriented Programming. Specifying the Public Interface of a Class. Data Members. Member functions. Constructors. Pointers to objects.
4. Inheritance
Base and Derived Classes, Calling the Base-Class Constructor, Calling Base-Class Member Functions, Polymorphism
5. Recursion
Triangle Numbers, Permutations, Thinking Recursively, Recursive Helper Functions, Mutual Recursion, The Efficiency of Recursion
6. An Introduction to Data Structures
Linked Lists, Implementing Linked Lists, Stacks and Queues, Other Standard Containers, Standard Algorithms
7. Advanced C++ Topics
Operator Overloading, Automatic Memory Management, Memory Management for Linked Lists, Templates, Nested Classes and Name Spaces, Exception Handling

3. RECOMMENDED TEXTBOOKS

Cay Horstmann, C++ For Everyone, 2nd Edition, Wiley, 2011. 
Cay Horstmann, Computing Concepts with C++ Essentials, Third Edition, Wiley, 2003.

4. TEACHING FORMS

Each topic includes one or two lectures.

5. FORM OF EVALUATION AND COMPETENCE ASSESSMENT

NETB151

Tests
Homeworks
Practice
Written exam
Oral exam
Curren evaluation
40%
30%
30%
0%
0%
Exam
40%
0%
20%
20%
20%
NETB171


Homeworks
Practice
Curren evaluation

30%
70%

Exam

30%
70%


6. CURRENT CONTROL AND SCHEDULE  



Points for NETB151
current  evaluation
Points for NETB171
current  evaluation
Week No
Points for NETB151
term exam
Points for NETB171
term exam
Middle Test
NETB151 20 -
- -
Final Test NETB151 20 -
40 -
Homework 1 NETB171 10 10
- 10
Homework 2 NETB171 10 10
- 10
Homework 3 NETB171 10 10
- 10
Exam of practice 1 NETB171 10 10
- -
Exam of practice 2 NETB171 10 10
- -
Final exam of practice NETB171 10 50
20 70
Written exam NETB151 - - - 20 -
Oral exam NETB151 - - - 20 -
Extra points* both till 5 till 5 -  -  -
Total:
100 100 - 100 100
Points (or %) Grade
90-100 Excellent 6
76-89 Very good 5
60-75 Good 4
50-59 Satisfactory 3
0-49 Poor 2

7. ADDITIONAL EXPLANATION ON THE EXAMINATION MATERIALS AND EVALUATION CRITERIA

Obliged attendance of the lessons – minimum 80% (24 hours per each subject = 48 hours from 60)  
http://nikolay.kirov.be/2012/NETB151/

/N. Kirov, L. Laskov/