8
Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Embed Size (px)

Citation preview

Page 1: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Comp 312Production Programming

Lecture 1

Course Overview and Culture

Corky Cartwright

January 12, 2005

Page 2: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Course Facts

See web page www.cs.rice.edu/~cork/312

Participate in the course wiki which will beestablished soon

Page 3: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

What is Comp 312?

• Production programming using test-driven development as codified in eXtreme Programming (XP)

– What characterizes XP?• Incremental, test-driven program development• Comprehensive unit testing suite included in code base• Continuous integration• Pair programming• Group ownership of code• On-site customer• Simplicity is more important than generality• Refactoring• Coding standard

• Active learning in real-world context

Page 4: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

What is Comp 312, cont.

• Leading edge programming technology– Generics– Concurrency– Reflection– Custom class loaders– Ant and XML

• Review of OO Design principles – Design Patterns– How to Write Unit Tests– Refactoring

• Concurrent Programming– Threads– Locking disciplines to prevent races– Deadlock

• Project Management

Page 5: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Subtext of Comp 312

• Gateway to Java PLT Research Group.• Projects in Comp 312 are tied to Java PLT

research program.– Lightweight project facility for DrJava

– Support for refactoring including a language for defining refactoring transformations

– Language levels

– Lightweight code completion, XML class diagrams

– Framework for the unit testing of concurrent programs

Page 6: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Good Software Engineering Practice

• Test-driven design– Unit tests for each non-trivial method written before any

method code is written– Unit tests are a permanent part of the code base

• Continual integration• Continual refactoring to improve coding logic and

avoid code duplication• Pair programming • Conscientious documentation (contracts)• Avoiding mutation unless there is a compelling

reason

Page 7: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Course Culture

• Workload: 10-12 hours a week includingclass time. You must keep a log describing how you spend this time.

• No traditional programming assignments or exams.

• Graded exactly as you would be evaluated as an employee. Input from managers and logs is critical.

Page 8: Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005

Assignment 1

• Due Friday, Jan 14 in class.Read "Everything about programming …" article on course web page.

• Due Wednesday, Jan 19Read Generics Tutorials by Eric Allen and Gilad Bracha on the course web page