| 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 | |||
| 1 |
Engineering Knowledge: Knowledge of mathematics, science, basic engineering, computation, and related engineering discipline-specific topics; the ability to apply this knowledge to solve complex engineering problems. |
||||||
| 1 |
Mathematics |
||||||
| 2 |
Science |
||||||
| 3 |
Basic Engineering |
||||||
| 4 |
Computation |
||||||
| 5 |
Related engineering discipline-specific topics |
LO2 LO4 LO5 | |||||
| 6 |
The ability to apply this knowledge to solve complex engineering problems |
LO1 | LO3 | ||||
| 2 |
Problem Analysis: Ability to identify, formulate and analyze complex engineering problems using basic knowledge of science, mathematics and engineering, and considering the UN Sustainable Development Goals relevant to the problem being addressed. |
||||||
| 3 |
Engineering Design: The ability to devise creative solutions to complex engineering problems; the ability to design complex systems, processes, devices or products to meet current and future needs, considering realistic constraints and conditions. |
||||||
| 1 |
Ability to design creative solutions to complex engineering problems |
||||||
| 2 |
Ability to design complex systems, processes, devices or products to meet current and future needs, considering realistic constraints and conditions |
||||||
| 4 |
Use of Techniques and Tools: Ability to select and use appropriate techniques, resources, and modern engineering and computing tools, including estimation and modeling, for the analysis and solution of complex engineering problems, while recognizing their limitations. |
||||||
| 5 |
Research and Investigation: Ability to use research methods to investigate complex engineering problems, including literature research, designing and conducting experiments, collecting data, and analyzing and interpreting results. |
||||||
| 1 |
Literature research for the study of complex engineering problems |
||||||
| 2 |
Designing experiments |
||||||
| 3 |
Ability to use research methods, including conducting experiments, collecting data. analyzing and interpreting results |
||||||
| 6 |
Global Impact of Engineering Practices: Knowledge of the impacts of engineering practices on society, health and safety, economy, sustainability, and the environment, within the context of the UN Sustainable Development Goals; awareness of the legal implications of engineering solutions. |
||||||
| 1 |
Knowledge of the impacts of engineering practices on society, health and safety, economy, sustainability, and the environment, within the context of the UN Sustainable Development Goals |
||||||
| 2 |
Awareness of the legal implications of engineering solutions |
||||||
| 7 |
Ethical Behavior: Acting in accordance with the principles of the engineering profession, knowledge about ethical responsibility; awareness of being impartial, without discrimination, and being inclusive of diversity. |
||||||
| 1 |
Acting in accordance with the principles of the engineering profession, knowledge about ethical responsibility ethical responsibility |
||||||
| 2 |
Awareness of being impartial and inclusive of diversity, without discriminating on any subject |
||||||
| 8 |
Individual and Teamwork: Ability to work effectively, individually and as a team member or leader on interdisciplinary and multidisciplinary teams (face-to-face, remote or hybrid). |
||||||
| 1 |
Ability to work individually and within the discipline |
||||||
| 2 |
Ability to work effectively as a team member or leader in multidisciplinary teams (face-to-face, remote or hybrid) |
||||||
| 9 |
Verbal and Written Communication: Taking into account the various differences of the target audience (such as education, language, profession) on technical issues. |
||||||
| 1 |
Ability to communicate verbally |
||||||
| 2 |
Ability to communicate effectively in writing |
||||||
| 10 |
Project Management: Knowledge of business practices such as project management and economic feasibility analysis; awareness of entrepreneurship and innovation. |
||||||
| 1 |
Knowledge of business practices such as project management and economic feasibility analysis |
||||||
| 2 |
Awareness of entrepreneurship and innovation |
||||||
| 11 |
Lifelong Learning: Lifelong learning skills that include being able to learn independently and continuously, adapting to new and developing technologies, and thinking questioningly about technological changes. |
||||||
*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..