80 likes | 171 Views
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 be established soon. What is Comp 312?.
E N D
Comp 312Production ProgrammingLecture 1Course 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