Introduction to Programming
Fall 2014
Documents
- Syllabus and Schedule - Revised October 12, 2014
- Course Policies
- Academic Honesty
- Department of Computing Technology Goals
- Academic Calendar
Books
- Eloquent JavaScript second edition - Free!
- Code Complete by Steve McConnell - Read this!
- Beautiful Code by Andy Oram & Greg Wilson
- Coders at Work by Peter Seibel
Git and GitHub
- A Gentle Introduction to Git and GitHub
- Try Github - a tutorial
Projects
- Project 1 - Your First Web Page
- Project 2 - Game v0.2
- Project 3 - Game v0.4
- Project 4 - Game v0.6
- Project 5 - Game v0.8
- Final Project - Game v1.0
Examples
- Class and Lab Code
- September 4, 2014 class - a beginning web page
- September 8, 2014 class - button clicks and comments
- September 11, 2014 class - memory and variable assignment / sequence
- September 15, 2014 class - variable assignment and reassignment / sequence
- September 17, 2014 lab - the if-else construct for alternation
- September 18, 2014 class - nested if-else constructs / reading and writing DOM elements
- September 22, 2014 class - functions, scope, and parameters (Oh my!)
- September 24, 2014 lab - == vs. === / HAL the goofy AI
- October 6, 2014 class - game example with Switch/Case
- October 8, 2014 lab - scope testing and parameter-passing
- October 9, 2014 class - game example with smaller and more modular functions
- October 27, 2014 class HTML and JavaScript - external JavaScript and loops both FOR and WHILE
- October 29, 2014 lab - annoying the player with FOR and WHILE loops
- October 30, 2014 class - our first class/prototype and instances/objects
- November 3, 2014 class - class/prototype for numbers of various bases and a few instances/objects
- November 5, 2014 lab - the magic square
- November 6, 2014 class - Shapes, Rectangles, Circles, and Squares (oh my!)
- November 13, 2014 class - Arrays and strings
- November 17, 2014 class - Storing shape objects in an array
- December 1, 2014 class - navigation with a matrix
- Final Project Hall of Fame
- Cube v1.0 (2012)
- Other
- All Your Base by Paul Liabach
- Practice fixing invalid markup
- Modifying the DOM
- Spaceship prototype
- Fibonacci: Iterative and Recursive
Resources
- HTML
- Introduction to HTML
- Some Cool HTML 5 Features
- W3C HTML Validator
- Mozilla Canvas Tutorial
- HTML5 Web Storage Specification
- Dive into HTML5 Local Storage
- HTML 5 Local Storage Overview
- Introduction to HTML5 Web Storage
- The HTML tags at Stack Overflow
- The HTML5 and Database tags at Stack Overflow
- The HTML tag at Pro Webmasters Stack Exchange
- CSS
- The CSS tag at Stack Overflow
- The CSS tag at Pro Webmasters Stack Exchange
- Advanced CSS
- CSS and Design
- JavaScript
- JavaScript is Good, Actually - Well... modern JavaScript is.
- A Re-introduction to JavaScript
- JavaScript Style Guides
- The jQuery JavaScript Style Guide
- Some JavaScript code conventions - from Doug Crockford
- More JavaScript code conventions - from many people, managed via Git
- JavaScript: The Good Parts - by Doug Crockford
- The JavaScript tag at Stack Overflow
- The JavaScript tag at Pro Webmasters Stack Exchange
- JavaScript Keyboard Events Madness
- Treant.js - a JavaScipt library for tree diagram visualizations
- Write Tetris in JavaScript
- Git
- GitHub Desktop
- A Gentle Introduction to Git and GitHub from Alan
- Git from the Bottom up by John Wiegley
- Git Basics
- Try Github
- GitHub Guides
- Advanced: Git From the Inside Out
- Visualizing Git Concepts
- How to Write a Git Commit Message - pretty good advice
- The Issues Feature on GitHub
- Dangers of GitHub and Amazon
- General
- DOM Enlightenment- Exploring the relationship between JavaScript and the modern HTML DOM
- Visualize Code Execution - in Python
- W3 Schools Tutorials and References
- Web Programming Tutorials
- The Web Developer's Handbook
Articles
- History
- A Brief History of the Internet
- A Brief History of Web Browsers
- Software Development
- Software Development Developments at Microsoft
- Exploding Software Engineering Myths - more from Microsoft Research
- The Open Web Application Security Project
- A lesson in anti-security
- User Interface Advice
- Amazon's Fast Dropdown Menus
- About Technical Debt from CMU SEI
- Writing Interactive Fiction
- Interactive Fiction Wiki
- Author Guide
- Author Guide Supplemental one
- Author Guide Supplemental two
- History of Interactive Fiction
- History of Zork
- A Treasury of Zork Maps
- Play ZORK online
- Play a bunch of Infocom Adventures online
- Adventure Classic Gaming
- Brass Lantern
- GET LAMP
- LAMP Links
- GET LAMP extended interviews
- Other Games
- All About Pac-Man
- Play Pac-Man in your browser - It's written in JavaScript. The source code is on GitHub.
Click on the image for a larger version.
I reserve the copyright for all parts of my courses.
Commercial reproduction of any course material, including lecture notes
taken by students, without my EXPRESS WRITTEN consent, is prohibited.
Seriously.