Basic data structures:
linked list, binary tree, hash table, stack, queue
Design Patterns: Millions of these, but these of some of the absolute core
Creational
----------
http://en.wikipedia.org/wiki/Creational_pattern
abstract factory
factory
lazy initialisation (lazy loading)
singleton
Behavioral
----------
http://en.wikipedia.org/wiki/Behavioral_pattern
command
iterator
observer
strategy
Structural
----------
http://en.wikipedia.org/wiki/Structural_pattern
adapter
composite
decorator/wrapper
facade
proxy
Presentation
------------
Model View Controller (pedants argue this is an architectural pattern not design)
OO Principles
-------------
Decoupling
Encapsulation
Favour interfaces rather than implimentation inheritance