Upload
stuart-goodwin
View
215
Download
0
Embed Size (px)
Citation preview
Comp 312Production 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
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
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
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
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
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.
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