Programmming Projects


Pair Programming

All students are expected to work with a partner on the programming projects for this class. You should also work with a partner (preferably the same one) on the in-lab exercises for CMPS12L. To learn a about pair programming please read All I Really Need to Know about Pair Programming I Learned In Kindergarten.

Please email the name and email address of your partner to the teaching assitant, Jacob Telleen (jtelleen AT soe.ucsc.edu) no later than April 8th. Please make the subject of the email be "partner name". If we have not received your partner information by that time you will be assigned a partner.

At the same time that you turn in each programming project you also need to complete an online log, in the form of a WebCT quiz, that records how you spent your time on the project.

You should also read the pair progamming guidelines and policy for the class. This explains what is considered to be acceptable pair programming and what to do if you have problems with your partner.


Programming Assignments - A Cumulative Project

There are 5 programming projects that each build on the previous project. The project due dates are every two weeks with the first project due on April 23th. You must successfully complete all previous projects before you can submit any of the later projects. A project has been "successfully completed" when you have received 40 points or more of the 50 points available for the correctness portion of the grade (see details below). If you submit a program and receive less than 40 points on the correctness portion, then you will have to continue working on that project and resubmit it the next week. Although due dates are two weeks apart, project submissions will be "collected" once per week to accomodate late and resubmitted projects. You can submit at most one project each week.

A program will be penalized 5 points (from the 100 total) for each week, beyond the initial due date for that project, required to obtain the 40 point correctness level. For example, suppose a project is submitted on time at the initial due date but fails to obtain the 40 points needed for correctness, if the program is resubmitted within the next week, and scores 45 on correctness and 50 on style, it would be penalized 5 points and receive a total of 90 (45 + 50 - 5) towards the overall class grade.

The point of this grading scheme is to encourage students to master one set of concepts before moving on to the next. This may result in some working at a slower pace than others. Of course this slower pace will be reflected in a lower grade, but the student can still make progress and pass the course.


ChatBot

All programming assignments this quarter are directed toward creating a simple chat-bot. A chat-bot is a computer program (software robot) that attempts to mimick a real person in an online chat room. One of the earliest and most famous examples of conversational software robots is Eliza.

You will complete the project in 5 steps as detailed below.

  1. Assignment #1 - Due April 23 at 10pm - Conditional statements, ChatBot Version 1.
  2. Assignment #2 - Due April 30 at 10pm - Loops - ChatBot Goes On And On.
  3. Assignment #3 - Due May 14 at 10pm - Using Methods - Reading a Pattern into ChatBot.
  4. Assignment #4 - Due May 28 at 10pm - Arrays, A ChatBot With Many Patterns.
  5. Assignment #5 - Due June 11 at 10pm - Bringing ChatBot Online.

Grading of Individual Projects

You must follow the programming style guidelines listed here.

There are no "late" submissions meaning that programs not submitted by a weekly due date will not be accepted until the next due date (a week later).

Because of the resubmit/regrade policy, students are discouraged from submitting programs that they know will not receive the required 40 correctness points (except of course for the last submission of the quarter). In such situations, students should instead seek help from the instructor or TA (not from classmates other than a pair-programming partner).

Be advised that WebCT can sometimes get rather slow near a deadline, when many students are trying to submit. If you have a working program and are just "touching up the style" or doing some final testing, go ahead and submit it. You can always resubmit up to the deadline without any penalty, but if it gets too busy and you fail to submit in the last 5 minutes before a deadline, then you missed the deadline (like getting stuck in traffic - plan ahead and leave enough time).

Grading Breakdown

Programs will be graded both on corrrectness and style (see the class style guidelines). Every program starts out with 100 points. Points are deducted as follows. Correctness/Functionality (maximum deduction 50 points): See individual project descriptions for correctness point details.

Style (maximum deduction 50 points total, 10 points for any one category): Note that some of the following refer to language constructs you will be learning about during this course. If a style requirement mentions a language construct that you don't know about (e.g. "break") feel free to ignore it until it comes up in class. You will be responsible for following all that refer to topics covered prior to the due date of a particular assignment. If you aren't sure if an item will apply to a particular assignment, it will never hurt to ask. In general the items are listed in the order you can expect to have them apply.