CS189A/172 - Winter 2008 Lecture 1: Introduction
CMPSC 189A/172 • Lectures: Monday/Wednesday/Friday 1:00-1:50PM, 387 101 • Discussions: Friday 3:00-3:50 PHELP • Instructor: Tevfik Bultan firstname.lastname@example.org, Phone: x3735 Office Hours: Monday, Friday 2:00-2:50PM, HFH 2123 • Teaching Assistant: Chris Coakley email@example.com Office Hours: Monday 3:00-3:50, Wednesday 2:00-2:50, CSIL • Class Mailing List: firstname.lastname@example.org • Messages sent to class mailing list will be forwarded to the instructor, the TA and everybody who is taking the class. • Not operational yet!
Capstone Project Class • Two quarter project class in which students put their education into practice by building a significant system as a team • Learn by doing • Chance to explore the latest technologies • Provide practical experience as a form of career building • Capstone is mandatory for Computer Engineering majors and elective for Computer Science Majors • Two flavors of Capstone are available • ECE 189 A/B • Focuses on development of a hardware prototype • Runs Fall/Spring every year so chips can be fabricated during the Winter • CS 189 A/B • Software systems engineering oriented • Runs Winter/Spring to allow continuity
CS 189 A/B • Students who define their own projects for CS189 • Often the projects have commercial appeal • Occasionally they have had commercial impact and/or viability • Students who want to work on cutting-edge projects from industry • World-class technology and industry leaders have agreed to participate • “donate” cutting-edge problems • Help provide guidance • Open to all senior-level CS and CE students who are not enrolled in or have taken ECE 189 • We organized a class meeting on December 5th • Slides from this meeting are available at the class webpage: http://www.cs.ucsb.edu/~cs189/
First Week Presentations Mon 1:10: Dave Gianini, VP Engineering Mon 1:30 Eron Howard, VP Development Wed 1:10: Mohamed Hafez, Software Engineer Wed 1:30: Martin Rhoads, Systems Engineer Fri 1:00: Andrew Duncan, Senior Software Engineer
What Happens in 189A? • 189A first week (Jan. 7-11) • Company representatives present the challenge problems • Students form teams (3-5 members each) and pick projects • 189A goals • Specify what the product will do • Design the product • Build a prototype • Typically teams iterate on these three activities until they converge to a working prototype! • 189A (March 20) • Prototype demonstration
What Happens in 189B? • 189B (March 31-April 4) • Prototype demonstration to company representatives to get feedback • 189B goals • Build a full product • Implement all the parts that were omitted in the prototype for 189A • Test the product • Prepare a presentation • 189B final (June 5) • Project presentation day • This is the big event where the teams present their projects to a lot of people!
Two Course Sequence • This is a two course sequence: CS189A/172 and CS189B • In order to develop a full product your team has to participate to both courses • CE students are required to take both courses • For CS students CS189A/172 and CS189B are electives but we strongly encourage CS students to take both courses • The students who participated in both 189A/B courses last year were very proud of the outcome and their projects became the most important item in their CVs • If you take both CS189A and CS189B you get to participate to the presentation day showing your project to your peers, faculty, company representatives, and your family!
Student Comments After the Class I enjoyed the structure of this class & I think applying our efforts to “real world” problems given by companies is extremely effective. The pairing with industry is great. I found this course to be very interesting and helpful to my pursuit of a Computer Science degree and Software Engineering job. Working with companies was motivational and fun.
Student Comments After Graduation "As far as getting a job goes, CS189 is probably one of the most useful things you can do as an undergrad." Brendan Blackwood, iContact “CS189 not only helped me during job interviews but also the project I am working on with PowerPoint is very similar to the project that my group worked on (the online slide sharing app)” Melissa Hunter, Software Design Engineer, Microsoft "Many projects I am working on now I find myself going through the same steps I did in CS189 class. From gathering requirements, producing design specs, and ultimately presenting my work." Chris Fattarsi, Web Developer, NASA Ames Research Center
How to Claim a Project? • To claim a project you have to form a team of • at least 3, and • at most 5 members. • Each team member has to e-mail the instructor the following: • The name of the team • The project they wish to work on • Names of all team members • The project is claimed by a team when: • the instructor receives an e-mail from each team member with the above information (the information in each e-mail has to match) and • if no other team has claimed the project earlier • One team per project! • The team that gets organized first and sends the e-mails gets the project
First Three Assignments • All the teams must be formed by the beginning of 2nd week of classes, Monday, January 14 • You have to form your teams in the first week and pick a project • Each team must prepare a 1-2 page vision statement about the project describing, due Friday, January 19th • what the project is about • what will be the outcome of the project • what will be the implementation platform • A team member from each team is going to present this vision statement to the class on Friday, January 19th
The Structure of the Class • The class will be organized as follows • Monday lectures: Tevfik discusses a general software engineering topic • Wednesday lectures: Tevfik, Chris, or a guest lecturer presents a tool or a technology related to some or all of the projects • Friday lectures and discussions: Teams present what they have done and we discuss the progress of each team
Future Course Work • In 189A, in addition to building a prototype for the project you will also prepare the requirements and design specifications for the project • Please turn in everything either in pdf or html • All project artifacts by all teams will be accessible by the class • There will be no homeworks, midterm or final • So that you can devote a lot of time and energy to the project! • However there will be some reading assignments and quizzes • You will be graded on the project deliverables, quizzes, your performance in presentations and discussions and • you will also receive a peer grade: • I will ask you to grade each other’s performance during the project since you know what your team members are doing much better than I
Course Goals • To learn the issues and problems involved in large software projects • To learn phases of software development and evolution: requirements analysis and specification, software design and specification, implementation, testing, and maintenance • To learn basic software engineering techniques and principles • To gain experience in large scale software development by working on a team project