|
||||||||
Note: This course is a continuation of a course started in Winter 2009. Students who did not take the course in Winter 2009 are permitted to enroll, but ONLY with the permission of the instructor. These students may use one of the completed projects from Winter 2009 as a starting point by "forking" a new version (see http://en.wikipedia.org/wiki/Fork_(software_development) ), or may start from scratch and catch up. *** This course is a design and implementation competition in web application development. Participants will complete as teams or as individuals in developing a new version of the web application currently used by prospective CCS students to apply for admission. (Throughout the rest of this description, the word "team" will be used to refer to both multi-person teams and individuals competing as a "single person team".) The goal is for at least one team to develop an application of sufficient quality that it can replace the one currently found at this address: http://www.ccs.ucsb.edu/new_application/ (The part that starts _after_ you click "accept" at the bottom of the http://www.ccs.ucsb.edu/new_application/ page). Necessary background: ================== Enrollment is open to all students, not only CCS CS students. Students from other disciplines, and students from outside CCS are welcome to enroll and participate in the competition. However, prior programming experience _is_ a pre-requisite for this course. (For students without programming experience, CCS CS 140, Section 1---CCS Webapp Redesign----is an alternative course also offered in S09. See "Current Courses" on the CCS web site for details.) Before enrolling in this course and entering the competition, students should have completed either: * CS1A/1L in the College of Creative Studies, OR * CS20 in the College of Engineering, OR * other significant programming experience (with permission of the instructor) Webapp programming experience, per se, is NOT a pre-requisite. However, if you don't already have experience in a platform such as Ruby on Rails, CakePHP, or Django/Python, then the willingness to learn one of these platforms on your own----with guidance and assistance from the instructor, but not direct instruction or specific homework---is a pre-requisite. Contact Phill Conrad for more details (phillip.conrad@ccs.ucsb.edu). Competition Overview ================= The teams' submissions will be evaluated by CCS staff, prospective students, faculty, and professional webapp developers, based on ease-of-use, maintainability/deployability of code, and fit with CCS needs. To be eligible for the competition, participants should register for this course and participate in weekly code and product reviews, where their submissions will be evaluated. Teams will be expected to make incremental progress on their projects throughout the quarter. For example: By week 2, each team might be expected to deliver an application that simply allows a login/password to be created, and an email account to be verified. By week 3 it should be possible to create different kinds of accounts: for prospective students, as well as for CCS staff (e.g. Frank, Leslie, Chris), faculty reviewing applications, and system administrators (e.g. the CCS Webmaster). (Prospective students can create their own accounts, but the others can only be created by system administrator---other details may be specified later). By week 4, it should be possible for students to submit basic details about themselves through a web form, and for individuals with staff, faculty, or administrator accounts to see a basic list of students that have applied. In a similar fashion, each week, additional functionality will be added to what the web app should be capable of doing. At the product reviews, this code will be tested. Following the code and product reviews, each team will be informed whether it has met the standard for that week. Teams that fall behind may be allowed to continue in the competition and try to catch up, but any team that falls more than three weeks behind either the established pace or the current leader is subject to disqualification at the discretion of the instructor. (Teams may still earn units for work completed to that point.) Infrastructure ========== For budgetary/infrastructure reasons, platforms used in this course must be open source, free, and deployable on a server running Linux. Platforms used should also support automated build generation and unit testing. All code submitted for evaluation should be placed in a Subversion repository on foo.cs.ucsb.edu. To ensure consistency between the code submitted and the running product, the code tested by user evaluators will be compiled and deployed by the instructor on foo.cs.ucsb.edu based on what is in this repository. This ensures that the product can actually be deployed based on the source code and documentation submitted. Competition Standings, and Conclusion =============================== Each week, standings will be announced. Final standings for the quarter will be determined during finals week based on the submission from week 10. The competition will conclude at the end of the Spring Quarter. The final deployed application used in production may be one of the competition entries, an amalgam of the best features of one or more of the submissions, or none of the above---again depending on the suitability of the student submissions for eventual production use. However, if all or part of a team's application is deployed, that team's members will be given credit on the CCS website, and that team will be able to cite that as an accomplishment on their resume. Learning Goals ============ Students will "learn by doing" in this class about the following important aspects of application development: * assessing user needs * designing for ease of use (human interface design and testing) * unit and integration tests * development tools for revision control, issue tracking, build automation * programmer and user documentation Meeting time ========== The time listed above (Thursday 2:30-4:00pm) is the preferred time for the project teams to all meet for weekly code and issue review. If you are interested, but you can't come for part or all of this time, don't let that stop you from signing up! We are not limited to that time---and it is likely that one hour will not be sufficient for weekly review of all team submissions. Additional or alternative meeting times will be possible, and probably necessary. These will be determined based on the schedules of the individuals enrolled. Units are the least important part of this experience, however for the sake of completeness, here is how units will be determined: The course is nominally 2 units. However, students may earn many more or fewer based on the accomplishments of their project teams. Students who complete the entire competition will be awarded units based on the quality of their final submission---which will represent the cumulative effort from the quarter. Students who leave the competition---or are disqualified because of falling three or more weeks behind pace---may still receive units based on the last submission completed before leaving the competition. Students are encouraged to keep a log of the hours they put in on the project. While not required, the presence of such a log will make it easier for the instructor to justify extra units. Questions? ======== (Note: If you are interested, and this time does not work for you, contact the instructor). Contact Phill Conrad at phillip.conrad@ccs.ucsb.edu Instructor(s): Phillip Conrad Time(s): Thursday, 2:30 pm - 4:00 pm Place(s): Old Little Theater, Rm. 160B << Back |
||||||||
|
||||||||