Dansk - English
Kort version - Fuld version
C++ for Java programmers (Forår 2013) |
|||
Kursuskode : | EJ2C++-U1 | ||
ECTS Point : | 7,5 | Status : | Tilvalg |
Revideret : | 03/05 2013 | Oprettet : | 23/06 2005 |
Placering : | 5. semester | Timer pr. uge : | 4 |
Længde : | 1 semester | Undervisningssprog : | Dansk og engelsk |
Målsætning : | C/C++ still holds the absolute leading position in the Open Source community. The amount of existing and still active C/C++ code lines is immense. The course will focus on differences with Java. Java does many things behind scene; C/C++ has more freedom but is often regarded as more complicated when handling the larger freedom. The goal is to handle C/C++ especially concerning the many choices this language enables you to use. The expertise you learn in C/C++ will be useful in real job experience in many years from now. Learning outcomes (i) Ability to 1. Define and identify the basic differences between Java and C/C++ 2. Define and identify the basic pitfalls using C/C++ 3. Define and identify basic distinctive features in C/C++ 4. Identify examples of 2. and 3. in the students own solution (ii) Ability to 5. Analyze the consequences of falling into pitfalls in C/C++ 6. Analyze some advantages and disadvantages in different generic programming strategies (templates, traits, policy classes, meta programming) 7. Identify and describe examples of 5. In the students own solution (iii) Ability to 8. Discuss solutions involving items listed in the Principal Content 9. Reflect on a C/C++ application 10. discuss quibbling pitfalls in C/C++ |
||
Hovedindhold : | • Compilers, linkers, and precompilers. • Copy constructor, copy assignment operator, and destructor (“big three”). • Handling of memory. Global, heap, and stack. • Pointers. • Operator overloading • Exceptions • Inheritance • Polymorphic behaviours; virtual functions • Precondition and post condition specifications • Templates; Generic programming. • Standard Template Library (STL) • Smart Pointers • Traits • Policy Based Class Design • Meta programming |
||
Undervisningsform : | The lessons consist of theory combined with practical exercises and course assignments. During the semester the student will have to hand in a number of mandatory course assignments. These assignments are used as a base for the oral examination. | ||
Krævede forudsætninger : | Documented knowledge corresponding to PROG2. | ||
Anbefalede forudsætninger : | You are already competent at programming in Java. You may have some experience in C. You should feel confident in design and implement programs using classes and methods. You have a solid knowledge in data structures and algorithms | ||
Relationer : | - | ||
Prøveform : | Se under bemærkninger | ||
Censur : | Intern | ||
Bedømmelse : | 7-trinsskala | ||
Bemærkninger : | 7-step scale: 02: if the student fulfils the criteria from (i) 7: if further the criteria from (ii) are met 12: if all criteria from (i), (ii), and (iii) are met Oral examination based on assignments. Moreover general questions to the topics of the principal content will be raised. Through the course the students will have to solve a number of compulsory course assignments. To be admitted for examination all compulsory assignments have to be handed in within the time limits indicated in the assignment. Furthermore all assignments have to be approved. |
||
Undervisningsmateriale : | Supplementary literature: Mark Allen Weiss: ”C++ for Java Programmers, Pearson Prentice Hall, 2004 Andrei Alexandrescu: Modern C++ Design, Generic Programming and Design Patterns Applied, Addison-Wesley, 2001 Herb Sutter, More Exceptional C++, Addison-Wesley, 2002 |
||
Ansvarlig underviser : | Henrik Kold Mikkelsen
, hokm@dtu.dk |