“Data dominates. If you’ve chosen the right data structures and
organized things well, the algorithms will almost always be
self-evident. Data structures, not algorithms, are central to
programming.” - Rob Pike
“I will, in fact, claim that the difference between a bad programmer
and a good one is whether they consider code or data structures more
important. Bad programmers worry about the code. Good programmers worry
about data structures and their relationships.” - Linus Torvalds
“Smart data structures and dumb code works a lot better than the
other way around.” - Eric S. Raymond
Ponder some hard problems we will tackle this semester
* Search for an item in a collection?
* How to do so in constant time regardless of the size of the
collection?
* How do you efficiently sort all the items in a collection?
* Insert into a sorted collection?
* Do so efficiently?
* Find shortest paths on a map?
* Efficiently?
* How do you even represent that map?
Common issues students encounter in Data Structures
Tracing code!
Starting with the most minimal program possible for the assignment
and checking in small increments
Code shuffling versus progressively building on
functioning/compiling code
Adding more code to your program before you understand exactly and
entirely what each line of existing code does
Copying code from the internet (especially without understanding it
in full detail first)
Not reading thoroughly (or at all)
“Modal learning” is mostly junk science - there is not really any
convincing evidence of being a kinesthetic or auditor learner for
example.
Time and effort is what it takes!
“Great teachers don’t teach” - Ben Jonhson (They provide resources,
motivation, and guidance)