The fundamental abstractions
Digital representation of analog values
Switches as logic elements
Using a clock to hide transient behavior
Using truth tables and Boolean algebra to represent combinational logic
Using state diagrams to represent sequential logic
Using hardware description languages to describe systems
Using timing diagrams to represent idealized temporal behavior