Assignments

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 

Graph Traversals

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/