Instructor Page for Clone of Dynamic Languages and Software Development
Term: Fall 2013-2014
Instructor, time and description
Instructor: Chåen Ding, Prof., CSB Rm 710, x51373
Lectures: Tuesdays and Thursdays, 3:25pm to 4:40pm, CSB 601
TA: Jacob Brock, jbrock <at> cs.rochester.edu
Office Hours: Ding, Fridays 11am to 12, CSB 720, chending07 on Skype (email/IM before coming so I'll be in office for sure); Brock, Wednesdays any time between 9am and 5pm by appointment, CSB 627.
Modern software is increasingly constructed from existing components, dynamically composed and run in a networked environment. The course teaches concepts, principles and practices of dynamic programming languages and modern software design. The topics include advanced techniques in procedural, functional, and object-oriented programming; composition of functions, objects and modules; design patterns; software process and agile methods; tools for collaborative software development; and select topics in mobile and on-line software development. Course assignments consist of individual and group projects and presentations, including the development of collaborative software (groupware).
CSC 252 and CSC 254 are recommended before taking the course. The course does not have a single textbook. Lecture slides and other material will be distributed through the class repository.
Homework 1 (Due Friday, Sept. 6)
Homework 2 (Due Friday, Sept. 13)
- Peter Wegner's article in the repository at [repos]/reading/required/03-wegner-cacm97.pdf
- Chapter 1 of David West's book: Object Thinking at http://proquest.safaribooksonline.com/0735619654 (Must access from UR)
- http://en.wikipedia.org/wiki/Category:Programming_principles (explore)