Computing course ideas
From BenningtonWiki
Contents |
Logic Machines
- Logic Machines 1.0 – Intro to hardware and software and algorithmic thinking.
- Logic Machines 2.0 – Continuing the hardware and software tracks from Logic Machines. Build a microprocessor.
- Logic Machines 3.0 – Bring up a computer from nothing. Using the LM microprocessor, write a monitor, libraries, assembler, etc.
- Logic Machines 4.0 – Design and build a computer around an off-the-shelf microprocessor. Port monitor, assembler, etc.
- Logic Machines 5.0 – Build an operating system for the custom-built computer. Port Darwin, Linux, etc.
Code and Creativity
- Code and Creativity 2.0 – Using processing, primarily.
- Emotional Engineering – Storytelling with computers, in all its forms. [This idea morphed into alt.storytelling which Chris Miller is teaching, Fall 2007.]
- Nonsense instruments that operate with 100V electricity created from energy from outer space – http://www.youtube.com/watch?v=9X54RvzZKkI
Sciences
- Coding as a Microscope on the Natural World – Bouncing balls, birds in flight, sailboats pushed by the wind.
- Coding to Understand — Alternate title for above, but I also needed a placeholder for a course that concentrated on social science and simulations. Economies, banking, immigration, voting, etc.
Software Development
- Coding Like You Mean It – Exploring large open-source software projects.
- Building a Better Photoshop – Enhancing off-the-shelf software via extensibility APIs.
Computing Technologies
- Digital Typography – Understanding the math and algorithms behind computer typography.
- Virtual Worlds – All about OpenGL and physical simulations.
- Microcontrolling the World – Microcontrollers and transducers. Focus on industrial-grade microcontrollers and processors, and inventing new transducers.
- Security is for Blankets – All about computer security: worms, viruses, access control lists, social engineering, phishing, software auditing, vulnerability exploits, shell codes, etc.
Hardware
- Building a Server Tutorial
- Balloons and microcontrollers. Building useful and/or creative projects that are sent up on a weather balloon. Considerations: weight, battery-powered, remote communications.
Theory
- Logical Thinking – Logic, syllogisms, problem-solving strategies. Algorithmic thinking, using software to test ideas.
- Information Theory – Shannon, Goldbach, complexity, algorithmic information content, lossless and lossy compression, etc.
NOTES
I'm thinking that Coding Like You Mean It will become a theme within courses that I'll teach in the future. In particular, I'd like to teach more "Computer Science" classes with systematic studies of algorithms and data structures. In the style of Coding... we would use large open source projects to see the things we learn in action. As I mention in my Coding... notes the pattern of learning will be: 1. Introduce a concept, 2. Write code for the concept, 3. Find examples of the concept in large projects, 4. Rewrite those sections of the large projects using our own code.
Hint: Whenever you see “etc.” at the end of a list it means I don’t really know that much about the subject.
