Personal discipline is required to succeed in a class of this size. Therefore, there are a number of rules for this class that must be followed.
It is absolutely imperative that you keep informed about class activities. Following are the rules.
You are required to read the Announcements page on the class web daily (excluding weekends and holidays, although you might find it useful to read it then, too, when important events loom). Announcements important for the class in general will be posted there. You will be held responsible for any information included there.
You are required to read your e-mail daily (excluding holidays and weekends, although you should check it then when possible as well). We will use e-mail when we need to get hold of you personally. Remember, the e-mail address we use for sending you mail is your computer science e-mail address on esus. If you haven't already done so, you should forward your esus e-mail to the e-mail address you normally use.
You are to read the newsgroups msu.cs.general and msu.cs.advising daily. These newsgroups provide you with news of importance to the computer science department. For example, if you are planning to graduate this year you will find information on the procedures you must follow and dates that you must be aware of on these newsgroups.
Assignment due dates will be strictly enforced. It is better to turn in an assignment for partial credit than to turn it in late for no credit. In a class this size it is imperative that we enforce due dates strictly in order to keep the class running smoothly.
All written assignments and programs must be turned in from printed output unless otherwise stated. The printing must be dark and clear, and format (margins, etc.), grammar, and spelling must be correct. The title of the assignment, your group number, the due date of the assignment, and your team names must appear in the upper left corner of each assignment in that order.
You will be required to work in teams of three. Team projects will be a fact of life in your careers after the university. Your team must be registered at the beginning of the semester, and you must stick with this team throughout, except with the express consent of the instructors.
Attendance in the laboratories is mandatory.
You will be required to keep an individual, private (not team) journal of your activities. The journal will consist of the following components in the following order. For each section include the listed section heading in your report.
Cover Sheet: A cover sheet that has the following information centered, in this order, spaced nicely, and with good use of font size and boldface:
the title "CS 450 Journal"
your name
your e-mail address
the date
your programming team number
the names of each partner
the programming language used
the level attempted
Team Dynamics Summary: This page of the report is to provide in this order:
The title, "Team Dynamics Summary" centered at the top
the phrase "Group Dynamics: " followed by a whole number between 1 and 10 (1 = poor and 10 = excellent) giving your impression of the overall teamwork and group dynamics of your team
one concise paragraph describing how well the team has worked together up to this point
Notice that these items may change over time.
Time Sheet: An Excel spreadsheet will be available on the resources page for keeping track of your time. You must use it. Note that there are two quantities to keep track of on the time sheet:
Hours worked. You are to give an estimate of the number of hours you have spent on the project for each week listed.
Percentage of effort. Here you are to estimate how much each team member contributed to the project each week as a percent (e.g. 33%). Notice that this does not relate directly to the number of hours worked but is instead an estimate of how much of the project's completion is due to each team member.
Weekly Journal Entries: The following journal entries are to be listed by week, e.g., Feb 1-8.
A summary of the work done each week. You only need to give a summary by week, not by day.
Coming week team assignments: Team member assignments for the coming week are to be listed in each team member's journal. (If you are asked to turn a journal in during lab for a particular week, you will not be required to have the coming week's team assignments in the journal, as you may not yet have had enough information to make such assignments).
Weekly problems: A description of team problems, if you are having any (remember, your journals will be kept confidential).
You will be called upon to turn this journal in occasionally. The journals will be examined by the instructors to see how projects are progressing. They will not be returned to you. They will be graded only for adherence to the format outlined here, neatness, style, and completeness. They will also be used in determining grade differences among group members if there is a clear pattern of some members contributing substantially more than others. Be sure to use a quality word processor to generate this report.
Teams must use standard project development tools, such as cvs and make, in managing their projects. You will be asked to turn in your cvs logs on a regular basis.
You must do your own work as a team. You may not share software across teams. Also, there may be software components floating around from last year. In no case may you refer to projects from prior years. Plagiarism will result in your failing the course.
Your compiler must be written in C++, or Java.
Projects will be graded against the highest standards of programming style, including modularity, readability, documentation, proper use of objects, and so forth.
You may do your program development on any platform, but it must eventually run on esus for testing purposes. Thus, you can check out parts of the project with cvs, develop those parts on your own PC, and check the results back in with cvs. All project tests will be done on esus.
Pre- and co-requisites will be assumed. We will refer often to information you have learned in CS 160, 210, 221, 222, 223, 324, 330, 350, 351, and 355 without spending any time teaching this material again. Information from all of these courses will play a key role in the study of compilers.
Your scores will be posted on the course Web as your assignments are scored. You have one week to contest a score and have it changed after it is posted. After that, the score posted will be your official scores with no more opportunity for it to be changed. In a class this size, we can't afford to wait until finals week to resolve scores that were posted much earlier.