This course teaches how to be an intelligent user of sophisticated runtime environments. The programs we design are built to operate in the context of a software environment. Understanding the interaction between programs and their software environment (runtime environment) is the main topic ofthis course. Issues covered in the course are:
- System programming language: Java, C++, Scrip.
- Runtime environment: JVM, UNIX
- Distributed runtime environment - Memory management, Network, etc..
- Concurrency: multi-threading, Livenss & Safety.
- Object Oriented Design & Design patterns.
- Introduction to C++ and STL - Pointers, Parameter passing, Virtual memory.
- Communication - Protocols, synchronous and asynchronous io.
- Databases - Relational database, introduction to SQL
Assignment Goals:
- The objective of this assignment is to design an object-oriented system and gain implementation experience in C++ while using classes, standard data structures, and unique C++ properties such as the “Rule of 5”. You will learn how to handle memory in C++ and avoid memory leaks. The resulting program must be as efficient as possible.
Assignment Goals:
- In the following assignment, you are required to implement a simple Micro-Service framework, which you will then use to implement a system for managing the University compute resources.
This assignment is composed of two main sections:
- Building a simple Micro-Service framework.
- Implementing a system for managing the university computer resources on top of this framework.
Assignment Goals:
- In this assignment you will implement a simple social network server and client. The communication between the server and the client(s) will be performed using a binary communication protocol.
Assignment Goals:
- In this assignment you are required to implement the database of Pizza Hat, a shop specialized in pizza shaped hats. The assignment is composed of three parts:
- Create and populate the database according to a configuration file. 2. Execute a list of orders, according to a second file.
- Print a summary in a third file.