Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005
Course Facts See web page Participate in the course wiki which will be established 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: hours a week including class 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 19 Read Generics Tutorials by Eric Allen and Gilad Bracha on the course web page