Due to the fact that many of these projects are still being used to asses
students at SU, these repos must be set to private, in order to prevent
students from
copying my work
* 1st Year, 1st Semester - Lines of Action, a game similar to
othello, written
in java.
* 1st Year, 2nd Semester - Obstacle Chess, Normal chess rules, with new pieces
introduced, such as bombs, wall's, trapdoors, etc. Written in java.
* 2nd Year, 1st Semester - Sudoku Solver, using a heuristic algorithm +
mutations on possible solutions to form new solutions, written in java.
* 2nd Year, 2nd Semester - Wrote a compiler for a pascal like language named
ALAN standing for Another LANguage, includes scanning, parsing, typechecking,
codegen (to the jvm using
jasmin) the compiler was written in C.
* 2nd Year, 2nd Semester -
Brainfuck Intepreter,
written in x86 Assembly.
* 2nd Year, 2nd Semester -
Huffman Encoder,
written in x86 Assembly
* 3rd Year, 1st Semester - Process Scheduler simulator, written in C.
* 3rd Year, 1st Semester - Bank Transaction simulator, using omp, and locks to
prevent race conditions, written in C.
* 3rd Year, 1st Semester - Othello bot, using MPI, and negamax search with
alpha beta pruning to find optimal moves, written in C.
* 3rd Year, 1st Semester - Food review website using flask (python), redis,
neo4j.
* 3rd Year, 2nd Semester - Multi-Client/Server chat program. Both client and
server written in Java. For more details, please see:
-
Project Report.
-
Project Specification.
* 3rd Year, 2nd Semester - TCP and RBUDP file sharing program. Written in Java.
More details:
-
Project Report.
-
Project Specification.
* 3rd Year, 2nd Semester - NAT Simulation, that is a fully simulated "Internet
Environment", with the following simulated protocals: IP, TCP, UDP Ethernet
Frames, DHCP, ICMP. Written in Java. For more details, see below:
-
Project Report.
-
Project Specification
* 3rd Year, 2nd Semester - VoIP/Messaging program Using TCP for messaging, and
for VoIP we use UDP packets for sending the audio streams. Client for Making
and recieving calls/ conference calls, as well as direct and or group
messaging. Both server and client are written in Java. Details:
-
Project Report.
-
Project Specification.
* 3rd Year, 2nd Semester - P2P File hosting/sharing system, which is made up of
a central server which handles minimal book-keeping. The actual file transfer
occurs in 2 stages, the first is a handshake to ensure that the sender is
talking to the reciever and vice versa, this is done using certificates and
RSA encryption. Once the intial handshake is completed, a 96 key is
transmited to the reciever encrypted using the recievers public key (RSA
encryption, the keys where passed during the handshake). The sender will
encrypt the payload using that key, as well as generating the next key that
will be used and padding it into the data. We then encrypt and send the
packet. This forms a
one-time-pad, which is
unbreakable. The recieve uses the inital key that was recieved from the
secure handshake process to decrypt the recieved packet, it then removes the
included key that was padded, and will use that key to decrypt the next
process, this process continues until all packets are recieved. This is a
super simplified explanation of the security. Written in Java, details can be
found below:
-
Project Report.
-
Project Specification.