Lecturer(s)
|
-
Vařacha Pavel, Ing. Bc. Ph.D.
|
Course content
|
In the area of clean code, the course covers the following concepts: Meaningful names Function Comments Formatting Objects and data structures Error handling Boundaries Unit tests Classes Systems Emergence Concurrency Successive refitment In the area of professionalism, the subject discusses the following concepts: Saying No Saying Yes Coding Test Driven Development Practicing Accptance Testing Testing Strategies Time Management Estimation Pressure Collaboration Teams and Projects In the field of applied design patterns, the subject mainly discusses: Command Flyweight Observer Prototype Singleton State Double Buffer Game Loop Update Method Bytecode Subclass Sandbox Type Object Component Event Queue Service Locator In the field of the open-source engine Godot, students practically learn to work with the following concepts: Basic engine architecture Godot editor GDScript Signals Scenes Animation A broad family of nodes used for developing 2D applications Final project Students develop a final project on a given topic, which is unique for each year. Using practical programming in Godot engine environment and GDSript or C# languages. As a natural part of their work, students practically apply the theoretical knowledge contained in the previous four sections.
|
Learning activities and teaching methods
|
Exercises on PC
- Participation in classes
- 42 hours per semester
|
prerequisite |
---|
Knowledge |
---|
Knowledge of algorithms, programming, and orientation in C++, C# and Python is a prerequisite. English at least at the upper intermediate level (B2) is expected. The knowledge and skills of a student must correspond to the minimum level necessary to pass all the following subjects: AE1PA Programming and Algorithmization AE1DS Database Systems AE1VS Tools for Software Project Development AE2OP Object Programming and Design Examples AE3AF Application Frameworks AE4TS Software Testing |
Knowledge of algorithms, programming, and orientation in C++, C# and Python is a prerequisite. English at least at the upper intermediate level (B2) is expected. The knowledge and skills of a student must correspond to the minimum level necessary to pass all the following subjects: AE1PA Programming and Algorithmization AE1DS Database Systems AE1VS Tools for Software Project Development AE2OP Object Programming and Design Examples AE3AF Application Frameworks AE4TS Software Testing |
learning outcomes |
---|
Rules for writing clean code |
Rules for writing clean code |
Godot open-source engine architecture |
Godot open-source engine architecture |
GDScript scripting language |
GDScript scripting language |
Professional ethics of a programmer |
Professional ethics of a programmer |
Design patterns applied in computer games |
Design patterns applied in computer games |
Skills |
---|
Write change-resistant software according to the rules of clean code |
Write change-resistant software according to the rules of clean code |
Program a 2D application using the open-source Godot engine |
Program a 2D application using the open-source Godot engine |
Create scripts in the GDSrcipt language |
Create scripts in the GDSrcipt language |
Apply design patterns in practical situations |
Apply design patterns in practical situations |
Adopt legacy code into own team project |
Adopt legacy code into own team project |
teaching methods |
---|
Knowledge |
---|
Analysis of a presentation |
Analysis of a presentation |
Individual work of students |
Individual work of students |
Students working in pairs |
Students working in pairs |
Skills |
---|
Students working in pairs |
Students working in pairs |
Exercises on PC |
Exercises on PC |
Teamwork |
Teamwork |
assessment methods |
---|
Knowledge |
---|
Analysis of a presentation given by the student |
Analysis of a presentation given by the student |
Analysis of the student's performance |
Analysis of the student's performance |
Grade (Using a grade system) |
Grade (Using a grade system) |
Recommended literature
|
-
Erich GAMMA, Richard HELM, Ralph JOHNSON, John VLISSIDES. Design Patterns: Elements of Reusable Object-Oriented Software. 1994. ISBN 0201633612.
-
Michael C. FEATHERS. Working Effectively with Legacy Code. 2004. ISBN 9780131177055.
-
Robert C. MARTIN. Clean Agile: back to basics.. Boston, 2020. ISBN 978-0-13-578186-9.
-
Robert C. MARTIN. Clean architecture: a craftsman's guide to software structure and design.. London, 2018. ISBN 978-0-13-449416-6.
-
Robert C. MARTIN. Clean Code: A handbook of agile software craftsmanship.. Upper Saddle River, 2009. ISBN 9780132350884.
-
Robert C. MARTIN. The clean coder: a code of conduct for professional programmers.. Upper Saddle River, 2011. ISBN 978-0-13-708107-3.
-
Robert NYSTROM. Game Programming Patterns Autor Robert Nystrom. 2014. ISBN 0990582906.
|