Modern Object-Oriented Programming in Pharo
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
NI-MOP | KZ | 4 | 3C | Czech |
- Garant předmětu:
- Robert Pergl
- Lecturer:
- Jan Blizničenko, Marek Skotnica
- Tutor:
- Jan Blizničenko, Robert Pergl, Marek Skotnica
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
Object-oriented programming is currently one of the most widespread paradigms of software creation, especially enterprise information systems, where its ability to natural abstraction is used to build complex modern applications.
In this course, we build on the knowledge acquired in the course BI-OOP and aim to further deepen the skills of design and implementation of object systems in modern pure object system Pharo (https://pharo.org). The course focuses on individual approach to students, their development needs and areas of interest.
In addition to deepening object programming skills, which are generally applicable in other OO languages, students will also gain the opportunity to work on interesting projects and OO technologies in terms of semestral work with the possibility of cooperation with practice and related bachelor, diploma, postgraduate our direct involvement in the Pharo Consortium.
- Requirements:
-
Prerequsity: BI-OOP
- Syllabus of lectures:
-
1. History of OOP, introduction to Pharo environment
2. Pharo Smalltalk syntax, live debugging, test-driven development
3. Basic Pharo libraries, revision and deepening of basic skills of OOP and design patterns
4. Revision and deepening of basic skills of OOP and design patterns
5. Web application programming and persistence
6. UI programming, visualization (Roassal library)
7. Parsing and grammars, using reflection
8. Work on projects, consultations
9. Work on projects, consultations
10. Work on projects, consultations
11. Work on projects, consultations
12. Work on projects, consultations
13. Submission of projects
- Syllabus of tutorials:
-
1. History of OOP, introduction to Pharo environment
2. Pharo Smalltalk syntax, live debugging, test-driven development
3. Basic Pharo libraries, revision and deepening of basic skills of OOP and design patterns
4. Revision and deepening of basic skills of OOP and design patterns
5. Web application programming and persistence
6. UI programming, visualization (Roassal library)
7. Parsing and grammars, using reflection
8. Work on projects, consultations
9. Work on projects, consultations
10. Work on projects, consultations
11. Work on projects, consultations
12. Work on projects, consultations
13. Submission of projects
- Study Objective:
-
In addition to deepening object programming skills, which are generally applicable in other OO languages, students will also gain the opportunity to work on interesting projects and OO technologies in terms of semestral work with the possibility of cooperation with practice and related bachelor, diploma, postgraduate our direct involvement in the Pharo Consortium.
- Study materials:
-
Books freely available at http://books.pharo.org/
Pharo MOOC
- Note:
- Further information:
- https://courses.fit.cvut.cz/NI-MOP/
- Time-table for winter semester 2024/2025:
-
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 Wed Thu Fri - Time-table for summer semester 2024/2025:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Bachelor program Informatics, unspecified branch, in Czech, 2015-2020 (elective course)
- Bachelor branch Security and Information Technology, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Science, in Czech, 2015-2020 (elective course)
- Bachelor branch Computer Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Information Systems and Management, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Software Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Web Engineering, in Czech, 2015-2020 (elective course)
- Bachelor branch Web and Software Engineering, spec. Computer Graphics, in Czech, 2015-2020 (elective course)
- Master branch Knowledge Engineering, in Czech, 2016-2017 (elective course)
- Master branch Computer Security, in Czech, 2016-2019 (elective course)
- Master branch Computer Systems and Networks, in Czech, 2016-2019 (elective course)
- Master branch Design and Programming of Embedded Systems, in Czech, 2016-2019 (elective course)
- Master branch Web and Software Engineering, spec. Info. Systems and Management, in Czech, 2016-2019 (elective course)
- Master branch Web and Software Engineering, spec. Software Engineering, in Czech, 2016-2019 (elective course)
- Master branch Web and Software Engineering, spec. Web Engineering, in Czech, 2016-2019 (elective course)
- Master program Informatics, unspecified branch, in Czech, version 2016-2019 (elective course)
- Master branch System Programming, spec. System Programming, in Czech, 2016-2019 (elective course)
- Master branch System Programming, spec. Computer Science, in Czech, 2016-2017 (elective course)
- Master specialization Computer Science, in Czech, 2018-2019 (elective course)
- Bachelor branch Knowledge Engineering, in Czech, 2018-2020 (elective course)
- Master branch Knowledge Engineering, in Czech, 2018-2019 (elective course)
- Master specialization Computer Security, in Czech, 2020 (elective course)
- Master specialization Design and Programming of Embedded Systems, in Czech, 2020 (elective course)
- Master specialization Computer Systems and Networks, in Czech, 202 (elective course)
- Master specialization Management Informatics, in Czech, 2020 (elective course)
- Master specialization Software Engineering, in Czech, 2020 (elective course)
- Master specialization System Programming, in Czech, version from 2020 (elective course)
- Master specialization Web Engineering, in Czech, 2020 (elective course)
- Master specialization Knowledge Engineering, in Czech, 2020 (elective course)
- Master specialization Computer Science, in Czech, 2020 (elective course)
- Mgr. programme, for the phase of study without specialisation, ver. for 2020 and higher (elective course)
- Bachelor Specialization Information Security, in Czech, 2021 (elective course)
- Bachelor Specialization Management Informatics, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Graphics, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Engineering, in Czech, 2021 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2021 (elective course)
- Bachelor Specialization Web Engineering, in Czech, 2021 (elective course)
- Bachelor Specialization Artificial Intelligence, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Science, in Czech, 2021 (elective course)
- Bachelor Specialization Software Engineering, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2021 (elective course)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2021 (elective course)
- Study plan for Ukrainian refugees (elective course)
- Master specialization System Programming, in Czech, version from 2023 (elective course)
- Master specialization Computer Science, in Czech, 2023 (elective course)
- Bachelor Specialization Information Security, in Czech, 2024 (elective course)
- Bachelor program, unspecified specialization, in Czech, 2024 (elective course)
- Bachelor Specialization Management Informatics, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Graphics, in Czech, 2024 (elective course)
- Bachelor Specialization Software Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Web Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Networks and Internet, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Engineering, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Systems and Virtualization, in Czech, 2024 (elective course)
- Bachelor Specialization Artificial Intelligence, in Czech, 2024 (elective course)
- Bachelor Specialization Computer Science, in Czech, 20214 (elective course)