CS3000: Recommended Programming Problems


Course Homepage

There will be no required programming assignments in this course. We assume that you already know programming and given a detailed enough pseudo-code or other algorithm description, you are capable of producing working, accurate code. However, since programming is a key component of computer science, we will be providing numerous suggested programming problems that correspond to the material that has been covered in class. These are optional, but we recommend you attempt at least one of the suggested programming questions per topic.

For the most part, this course's philosophy is that once we know how to solve a problem (correctly and efficiently), we (or someone else) can always implement it easily enough once we provide a clear description of an algorithm However, one must always keep in mind the following words, by one of the foremost theoretical computer scientists: "Beware of bugs in the above code; I have only proved it correct, not tried it." – Donald Knuth There is no substitute for implementing (and debugging) an algorithm.

Here's a somewhat curated list of leetcode problems that should be solvable based on algorithms/data structures and ideas covered in CS3000: https://leetcode.com/list/rid7ea2i

The problems are broadly classified by topics: NT (Number Theoretic), D&C (Divide-and-Conquer), DP (Dynamic Programming), GT (Graph theoretic), Gr (Greedy), NF (Network Flow), LP (Linear Programming). We also make an attempt to list more fine-grained algorithm/techniques relevant to a particular problem.

Topic Problem Notes
NT: Modular exponentiation    
NT: GCD    
NT: GCD    
NT: Primality    
NT: Primality    
D&C:    
D&C:    
D&C:    
D&C:    
D&C:    
D&C:    
D&C:    
D&C:    
DP: Even Fibonacci Numbers &  
  1000-digit Fibonacci Number  
DP: Longest Collatz Sequence  
DP: Maximum Path Sum I &  
  Maximum Path Sum II  
DP: Leetcode 10 DP patterns  
DP:    
DP:    
DP:    
DP:    
DP:    
DP:    
DP:    
DP:    
DP:    
DP:    
GT:    
GT:    
GT:    
GT:    
GT:    
GT:    
GT:    
GT:    
GT:    
NF:    
NF:    
NF:    
NF:    
LP:    
LP:    
LP:    
LP:    

Note that many of the problems that are from Project Euler have more competitive variants on Hackerrank in their Project Euler series of problems which we do not link here.

Author: Akshar Varma

Created: 2023-08-06 Sun 11:05

Validate