| Course Name |
Advanced C++: Templates and Generic Programming
|
|
Code
|
Semester
|
Theory
(hour/week) |
Application/Lab
(hour/week) |
Local Credits
|
ECTS
|
|
SE 310
|
FALL
|
3
|
0
|
3
|
5
|
| Prerequisites | None | |||||
| Course Language | English | |||||
| Course Type | ELECTIVE_COURSE | |||||
| Course Level | First Cycle | |||||
| Mode of Delivery | Face-To-Face | |||||
| Teaching Methods and Techniques of the Course | - | |||||
| National Occupational Classification Code | - | |||||
| Course Coordinator |
|
|||||
| Course Lecturer(s) |
|
|||||
| Assistant(s) | - | |||||
| Course Objectives | C++ is one of the most used programming languages in the industry thanks to its flexible design, scalability and efficiency. The main purpose of this course is to improve students' C++ knowledge and programming skills and to introduce them to the latest innovations in the C++ language. Some of these innovations are generic programming techniques, especially the Standard Template Library (STL) library, and selected Boost C++ libraries. Topics of this course include programming with templates, advanced template programming techniques, generic programming, using customized templates, type properties, GUI programming with C++, Standard Template Library, STL container, STL iterator, STL algorithms, and selected Boost C++ libraries. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Learning Outcomes |
The students who succeeded in this course;
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| Course Description | In this course, students are given basic information about templates and the principles of generic programming and frequently used generic libraries are introduced. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Related Sustainable Development Goals |
-
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Core Courses |
|
| Major Area Courses |
X
|
|
| Supportive Courses |
|
|
| Media and Managment Skills Courses |
|
|
| Transferable Skill Courses |
|
| Week | Subjects | Required Materials | Learning Outcome |
| 1 | Introduction and motivation. Brief reminder of C++ object-oriented programming | LO1 | |
| 2 | Basic template information. Function and class templates | David Vandevoorde and Nicolai M. Josuttis. C++ Templates: The Complete Guide. Addison Wesley, 2003. (Course book) Chapter 2- 3 | LO2 |
| 3 | Out-of-type template parameters, fine details | Textbook Chapter 4-5 | LO2 |
| 4 | Use of templates in daily programming | Textbook Chapter 6 | LO1 |
| 5 | Multi-format usage capabilities of templates | Textbook Chapter 14 | LO1 |
| 6 | Type properties and rule classes | Textbook Chapter 15 | LO2 |
| 7 | Templates and inheritance | Textbook Chapter 16 | LO2 |
| 8 | Graphical interface programming with Qt 4.6 | C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) Prentice Hall, 2008 | LO4 |
| 9 | Introducing the Standard Template Library | Josuttis, Nicolai M. The C++ standard library: a tutorial and reference. Addison Wesley, 1999 (STL Book) Chapter 2 | LO5 |
| 10 | Map, Multimap, Set and Multiset. | STL Book Chapter 6 | LO5 |
| 11 | STL iterators | STL Book Chapter 7 | LO5 |
| 12 | STL algorithms | STL Book Chapter 8 | LO5 |
| 13 | Boost Smart Pointers | Boost C++ libraries website | LO5 |
| 14 | Other Boost C++ libraries | Boost C++ libraries website | LO5 |
| 15 | Project presentations | LO1 | |
| 16 | Review of the semester | LO1 |
| Course Notes/Textbooks |
"Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. Third Ed. Prentice Hall. 2010. ISBN10: 0132124114 David Vandevoorde and Nicolai M. Josuttis. C++ Templates: The Complete Guide. Addison Wesley 2003." |
| Suggested Readings/Materials |
C++ GUI Programming with Qt 4 (2nd Edition) (Prentice Hall Open Source Software Development Series) Prentice Hall 2008 Josuttis Nicolai M. The C++ standard library: a tutorial and reference. Addison Wesley 1999 Boost C++ libraries website |
| Semester Activities | Number | Weighting | LO1 | LO2 | LO3 | LO4 | LO5 |
| Midterm | 1 | 25 | X | X | |||
| Final Exam | 1 | 40 | X | X | X | ||
| Homework / Assignments | 1 | 10 | X | X | |||
| Project | 1 | 25 | X | X | X | ||
| Total | 4 | 100 |
| Semester Activities | Number | Duration (Hours) | Workload |
|---|---|---|---|
| Participation | - | - | - |
| Theoretical Course Hours | 15 | 3 | 45 |
| Laboratory / Application Hours | - | - | - |
| Study Hours Out of Class | 15 | 2 | 30 |
| Field Work | - | - | - |
| Quizzes / Studio Critiques | - | - | - |
| Portfolio | - | - | - |
| Homework / Assignments | - | - | - |
| Presentation / Jury | - | - | - |
| Project | 1 | 15 | 15 |
| Seminar / Workshop | - | - | - |
| Oral Exams | - | - | - |
| Midterms | 1 | 20 | 20 |
| Final Exam | 1 | 40 | 40 |
| Total | 150 |
| # | PC Sub | Program Competencies/Outcomes | * Contribution Level | ||||
| 1 | 2 | 3 | 4 | 5 | |||
| No program competency data found. | |||||||
*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest
As Izmir University of Economics transforms into a world-class university, it also raises successful young people with global competence.
More..Izmir University of Economics produces qualified knowledge and competent technologies.
More..Izmir University of Economics sees producing social benefit as its reason for existence.
More..