Boot Camp

part of Teaching by Philip Greenspun

The details: Visit ArsDigita for more information about the company, boot camps, and jobs.

Background: This material is generally taught to computer science seniors at MIT. You should have at least some programming background before attempting the boot camp. It is also helpful to have some mechanical skills (driving a Unix machine, editing files in Emacs; you can get these by installing Linux on a PC and playing around).

Objectives

University of Cosmetology.  Las Vegas, Nevada We want to teach programmers the Web/db and community service development skills that they'd get from the problem sets in our one-semester course at MIT, plus the following: Hidden agenda: At least a few folks from each boot camp seem to end up working at arsdigita.com or one of its customers.

Gross Schedule

Our boot camp comes in three incarnations:
  1. short: three weeks; three problem sets on development systems that are set up in advance by professionals (i.e., the students don't learn about Unix and Oracle installation)
  2. medium: five weeks; setting up a development system and then doing three problem sets
  3. long: twelve weeks
Here is the gross outline of the long schedule: For the short version, we do only Weeks 3 and 4. For the medium version, we do Weeks 1 through 5.

Textbooks

For short course: For the medium and long courses, add the following:

Week 1

Detailed schedule: http://philip.greenspun.com/teaching/bootcamp/week1/week1.html

Note: Scott Blomquist is available Monday, Tuesday, and Friday afternoons.

Weekend

Over the weekend, students prepare by reading the following: Based on this reading, each student prepares a presentation for the entire class, using either http://wimpy.arsdigita.com or notecards/whiteboard. The presentation should cover the following topics:
  1. the basic structure of Oracle
  2. how Oracle looks to Unix: N processes and what each one does
  3. how to order disk drives to support Oracle and then how to use them
  4. how a table is stored in Oracle: segments and extents
  5. what the rollback segment is and how it is used
  6. users, roles, and permissions
  7. preparing for the worst: backup strategies
  8. steps to making sure that you can do online backups
We will pick students at random to present each one of these topics. The other students will be responsible for criticizing. Oracle's structure is so complex that the only way you can possible learn it is by preparing to teach it to others.

Week 2

Day 1 (morning): initiate scp of Oracle installation CD-ROM to each machine, attend presentations on Oracle structure

Day 1 (afternoon): install Oracle 8i with Intermedia and SQL*Net, create a user called "web" in its own "web" tablespace (with one datafile called "web.dbf"). Tweak the Oracle installation until the acceptance tests in http://www.photo.net/wtr/oracle-tips.html will run.

Day 1 (at home): read chapters 13 and 14 of Oracle8 DBA Handbook

Day 2 (morning):

Day 2 (afternoon):

Day 3 (morning):

Day 3 (afternoon): get Intermedia text search to work

Day 4 (morning, afternoon):

Day 5 (morning): Tuning. Make sure that the web user can run "set autotrace on". Require use of analyze table compute statistics.

Day 5 (afternoon): deadlocks, integrity constraint violations (finding and dropping integrity constraints), Helpful: Chapter 32 of Oracle8: The Complete Reference

Day 5 (late afternoon): compile AOLserver Oracle driver and connect your AOLserver to Oracle as the web user

Weekend

Students prepare by reading the following:

Week 3

On each day this week, we observe the following schedule: Monday morning lecture: Overview of languages and resources
Monday evening reading: short course students should read all the stuff that longer course students were supposed to read last weekend

Tuesday morning and afternoon lectures: Common errors will be user to further introduce the programming environment.


Wednesday morning lecture: Structured approach to building SQL queries
Wednesday evening reading:

Reading from Visual Explanations: Friday: Full day lecture at MIT

Week 4

Activity: Doing Problem Set 2.

Week 5

Activity: Doing Problem Set 3.

Doing a short boot camp on-site somewhere

For the short boot camp, the key is to get facilities ready beforehand. For lectures, we simply need a room large enough to hold all of the students, a good Internet connection, a Web browser, and a high-quality video projector so that all the students can see what is on the Web browser. For problem set work, the students need a big room or open cubicle area so that one TA can cover 10 students. Each student must have a computer with an ssh client and an X server (i.e., any Unix machine with appropriate software installed or a Windows machine with Hummingbird Exceed and fsecure SSH).

Week -2: professional system administrators configure student development machines with the Unix operating system and Oracle8i. There should be one development machine for every 8 students. This is partly to work around a bug in Oracle 8.1.5 (won't run on a machine with more than 10 IP addresses). Once the basic stuff in the LCS computing facility document is set up, you need to

Week -2: boot camp sponsor orders textbooks and prints Web-based materials.

Week -2: boot camp sponsor verifies that ssh connections can be made through their firewall to baden.ai.mit.edu, trying to log in as "foo" password "bar" and getting "login incorrect".


philg@mit.edu