Revised October 2017

CS 493: Team Project 1


Watch a video introduction to this course on YouTube.

General description

This course is the first in a two course sequence that gives students the opportunity to work in teams on open-ended large-scale computer science projects. It gives students an opportunity to delve deeply in an area of their choosing with faculty guidance. Students will gain experience and be instructed in teamwork, project management, communication, critical thinking, and the ethical and legal implications of computing. This first course will emphasize team formation, project ideation and selection, and prototype implementation and demonstration. Teams will be composed of 3-5 students and projects may range from new software systems, to contribution to existing open-source projects, to research projects. There will be in-class instruction on several topics but the emphasis will be on the project work with guidance from the instructor, and there will not be lectures every week.

Logistics

Audience

  • CS major students. Usually taken in fourth year.

Normally available

  • Fall

Related courses

  • Pre-requisites: CS 246, CS 341, CS 350
  • Successors: CS494

For official details, see the UW calendar.

Software/hardware used

  • Varies with the chosen project. For example, students may need to rent server time from commercial providers if building a software service or may need to acquire specialized hardware needed for their project. Use of free/open-source tools such as for version control, bug-tracking, automated build, etc. will be encouraged where applicable.
  • Online discussion forum

Typical reference(s)

  • Course notes
  • Online documentation of exemplar projects including video

Required preparation

At the start of the course, students should be able to

  • Program
  • Manage their own time and work in teams
  • Communicate technical concepts via writing and speaking

Learning objectives

At the end of the course, students should be able to

  • Produce a significant working prototype of a large-scale project
  • Assimilate and apply learning from other courses in the CS curriculum
  • Develop awareness and understanding of professional issues in computing
  • Communicate effectively with peers and the public on a complex technical subject

Typical syllabus

Planning (6 hours)

  • Brainstorming, constructive criticism, team formation, project selection, risk assessment

Prototyping (6 hours)

  • Requirements, project management tools, prototyping, demos

Professionalism (6 hours)

  • Ethical and legal implications of computing, technical communication