The following is a list of puzzles, games, and challenges related to different fields within computer science, because programming and learning doesn't have to be boring!
Feel free to submit additions or categories to the list as its definitely not complete.
Solve programming problems given specifications and constraints, usually involving algorithms, data structures, and general problem solving
Hack into vulnerable programs, websites, or servers to retrieve flags. Involves many areas of hacking including: binary exploitation, forensics, cryptography, web hacking, reverse engineering, etc.
Use multiple techniques to bypass website security
Reverse engineer binary programs to gain unauthorised access.
Solve a certain problem with the shortest possible source code (counted by characters).
Solve mathematical based problems with code.
Train the best machine learning algorithm to fit some given data.
Solve puzzles that involve GPU programming.
Implement and break cryptography algorithms.
Compress a given file as much as possible (typically lossless compression).
Solve bioinformatics based problems with code.
Create the logical circuits of common hardware devices.
Understand and break multithreadded programs.
Obfuscate the source code to a program as much as possible.
Hack into ethereum smart contracts.
Extract data and manipulate machine learning models.
Develop a game given specified constraints.