Course description, time, personnel

CSC/TCS 253/453 Fall 2015

Instructor, time and description

Instructor: Chen Ding, Prof., CSB Rm 720, x51373
Lectures: Mondays and Wednesdays, 3:25pm to 4:40pm, CSB 632

TA: Pengcheng Li, pli <at>; Benjamin O'Halloran, bohallor <at>
Office Hours: Mondays/Wednesdays CSB 632 2pm-3pm;

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.

The course is cross listed.  CSC 161 or equivalent is required and CSC 210 recommended for CSC 253 and TCS 453 students.  CSC 252 and CSC 254 are recommended for CSC 453 students.  The course does not have a single textbook.  Lecture slides and reading material will be distributed through the class repository.  The software engineering part will use textbooks, which will be on reserve at Calson Library.

Reference books

(on-reserve at Carlson Library 2nd floor or online)

SOFTWARE FUNDAMENTALS: COLLECTED PAPERS by Parnas, David L, edited by Daniel M. Hoffman and David M. Weiss.  Addison Wesley 2001.

Object-oriented and classical software engineering by  Stephen Schach, 8th edition, McGraw Hill, 2010.

​Fundamentals of software engineering by Ghezzi, Jazayeri, and Mandrioli, 2nd edition, Prentice Hall, 2002.
Design Patterns in Ruby by Russ Olsen, Addison-Wesley Professional, 2007 (online access through the university library)