Student that pass the course satisfactorily will be able to:
- Use a widely accepted high-level programming language, e.g. Java, C# and C++.
- Identify, define, describe, illustrate, explain, articulate and elaborate on the fundamental terminology, concepts, principles and methods of computational models and systems.
- Design computer-based systems with realistic requirements.
- Analyze, compare and differentiate between computational models and systems by identifying, assessing and reasoning about their advantages and disadvantages.
- Use a widely accepted modeling language, such as UML.
- Create computer-based system architectures with moderate complexity.
- Design and implement algorithms, heuristics and supporting data structures as packaged components.
- Analyze the power and limitations of abstract models of computation.