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.
Numbers
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
Strings
Print Hello World.
Convert To String and back again.
Concatenating strings.
Sing 99 Bottles of Beer on the wall.
Matching strings.
Regular expressions, captures and unification.
Glyphs from large alphabets
Loops
parallel lists
merge
variable elements from a queue
read-eval-print loops
Models
A Turtle moves and draws.
A Collection holds many things.
A Manager delegates responsiblity.
Representations
A Symbol can influence computation
Dispatch to cases based on symbols
An Interpreter is repeatedly influenced
Recursion assumes unbounded state
Structures
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
Perscriptions
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