1. Distinguish language definition from implementation, syntax and parsing from semantics and evaluation; understand and describe how program state maps to memory (global, local, heap) and the implications of heap reachability for memory management
Topic: Relational Databases
1. Describe the basic concepts of the relational model and understand its mathematical foundation;
2. Understand and describe query processing and optimization, transaction and security management in a relational database management system.
3. Understand and describe the state of the art of database management systems, and big data management challenges (Amazon's Dynamo, Google's BigTable, MongoDB and MapReduce).
Topic: Software Engineering
1. Demonstrate an understanding of the following key software engineering activities within the context of a realistic software engineering process
e. Testing, verification and validation
g. User experience
2. Demonstrate an ability to use professional judgement to select and apply appropriate knowledge, practices and tools to analyze, design and solve problems relating to the software engineering activities listed above.
3. Demonstrate how practices and tools can be adapted to suit specific project needs and contexts.
4. Critically assess and apply fundamental knowledge in order to assess the applicability of one or more software design methodologies to modern software systems.