Links
Resources for this Course
- Lectures for this course (HTML files)
- Solutions to selected homework problems
- Some notes on passwords
- Lifehacker: How I'd Hack Your Weak Passwords
- Lifehacker: Five best text editors
- Lifehacker: Choose and Remember Great Passwords
- Passwords - from Red Hat
- Ubuntu on a Flash Drive - Running a PC, and don't have access to Python / Ubuntu? Here's how you can actually go about making your own.
- Installing Cygwin (for access to Python, ssh, sftp, etc.) on your Windows Box? Here's how:
- How Algorithms Shape Our World
- SQLite.org - Open-source, self-contained, serverless, zero-configuration, transactional SQL database engine.
- SQLite Manager - a Firefox extension, handy for manipulating your SQLite databases/tables
- Using SQLite from Python
Websites
- slashdot.com — Computer geek central, online
- boingboing.net — Where technology and culture clash.
Recreational Reading
- In the Beginning Was the Command Line, by Neal Stephenson
- Microserfs, by Douglas Coupland
- Close to the Machine: Technophila and its discontents, by Ellen Ullman
Python
- Python.org - The official Python website
- Python Tutorial - A nice online reference
- Google's Python Class - Come on. It's Google!
- How to Think Like a Computer Scientist - Elkner J., Downey, A.B., and Meyers, C. 2009. Online textbook.
- Learn Python the Hard Way - Shaw, Zed A. Really nice introduction to the language, with lots of good, line-by-line examples.
- Dive Into Python - Pilgrim, M. Excellent introduction to Python, especially for experienced programmers
- Software Carpentry - An intensive introduction to basic software development practices for scientists and engineers, using Python
- Computer Programming for Everybody, by Guido van Rossum
- Audio/Video Instructional Materials for Python
- A Byte of Python, by Swaroop C H. Online text/tutorial.
- Wikibooks: Python, an open-content textbook, online and available for PDF download.
- Pygame.org - Not a bad little module if you want to experiment with programming games
- Switch On the Code: Pygame, a nice set of links with some good tutorials (found by Buike--thanks!)
- Six Free E-books on Python - Good stuff here, in a great price range
Open Source Stuff
- http://www.ubuntu.com/ - Free operating systems don't get any user-friendlier than this.
- http://www.linuxmint.com - A really nice Debian Linux distro.
- Contributing to Open Source - There are lots of ways to do this!
- Contributing to OpenOffice.org - Ways to contribute to this specific project.
Project Inspirations
There's nothing like putting together a little project to get you knee deep into programming. The following programs might serve as inspiration:
- http://www.nethack.org/ - A classic, terminal-based, adventure game.
- 48 Hour Game Contest - These people are insane. A riveting story from Ars Technica.
Robotics
- The Latest Version of the Little Dog Robot (YouTube)
- Aggressive Maneuvers for Autonomous Quadrotor Flight (YouTube)
- Robots... need programs. This is why we code!
Hardware
- Ars Technica Guide: March 2011 Edition - They've started updating this guide a little more frequently, which is nice
- Ars Technica System Guide: September 2010 Edition - Build your own box; all the cool kids are doing it.
- The First-Timer's Guide to Building a Computer from Scratch, by Gina Trapani. This is a really nice introduction to the whole process, including linked subsections: Install the motherboard and CPU, Install your RAM, Install the video card, Install the hard drive and DVD drive
Miscellaneous
Odds and ends. Explore.
- Proton Radio - Music to code by...!
- How I'd Hack Your Weak Passwords - This is not a tutorial! It's an explanation of why strong passwords are important.
- TuringMachine.com - Wow. Serious.
- The Anatomy of the Twitter Attack - Get your passwords in order.
- Stuxnet - a whitepaper from Symantec with fascinating details. Cyberwarfare has arrived.
- vi for Smarties, by Jerry Wang. vim it the coder's text editor, unless you prefer emacs. They're both awesome, and totally different. This is a good introduction to vi, which comes pre-installed on Linux and OS X machines. (Windows, you can get it via Cygwin).
- Beginner's Guide to the Vi editor, from UCSD. Very nice, with good practical examples.
- Rybka disqualified and banned from World Computer Chess Championships. Cheating in computer programming. Interesting story, with documentation and some information on how to go about coding chess position analyses.
- Best Linux Downloads, via Lifehacker
- Women & Computer Science, courtesy Google