
These tasks were created as part of the Advanced Programming course at the Ben-Gurion University of the Negev.



The Advanced Programming course goes over C programming, by focusing on abstract data types including the main components, structures, linked lists, modules, memory management, file handling, and the compilation process... In addition, C++ programming principles and mechanisms like encapsulation, inheritance, polymorphism, generic programming, and templates were taught. The course also teaches script languages as another approach to programming.

Bash script that tracks the changes in a specified folder. The script receives a single parameter at a time - this parameter is the absolute path of the folder that we want to follow.

Create a world atlas that contains countries, cities and information about them. The script receives two parameters
1. Number of countries (the number of countries that should be read from the countries file)
2. Configuration file path (contains countries and cities that should be in the system).
Explanation about the entities in the system:
-
Country: Every country has a name, geographical area, number of cities that it contains and a list of those cities.
-
City: Every city has a name, number of residents and a popular food.
-
Geographical Area: Two coordinates - the first coordinate (x1,y1) represents the upper left point, and the second coordinate represents the lower right point.

Generic ADT that help us with the worldAtlas (Part A Repository).
-
Generic LinkedList: Supports the following functions: create, destroy, append node, delete node, display list, search for node.
-
Generic KeyValuePair: Supports the following functions: create, destroy, displayValue, displayKey, getValue, getKey, isEqualKey.
-
Generic HashTable that contains keyValuePair: Collisions treated with chaining. Supports the following functions: create, destroy, add pair, lookup for pair, remove pair, display elements.


Employee management system. This project contains two calsses:
-
Employee - contains the employee information (first name, ID, salary).
-
DataBase - manages the employees, Supported functionalities: find employee by ID, add employee, remove employee, display all employees.
Operators Overriding examples:
-
'==' equals operator - two employees are equals if they have the same ID.
-
'>' greater than opeartor - one employee is greater than the other when his salary is greater then the other one.
-
'=' operator - change only the employee first name.
A project that simulates the game "Heroes of Might and Magic" using CLI. The project is written in C++ and it focuses on Object-Oriented principles, generic programming, inheritance, polymorphism, and exception handling.
