Practice Problems
If you want some extra practice in addition to the problem set for a week, you can choose from these practice problems. Note that,in many cases, the exercises can be harder than the problem sets themselves!
Week 1
These problems assume that you have already set up your CS50 Codespace. Be sure to complete that before attempting these problems.
- Debug, for becoming familiar with C syntax and debugging programs.
- Half, for practice creating a function.
- Prime, for practice using
for
loops.
Week 2
- Hours, for practice with arrays, passing arrays as parameters to a function, integer division and type casting.
- N0 V0w3ls, for practice with
string
s, command-line arguments, and writing an entire program from scratch. - Password, for practice iterating through a
string
, using thectype.h
library, and using Boolean variables.
Week 3
- Recursive
atoi
, for practice creating recursive functions. - Average Temperatures, for practice working with
struct
s and sorting algorithms. - Max, for practice passing arrays to functions and finding maximum values.
- Snackbar, for practice using
struct
s and writing a linear search algorithm.
Week 4
- Bottom Up, for practice working with images and metadata.
- License, for practice working with files and file pointers.
Week 5
- Trie, for introducing more complex data structures and working with tries.
Week 6
- Bank, from CS50’s Introduction to Programming with Python, for practice with
str
s. - Frank, Ian and Glen’s Letters, from CS50’s Introduction to Programming with Python, for practice with libraries and command-line arguments.
- Jar, from CS50’s Introduction to Programming with Python, for an introduction to classes and object-oriented programming, if feeling more comfortable.
- Seven Day Average, for practice with requests,
dict
s, and data, if feeling more comfortable. - Taqueria, from CS50’s Introduction to Programming with Python, for practice with
dict
s andtry-except
blocks.
Week 7
- Favorites for practice using
SELECT
andUPDATE
keywords. - Hall of Prophecy for practice refactoring a database, using
CREATE
.
Week 8
- Radio Shack Redo, for practice with Bootstrap (and some web development history!)
Week 9
- Hello, Flask, for practice writing a Flask application from scratch.