Object Programming and Modeling
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
A7B36OMO | Z,ZK | 6 | 2+2c | Czech |
- Enrollement in the course requires an successful completion of the following courses:
- Algorithmics (A7B36ALG)
- The course cannot be taken simultaneously with:
- Object Modeling (Y36OMO)
- The course is a substitute for:
- Object Modeling (Y36OMO)
- Lecturer:
- Michal Píše (gar.), Andrej Chu
- Tutor:
- Michal Píše (gar.), Jan Drchal, Martin Filipský, Andrej Chu, Ondřej Macek
- Supervisor:
- Department of Computer Science and Engineering
- Synopsis:
-
Object-oriented approach to software development prevails in all of its three phases: analysis, design and implementation. The aim of this course is to give the students a firm understanding of basic concepts and notions of object theory and sketch its formal foundations.
- Requirements:
-
Basic knowledge of programming and mathematics.
- Syllabus of lectures:
-
1. Classes and objecst; runtime representation
2. Type system; implementation hiding
3. Subtype polymorphism, subsumption and Liskov substitution principle
4. Static methods and variables; formal semantics
5. Pointers, linked lists, pointer-based structures
6. Correctness, assertions, class/data structure invariant, encapsulation, representation exposure
7. Inheritance; method dispatch
8. Parametric polymorphism (generic classes)
9. Advanced polymorphism; binary methods; creational design patterns
10. Immutability; advanced collections; higher-order functions
11. Metaprogramming
- Syllabus of tutorials:
- Study Objective:
-
After completing this course, students will understand basic concepts and notions of object theory and will be able to apply them correctly in moderately difficult situations.
- Study materials:
-
1. B. Eckel: Thinking in Java
2. Er. Gamma et al.: Design Patterns: Elements of Reusable Object-Oriented Software
3. Course webpage: http://edux.feld.cvut.cz/courses/Y36OMO/
- Note:
- Time-table for winter semester 2011/2012:
- Time-table is not available yet
- Time-table for summer semester 2011/2012:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Fri Thu Fri - The course is a part of the following study plans:
-
- Společný 1. ročník (STM-A7B) (compulsory course in the program)
- Inteligentní systémy (STM-A7B) (compulsory course in the program)
- Manažerská informatika (STM-A7B) (compulsory course in the program)
- Softwarové inženýrství (STM-A7B) (compulsory course in the program)
- Web a multimedia (STM-A7B) (compulsory course in the program)