COURSE PASSPORT Object-Oriented Programming (C++) NETB151 and NETB161 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. Testing and Debugging Unit Tests, Selecting Test Cases, Test Case Evaluations, Assertions, Program Traces, The Debugger, Strategies, Debugger Limitations 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 1 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 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% NETB161 Exam 40% 0% 20% 20% 20% Homeworks Practice 2 Curren evaluation Exam 30% 70% 30% 70% 6. CURRENT CONTROL AND SCHEDULE NETB101 NETB111 Week No, current current after topic evaluation evaluation NETB101 NETB111 exam exam Test 1 NETB151 10 - 5, Inheritance - - Test 2 NETB151 10 - 10, Recursion - - Final Test NETB151 20 - 15, Advanced C++ Topics 40 - Homework 1 NETB161 10 10 4-5, Inheritance - 10 Homework 2 NETB161 10 10 8-9, Object-Oriented Design - 10 Homework 3 NETB161 10 10 14-15, Advanced C++ Topics - 10 Exam of practice 1 NETB161 10 10 6, Inheritance - - Exam of practice 2 NETB161 10 10 11, Recursion - - Final exam of practice NETB161 10 50 15, Advanced C++ Topics 20 70 Written exam NETB151 - - - 20 - Oral exam NETB151 - - - 20 - Extra points* both till 5 till 5 - - - 100 100 - 100 100 Total: 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/2005/netb151 /N. Kirov/ 3