Web and Mobile Application Development

Department of Computer Science
Summer 2010

Basic Description

This JBS will be an extended semester model, which consists of a 12-credit summer of two 6-credit experientially enhanced courses, followed by a 10-15 week, 8-credit program in the fall consisting of a full-time internship and an independent study.

The goal of this JBS will be to teach the fundamental concepts behind database management and Web-based application development and to combine this theory-based curriculum with an extended experiential component in which the students put these ideas into practice, both in a project of their own design and in a full-time fall internship. This course should help students deepen their understanding of these important academic subjects while simultaneously using those concepts to build systems that have an impact on the world. A database course is already listed in the catalog, but we might want to create two new courses for this program.

This course will be open to all students who have taken the first three semesters of the computer science BA, i.e. CS11a, CS12b, CS21a. Although this is being designed for upper level undergraduates, it could also be a very popular format for master's degree students as well. Students would apply in the spring and we would hope to line up fall internships before the summer starts.

At the end of this extended semester, the students should have a solid understanding of the principles of database and web application design and should also be able to apply that academic understanding in a small group setting to build high quality systems based on those principles.

This extended semester would provide 4 upper level computer science electives toward the Bachelor of Arts and would decrease the number of CS majors on campus in the fall semester, but schedules can be adjusted to handle this variation.

Courses

1) CS 152a: Software Engineering for Web Applications (new – 6 credits)
2) CS 153a: Software Engineering for Cloud Computing and Mobile Applications (new – 6 credits)

Summer Contact Hours

The summer courses will meet 4 hours/day, 4 days/week for 8 weeks. Each day will consist of four hours of class time with an additional two hours of lab time each day.

Weeks 1 to 4 (June)

Mon. 10 a.m. to 12 p.m. CS 152a lecture
  12 to 2 p.m. Lunchtime guest lecture/discussion
Tues., Wed., Thurs. 10 a.m. to 12 p.m. CS 152a lecture
  12 to 1 p.m. CS 152a lab lunch meeting (group discussion)
  1 to 2 p.m. CS 152a supervised lab
  2 to 4 p.m. Open lab unsupervised

Weeks 5 to 8 (July)

Mon. 10 a.m. to 12 p.m. CS 153a lecture
  12 to 2 p.m. Lunchtime guest lecture/discussion
Tues., Wed., Thurs. 10 a.m. to 12 p.m. CS 153a lecture
  12 to 1 p.m. CS 153a lab lunch meeting (seminar format)
  1 to 2 p.m. CS 153a supervised lab
  2 to 4 p.m. Open lab unsupervised

The first four weeks will focus on database design and the second four weeks on Web and mobile application development. Over the course of the 8-week period in the experiential component they will build real social networking applications from basic principles. They may if they wish build systems for use by neighborhood partners, or they can build systems for virtual communities instead.

Summer Assignments and Exams

The two summer courses will have quizzes and a final exam. In the experiential component the students will be encouraged to build a web application for either a physical or a virtual community.

Fall Internship and Independent Study

Students will be required to take a full-time Fall Internship with at least 300 hours from August to December as part of this JBS where they apply the ideas they have learned in a real-world setting. Usually this will be a paid internship in a company somewhere in the US, which will be set up before the summer JBS courses begin. They will also enroll in 4-credit independent study in which they read scholarly articles related to their internship.

Fall Contact Hours and Grading

Students will be required to use the LATTE site for their internship class to get weekly readings, to post blog entries answering weekly questions posed by the instructor, and to comment on at least two other students blog posts each week. They will need to write at least three reflection pieces about their role in the company and its role in the world, and they will need to prepare a final paper and a public presentation of their internship. The instructor will hold online office hours via iChat or Skype one day a week or by appointment.

Teaching Load

Instructor: There are a few models for this. In one model, a Brandeis instructor (initially Tim Hickey) teaches both courses for $8,000 each and teaches the fall internship course for $2,000. Another model is one or both courses are taught by another CS faculty who then frees up time in either the fall or the spring for course relief. A third model is to hire an external faculty member to co-teach the summer session with a Brandeis faculty for $8,000 each and then to have the Brandeis faculty supervise the independent studies and internships in the fall for $2,000.

Course Assistant: The fall internship course would have a graduate TA to help read the posts and answer technical questions that students may have, as well as referring some questions to the instructor. This could be one of the teaching fellows and would not require additional pay.

Effect on Needs of Computer Science or Other Majors/Minors/Master's Students

This JBS would be very popular if done well and could be made available to the master's degree students. In the long run it would work well if Mitch Cherniack or Tim Hickey could teach the database component every summer and only in the summer. This would encourage students to enroll in the JBS to take this very popular course. It would be open to business majors as well if they take the prerequisites (CS11a, CS12b, CS21a).

Notes

The summer could also be taught as two 4-credit, 4-week lectures courses together with an 8-week experiential learning course (e.g. a CS210: Independent Study).