CSC 290: Collaborative Software Engineering, Spring 2009

Course Description

This experimental course teaches principles and practices of collaborative software development. The topics include fundamentals of programming (more for organizing information than for managing computers), software engineering, scalable information systems, and current practice and tools for teamwork and virtual collaboration. The assignments are a series of individual and group programming projects designing software interacting through the Web.

Instructor, Office Hours, and Grading

Instructor: Chen Ding, Prof.

Teaching assistant: Konstantinos Menychtas

Lectures: Tuesdays and Thursdays, 11.05am-12:20pm, CSB 632

Office hours: Ding, Fridays, 11am to 12pm or by appointment, CSB Rm 710, x51373. Menychtas, TBD.

Grading: total 100%

  • Written assignments account for 20% of your total grade
  • Programming assignments account for 80% of your total grade
    • 40% for individual projects
    • 40% for team projects

Class Schedule and Reading Material

LectureSorted ascending Topic Reading

Apr. 14, 16

Scalable systems II genetic "systems"

Selfish gene by Dawkins in 1976 (read Chapter 4, the gene machine, and Chapter 5, aggression and stability)

Apr. 2, 7, 9

Scalable systems I

theory of locality
The locality principle by Denning (acm lib)
Whole-program locality by Ding et al. (acm lib)

Apr. 21, 23

Scalable systems III game theory

material and reading tbd

Feb. 3, 5

Closures, actors

Evolution of lisp by Steele and Gabriel (acm lib, read 2.8, 2.10, 3.5 at least)

Jan. 15

Introduction to complexity

programming, design, collaboration

Voices of computing by Denning (acm library)
History of programming languages keynote by Steele and Gabriel in 2007 (85 min movie from acm library, modest image/sound quality and limited playback control)
"Can't be built", by Gabriel (ieee library)

Jan. 20, 22

Everything is an object

object-oriented programming

Synthesizing OO and functional design by Krishnamurthi, Felleisen, and Friedman, 1998 (.ps at the author's site at Brown)
Ruby programming (free on-line book by Thomas and Hunt, another by Cooper from books24x7 through ur subscription)

Jan. 27, 29

Everything is a function

Lambda calculus

Church numerals (wiki page)
How to Design Programs by Felleisen, Findler, Flatt and Shriram Krishnamurthi (free on-line access, reference book for Scheme/general programming, use PLT Scheme)

in February

Programming tools
libraries, source browsing, version control, module systems, virtual machines
Open source development with CVS, 2nd Ed., Fogel & Bar (books24x7 via ur subscription, Chapters 2, 6, 9)
diet libc by von Leitner (an entertaining presentation, see also Chapter 13 of von Hagen's GCC book at book24x7)
Java virtual machine (Chapter 1 of Spell, books24x7, Chapter 14 of Meyers, books24x7)
other material to be posted

in March

Web programming
Beginning XML 4th Ed. by Hunter et al. (books24x7 via ur subscription, Chapters 13, 22)

in February

Design patterns
creational, behavioral, structural patterns, UML
Design patterns by Lasater (books24x7 via ur subscription)
UML (Chapter 14 of Kak, books24x7, Chapter 5 of Garland and Anthony, books24x7)

in March

Software engineering
development process, teamwork
Epigrams on programming by Perlis (acm library)
Software paradigms by Kaisler (books24x7 via ur subscription)
Components, COTS(Lau editor, books24x7, read Chapter 1)
Schuh's book on Agile development(books24x7 via ur subscription, read Chapter 3)
other material tbd

Written and Programming Assignments

Class Collaboration and Help

Use the power of the wiki to collaborate and help each other - Edit or Add content to the following pages as you wish:

  • Question and Answers: Post questions and answers on anything concerning the class.
  • Tools: Information about tools we are going to be using.
  • External Resources: Links to useful resources not falling in the previous categories.
Edit | Attach | Watch | Print version | History: r46 | r11 < r10 < r9 < r8 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r9 - 2009-01-15 - KonstantinosMenychtas
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback