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