/CS1501

Algorithm Implementation

Primary LanguageJava

CS1501

CS1501 (Algorithm Implementation) in Spring 2017 at the University of Pittsburgh

This class was taking as a writing-intensive requirement, hence the four writing assignments in this repository.

  • Project 1 - Exhaustive Search/Pruning of Passwords in a Dictionary
    • Used a De La Briandais Trie (DLB) to implement a symbol
    • When the user feeds in a password, they will be informed if it's valid or invalid
      • If it's invalid, 10 alternative passwords that match it the closest will be provided
  • Project 2 - LZW Compression
    • Implemented LZW Compression (lossless method) to compress files
      • Compression time differs based on the method being used (provided in project description) and the contents of the file given.
  • Project 3 - Car Database with Priority Queues
    • Implemented a Min Heap that stored information about cars in a Database
  • Project 4 - Network/Latency with Graph Algorithms
    • Provides statistics for a user-provided graph such as:
      • Lowest latency path (shortest weighted path)
      • Minimum spanning trees
      • Connectivity by wire type
      • Maximum bandwidth path (max flow)
      • Articulation points
  • Project 5 - RSA Encryption
    • Demonstrated RSA encryption for signing and verification of files * This uses public and private keys to ensure correct users are viewing/being sent information from verified users

Paper 1 - Introducing MergeSort to the World in the 1970s
Paper 2 - Describing LZW Compression to Colleagues
Paper 3 - Advertising Boyer-Moore as Top Word Processor Algorithm in 1980s (Page 1 is an advertising pitch)
Paper 4 - Revisions of Paper 1 ("Introducing MergeSort to the World in the 1970s")