CS1501 Algorithm Implementation Projects (University Course)

CS1501(Spring 2019) Algorithm Implementation (University of Pittsburgh)

https://github.com/xingchenzhao/cs1501

Project1

Goal: To gain a better understanding of search algorithms and symbol tables by implementing an autocompletion engine.

Background: In order to make typing on a mobile device quick and easy, an autocomplete feature is commonly implemented to try to guess what word a user wishes to type before they are finished. Such a feature requires extensive use of search algorithms.

Project2

Goal: To understand the innerworkings and implementation of the LZW compression algorithm, and to gain a better understanding of the performance it offers. Background LZW Compression Algorithm for compressing files

Project3

Goal: To explore an advanced application of priority queues in order to gain a deeper understanding of the data structure. Background An application to help a user select a car to buy.

Project4

Goal: To gain a better understanding of graphs and graph algorithms through practical implementation.

Background The program analyzes a given graph representing a computer network according to several specified metrics. The vertices of these graphs will represent switches in the network, while the edges represent either fiber optic or copper cables run between the switches. The program operates entirely via a console interface menu (no GUI).

Project5

Goal: To get hands on experience with algorithms to perform mathematical operations on large integers, using RSA as an example. Background The first program (RsaKeyGen.java) will generate a 512-bit RSA keypair and store the public and private keys in files named pubkey.rsa and privkey.rsa, respectively. The second program (RsaSign.java) will generate and verify digital signatures using a SHA-256 hash.