Course Information


Course Information
Course Title Code Semester L+U Hour Credits ECTS
COMPUTER PROGRAMMING II BLM1002 0 + 0 0 0

Prerequisites None

Language of Instruction Turkish
Course Level Graduate Degree
Course Type Compulsory
Mode of delivery
Course Coordinator
Instructors
Assistants
Goals The objective of this course is to focus on language features supporting data abstraction, object oriented programming and generic programming through C++ programming language. In the first part of this course students study the subset of C++ that supports the styles of programming traditionally done in C. It covers fundamental types, expressions and control structures for C++. Modularity is discussed, as supported by namespaces and source files. In the second part, C++ facilities for defining and using new types are introduced. Concrete and abstract types (classes), together with operator overloading, polymorphism and the use of class hierarchies. Then, templates are teached for defining families of types and functions. Moreover, students also work on exception handling, standard library and input/output mechanisms supported by C++.
Course Content Introduction to C++; Types and Declerations, Expressions & Statements;Pointers, Arrays and Structures; Functions; Classes; Classes, Classes, Operator Overloading (Copying objects, assignment vs copy constructors, class objects as members, operator functions); Classes, Operator Overloading (binary and unary operators, operators and user defined types, operators in namespaces, friend functions/classes); Derived Classes (has a/is a relation, inheritance types, class hierachies); Derived Classes (virtual functions, abstract classes, polymorphism); Class Hierarchies (Multiple inheritance, ambiguity resolution, replicated base classes); Class Hierarchies (Virtual base classes, multiple inheritance and access control, run-time type information); Templates (Function templates, instantiation, template classes); Exception Handling (assert library, try/catch expressions); STL Library (container classes: vectors, list, set, map, multiset, multimap, STL algorithms, iterators).
Learning Outcomes 1) Acquisition of the basics of the object oriented and generic programming constructs.
2) Matematiksel ifadeleri bilgisayarda çözümleyecek C++ programlama kodunu yazar.
3) Bilgisayar programlama dillerini kavrar.
4) Ability to design and implement user defined types (classes).
5) Ability to design and implement object oriented solutions to a varied range of problems on computers.
6) Ability to design and implement generic libraries using class/function templates for a varied range of domains.
7) Ability to use STL container classes and algortihms in complex projects.
8) Ability to write, compile and debug C++ programmes to solve varied range of problems in different domains.

Weekly Topics (Content)
Week Topics Teaching and Learning Methods and Techniques Study Materials
1. Week Introduction to C++ (A very broad overview of the language constructs and types of programming styles supported by C++ PL) Lecture; Question Answer; Discussion
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Presentation (Including Preparation Time)
2. Week Types and Declerations, Expressions & Statements Lecture; Question Answer; Discussion
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Presentation (Including Preparation Time)
3. Week Pointers, Arrays and Structures Lecture; Question Answer; Discussion
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Homework Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
4. Week Functions (Definition vs. decleration, inline functions, static variables, argument passing, function overloading, scope, default arguments, function pointers) Lecture; Question Answer
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Homework Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
5. Week Classes ( Structure overview, constructors, static members, constant member functions, self reference, in-class function definition, default constructors, destructors) Lecture; Question Answer; Problem Solving; Discussion
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Homework Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
6. Week Classes, Operator Overloading (Copying objects, assignment vs copy constructors, class objects as members, operator functions) Lecture; Question Answer; Problem Solving; Discussion
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
7. Week Classes, Operator Overloading (binary and unary operators, operators and user defined types, operators in namespaces, friend functions/classes) Lecture; Question Answer; Problem Solving; Discussion
Brainstorming; Opinion Pool
Problem Based Learning
Homework Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
8. Week Derived Classes (has a/is a relation, inheritance types, class hierachies) Lecture; Question Answer; Problem Solving
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning; Play Based Learning
Homework Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
9. Week Derived Classes (virtual functions, abstract classes, polymorphism) Lecture; Question Answer; Problem Solving
Brainstorming; Opinion Pool
Problem Based Learning; Storyline; Scenario Based Learning
Homework Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
10. Week Class Hierarchies (Multiple inheritance, ambiguity resolution, replicated base classes) Lecture; Question Answer; Discussion; Case Study
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning; Play Based Learning
Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
11. Week Class Hierarchies (Virtual base classes, multiple inheritance and access control, run-time type information) Lecture; Question Answer
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Homework Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
12. Week Templates (Function templates, instantiation, template classes) Lecture; Question Answer; Problem Solving; Discussion
Brainstorming; Opinion Pool
Project Based Learning; Problem Based Learning; Scenario Based Learning
Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
13. Week Exception Handling (assert library, try/catch expressions) Lecture; Question Answer; Problem Solving; Discussion
Brainstorming
Problem Based Learning
Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)
14. Week STL Library (container classes: vectors, list, set, map, multiset, multimap, STL algorithms, iterators) Lecture; Question Answer; Discussion
Brainstorming; Opinion Pool
Problem Based Learning; Scenario Based Learning
Practice (Teaching Practice, Music/Musical Instrument Practice, Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice)

Sources Used in This Course
Recommended Sources
“The C++ Programming Language (Third Edition or Special Edition)”, Bjarne Stroustrup, Addison-Wesley, ISBN 0-201-88954-4 and 0-201-70073-5.

ECTS credits and course workload
Event Quantity Duration (Hour) Total Workload (Hour)
Course Duration (Total weeks*Hours per week) 14 4
Work Hour outside Classroom (Preparation, strengthening) 14 2
Homework 4 20
Practice (Teaching Practice, Music/Musical Instrument Practice , Statistics, Laboratory, Field Work, Clinic and Polyclinic Practice) 8 2
Time to prepare for Quiz 8 6
Midterm Exam 1 2
Time to prepare for Midterm Exam 1 16
Final Exam 1 2
Time to prepare for Final Exam 1 16
1 2
1 2
8 2
Total Workload
Total Workload / 30 (s)
ECTS Credit of the Course
Quick Access Hızlı Erişim Genişlet
Course Information