COURSE PASSPORT

NETB151 Object-Oriented Programming (C++)

NETB171 Object Oriented Design with C++

Lecturers: Nikolay Kirov, Emil Kelevedzhiev
e-mail: nkirov@nbu.bg, keleved@math.bas.bg

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
- The Software Life Cycle, Relationships between Classes, Implementing Associations, Examples
- 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:
- Testing and Debugging
- Using Pointers
- Writing classes
- Reading and Writing Text Files
- Making Object Oriented Design, Software Life Cycle, CRC Cards, Implementing Associations
- Writing and Analyzing Sorting Algorithms
- Implementing Linked Lists, Stacks and Queues


2. MAIN TOPICS

1.  Vectors and Arrays
Arrays, Array Parameters, Character Arrays, Two-Dimensional Arrays
2. Pointers
Pointers and Memory Allocation, Deallocating Dynamic Memory, Common Uses for Pointers, Arrays and Pointers, Pointers to Character Strings
3. Inheritance
Base and Derived Classes, Calling the Base-Class Constructor, Calling Base-Class Member Functions, Polymorphism
4. Streams
Reading and Writing Text Files, The Inheritance Hierarchy of Stream Classes, String Streams,  Command Line Arguments, Random Access
5. Object Oriented Design
The Software Life Cycle, CRC Cards, Cohesion, Coupling, Relationships between Classes, Implementing Associations, Example: Printing an Invoice, Example: An Educational Game
6. Recursion
Triangle Numbers, Permutations, Thinking Recursively, Recursive Helper Functions, Mutual Recursion, The Efficiency of Recursion
7. Sorting and Searching
Selection Sort, Profiling the Selection Sort Algorithm, Analyzing the Performance of the Selection Sort Algorithm, Merge Sort, Analyzing the Merge Sort Algorithm, Searching, Binary Search, Searching and Sorting Real Data
8. An Introduction to Data Structures
Linked Lists, Implementing Linked Lists, Stacks and Queues, Other Standard Containers, Standard Algorithms
9. Advanced C++ Topics
Operator Overloading, Automatic Memory Management, Memory Management for Linked Lists, Templates, Nested Classes and Name Spaces, Exception Handling
10. Graphical User  Interfaces
The wxWindows Toolkit, Frames, Adding a Text Control to the Frame, Menus, Event Handling, Layout Management, Painting, Mouse Events, Dialogs, A Complete Example

3. RECOMMENDED TEXTBOOKS

 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,
after topic
Points for NETB151
exam
Points for NETB171
exam
Test 1 NETB151 10 - 4, Inheritance
- -
Test 2 NETB151 10 - 9, Recursion
- -
Final Test NETB151 20 - 15, Graphical User  Interfaces 40 -
Homework 1 NETB171 10 10 4-5, Inheritance - 10
Homework 2 NETB171 10 10 8-9, Object-Oriented Design - 10
Homework 3 NETB171 10 10 13-15, Advanced C++ Topics - 10
Exam of practice 1 NETB171 10 10 6, Inheritance - -
Exam of practice 2 NETB171 10 10 11, Recursion - -
Final exam of practice NETB171 10 50 14, Advanced C++ Topics
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://www.math.bas.bg/~nkirov/2008/netb151

/N. Kirov/