16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CS169: Software Engineering, University of California, Berkeley<br />

Armando Fox & David Patterson<br />

fox@cs.berkeley.edu, pattrsn@cs.berkeley.edu<br />

https://sites.google.com/site/ucbsaas/<br />

Knowledge Areas that contain topics and learning outcomes covered in the course<br />

Knowledge Area<br />

Total Hours of Coverage<br />

Software Engineering (SE) 39<br />

Where does the course fit in your curriculum<br />

This course is for juniors and seniors majoring in computer science or computer engineering.<br />

The prerequisites are 3 lower-division courses: “61A: Great ideas in Computer Science,” “61B: Programming with<br />

Data Structures,” and “61C: Great Ideas in Computer Architecture.”<br />

The population of students in the course has grown from 35 students in 2010 to 240 students in 2013, due in part to<br />

the extensive revision of the course content described below.<br />

This course is the basis of two massive open online courses (MOOCs) from UC Berkeley and EdX: CS169.1X<br />

covers the first six weeks of the Berkeley course, and CS169.2X covers the next six weeks.<br />

What is covered in the course<br />

• Introduction to SaaS and software lifecycles: Waterfall, Spiral, RUP, Agile<br />

• Project Management: Pair programming and Scrum vs. Planning and Project manager<br />

• Requirements Elicitation: User Stories vs. Contracts<br />

• Testing: Behavior Driven Design and Test Driven Development vs. Code then test<br />

• Maintenance: Legacy, Refactoring, and Agile<br />

• Version control systems and releases<br />

• Design patterns<br />

• Performance, reliability, and security<br />

What is the format of the course<br />

One semester (14 weeks), 3 hours of lecture per week, and 1 hour of TA-led discussion per week.<br />

How are students assessed<br />

Students are assessed through multiple means. This includes<br />

• Seven programming assignments, which are autograded<br />

• Two midterm exams<br />

• Semester long team project for external non-technical customer done in 4 iterations. Customers give<br />

feedback with each iteration, and a TA grades each iteration.<br />

• Final poster session, including demonstrating the application to the customer.<br />

Course textbooks and materials<br />

Engineering Software as a Service: An Agile Approach Using Cloud Computing,<br />

by Armando Fox and David Patterson, Strawberry Canyon Publisher, 2013.<br />

Why do you teach the course this way<br />

(The full answer is in the Communications of the ACM article “Viewpoint: Crossing the Software Education<br />

Chasm,” May 2012, pp. 17-22.)<br />

- 406 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!