The idea is to list one hundred curious things about programming. These can be taken on faith. In some languages they are true. In other languages, no. Developing a sense of what might and might not be true is the part of programming that is rarely taught, probably because the inconsistency is an embarrassment.
See also One Hundred Formulas for circuits and systems.
X = X + 1 but not at the same time.
Swaping X and Y usually needs T.
F = 9/5 C + 32 if we are careful.
Count Down from 10.
-32768 .. 32767 as lopsided limits.
Gray Codes reorder the possibilities
Print Hello World.
Convert To String and back again.
Sing 99 Bottles of Beer on the wall.
Regular expressions, captures and unification.
Glyphs from large alphabets
variable elements from a queue
A Turtle moves and draws.
A Collection holds many things.
A Manager delegates responsiblity.
A Symbol can influence computation
Dispatch to cases based on symbols
An Interpreter is repeatedly influenced
Recursion assumes unbounded state
Nodes can come and go
A Reference connects nodes
A Traversal of some or all nodes
Trees or lists have ends
Mark Graphs or rings to stop
When Order becomes important
An Algorithm describes steps that lead to a result.
A Methodology offers advice to people seeking results.
A Program influences the future behavior of both people and machines.
Are we close to done? Not hardly. Let's assume we'll have 10 topic areas averaging 5 topics each with an equal number of advanced topics hidden within. This makes for 100 topics total. Our 7 topics has us about 70% done with the surface outline, 35% done identifying topics, and, just samples of the writing to test the style.
See also: A complete computer science study plan to become a software engineer. github
If you’re a self-taught engineer or bootcamp grad, you owe it to yourself to learn computer science. post