Goals for Tech-E

David Williamson, Mar.07.2017


Key Concepts

The main objectives that I have in terms of teaching ideas related to programming don't necessarily revolve around the use of computers themselves, rather this is an exploration of ideas that are relevant to process.

Another very fundamental idea is the idea that there is knowledge that is declarative, and knowledge that is imperative. And we can give pieces of knowledge names, that we can use for reference.

Part of the imperative knowledge is ideas related to events which can trigger processes, and other conditions which must be met in order to execute certain commands. Another important idea is the idea of iteration and recursion. Of course, one of the conditions that can be required can be with respect to a Mutable State. There are also situations when it is desirable to hide information from some parts of the program, so that the information cannot be changed in an unpredictable way.

Once algorithms are understood, it is important to consider the implications this might have for how long a process will take, if the task becomes very complex.

Another important idea, is that of containing a knowledge base, including both imperative and declarative information under a single name.

  • Datatypes
  • Variables
  • Algorithms
  • Functions
  • Objects with attributes and methods
  • Conditionals
  • Loops
  • State and parameters
  • Events
  • Scope and encapsulation
  • Recursion
  • Complexity

Workshop Ideas

All these possible workshops are subject to review and alteration.

  • Vector addition
  • build a cube
  • texture mapping
  • projectile motion
  • angular momentum
  • collision detection
  • gates calculator
  • flip flop
  • P vs NP, Automation
  • Cheat Codes
  • bisection search (d10)
  • Bubble Sort vs Merge Sort
  • encryption
  • compression
  • synthesizer
  • code.org computational thinking
  • code.org the internet
  • random walks
  • origami
In [ ]: