- types and expressions
- control flows
- array and structure
- file manipulation
- exceptions and error handling (intro)
The goal of this course is to introduce students to the fundamentals of programming with a focus on imperative language. This course also aims to give students a practical experience in Python.
- OOP concepts: class & object, encapsulation, inheritance, interface
- server-client architecture
- data structures and algorithms (intro)
- file handling and serialization
- exceptions and error handling
- event-driven programming
- file manipulation
- error handling
- graphical user interface (GUI)
The goal of this course is to introduce students to the fundamentals of programming with a focus on imperative language. This course also aims to give students a practical experience in Java.
- Software processes
- Software engineering workflows
- Software architecture
The goal of this course is to introduce students to the software engineering discipline focusing on its techniques and methodologies. The course covers the theory of software engineering, but also gives students a practical hands-on experience on collaborative development of a software they will build.
- Principles of good OO design
- Code generation
- Design patterns
- Evaluation and analysis of software design
The goal of this course is to give students an in-depth insight in the nature of object-oriented analysis and design. At the end of the course, students will have gained a solid experience in developing non-trivial software. The focus of this course is on design rather than implementation.
- software quality
- quality assurance
- quality assurance plan
- quality control techniques (tests, code review, inspections)
- software quality standards
- measure theory
- product and process metrics
- software quality metrics
The goal of this course is to introduce students to software evaluation techniques and software quality metrics.
- Modeling languages
- Domain-specific languages
- Model transformation
- Analysis techniques on models
- Model simulation
The goal of this course is to familiarize students with techniques in modeling at different levels of abstraction, such as in model-driven engineering and in simulation-based design.
- Propositional logic and SAT-based analysis
- First order logic and analysis
- Temporal logic
- Verification by model checking
- Empirical methods in software engineering
- introduction to software product line.
The goal of this course is to familiarize the students with formal methods used to analyze software, such as propositional logic, temporal logic and model checking.