These are the weekly assignments for COP3530. This is not a class on how to program, it is a class on using programming to build data structures and algorithms. If your programming skills are weak these assignments may take you an extensive amount of time (upwards of 30-40 hours). I also give you links to self-assessment quizzes that will help you with the quiz portion of the class. The quizzes are inside Falcon Online.
If you did not sufficiently learn programming in the 2 pre-requisite classes – then the Javascript tutorial at https://www.w3schools.com/js/default.asp will help you. Everything you need to program in Javascript is there. You can also visit my Programming Fundamentals page where I have created video resources on the most common errors I see from students.
Weekly Assignment | Description | Practice Quizzes | Topic |
Assignment 1- Getting Started | You will need to get started using javascript and JSFiddle. | Lexical Analysis | Topic 2- Algorithms and Programming |
Assignment 2- Time Complexity | Time complexity is fundamental to understanding the nature of algorithms. | Analysis of Algorithms | |
Assignment 3- Searching Algorithm | This will be your first implementation of algorithms in javascript. | Arrays | |
Assignment 4- Lists | The List is the fundamental data structure and will be used extensively in this class. | Linked Lists | Topic 3- Basic Data Structures |
Assignment 5- The Stack | You will build a stack computer in this assignment. | Stacks | Topic 4- Stacks and Queues |
Assignment 6- Queues | Use a Queue to implement the Sieve of Eratosthenes | Queues | Topic 4- Stacks and Queues |
Assignment 7- Recursion | Implement and analyze the classic Tower of Hanoi problem | Recursion | Topic 5- Recursive Problems > |
Assignment 8- Sorting | Implement a couple of sorting algorithms and look at algorithm performance and limitations | Searching and Sorting | Topic 7– Sorting Techniques |
Assignment 9- Hash Compression | Implement a simple algorithm used in compression | Hash Tables and Functions | Topic 8- Hashing Techniques |
Assignment 10 – Password Hashing | You will learn how passwords can be securely stored in a system | Review of Structures | Topic 8- Hashing Techniques |
Assignment 11- Interpolation | Implement a simple algorithm to do a linear interpolation | Review of Algorithms | |
Assignment 12- Binary Trees | Binary trees are used to store equations – here we implement one | Binary Trees | Topic 10- Tree Data Structures |
Assignment 13- TRIE Spellchecker | Implement a TRIE and use it for a simple spell check | Binary Search Trees | |
Assignment 14- Graphs | Find the different paths through a graph (graph traversal) | Graphs | Topic 11- Graph Data Structures |
Assignment 15 – Blockchains | Create your own Block Chain – the basis for Crypto-currencies like BitCoin | Topic 11- Graph Data Structures |
Additional Problems
You can easily find more problems to solve. If you are planning on a career as a programmer or software developer this is just the beginning. Here are some sites to find more problems and some very challenging ones. Have fun.
https://open.kattis.com/problems
https://projecteuler.net/