[Texas PLT logo]

COMP 402: Production Programming

  (none)  

Instructor

Robert "Corky" Cartwright — Office hours: MWF 9-10 and by appointment.

Under Construction

In this course, our primary goal is developing a proficiency for production programming in Scala (and perhaps Java as well).. We will work on developing the Acumen language for simulating cyberphysical systems and on creating a lightweight IDE for Scala based on DrJava.

The DrJava build process is based on Java 5.0 so that users with Java installed can use DrJava. Since recent versions of Scala are based on Java 6 and Java 7, will port the Java build script to use Java 6 and do our DrScala development in Java 6. We will avoid Java 7 because even Acumen is not yet based on Java 7 versions of Scala. Acumen is based on Scala 2.8.(4?) which is based on Java 6. We will investigate upgrading Acumen to Scala 2.9.1. (Java 7 is not yet well supported on Mac OS X, so we may decide not to migrate.)

With the exception of two assignments near the beginning of the course, all programming will be done in teams. The class will be divided into two or three teams, each under the supervision of a teaching assistant who will serve as the team manager. Each team will design and implement a substantial extension to DrJava and perform maintenance tasks.


Workload and Grading

Students are expected to spend 10-12 hours per week (including lectures and team meetings) on the course, mostly working in teams on software projects. Students are graded primarily on their effectiveness as software developers. Performance on individual assignments will contribute less than 20 percent of a student's grade.

Each student is required to keep a log book recording the blocks of time (date, time, duration, task) spent on programming in the course. All phases of the program development process (design, coding, reviewing, testing, and debugging) should be included.


Topics Covered

Production Programming Using eXtreme Programming (XP)

Leading-Edge Programming Technology

Review of OO Design Principles

Concurrent Programming

Project Management

  (none)  

URL: http://www.cs.rice.edu/~javaplt/402/12-spring/info.shtml