|
CS 340: Software Design (Spring '05) |
| Instructor: | Dale Reed |
| Office: | SEO 917 |
| Phone: | (312) 413-9478 |
| email: | reed @ uic.edu |
| On the Web: | http://logos.eecs.uic.edu/reed |
| Office Hours: | See above web page |
| Prerequisites: | CS 202 |
| Texts: |
Required:
|
| TA: |
Talha Muhammad, mtalha2@ uic.edu |
Make sure that you are on the class email list. Please send me email requesting to be added to the list if you do not receive email from me by the beginning of the second week of class. Your class email listing must be your UIC email. Forward your mail from there if you generally read your mail somewhere else. I'm assuming students check email every day. All critical announcements, changes to assignments, etc. will be distributed via email. Be sure to check the course web page for further information, handouts, assignment descriptions, and hints.
You will be given the opportunity to take a make-up quiz or exam only in cases of medical or personal emergencies, which must be verified. If such an emergency occurs, call me or leave a note (or phone message) with the department secretary as soon as possible. If you will be out of town when an exam is scheduled, I must be told in advance and may require you to take the exam early. Otherwise, if you miss an exam you will receive 0 points.
You are responsible for all information (handouts, announcements, notes, etc.) covered during class. Note that if you register late you are responsible for any material and assignments missed. You should ask fellow classmates for missed information, not the instructor or the T.A.
No incompletes will be given for poor performance in the course. An incomplete can only be given if there are extenuating circumstances and the student has at least a 'C' average in the course. No extra work or extra credit will be given.
If you feel that you deserve more points than you have been given on a quiz, assignment, or test, you must see the instructor about this within one week of the time the work in question is first returned to the class. After this deadline, no claims will be considered, justifiable or not.
As a rule-of-thumb, I assume that for every hour spent in class each week, you will spend at least 2 hours a week outside of class working on readings and assignments.
Letter grades are assigned on a curve at the end of the semester. Current grades will be posted on the grades page.
|
Homework Assignments (?) |
5%
|
| Programming Projects (4 - 6) | 35% |
| Midterm #1 |
15%
|
| Midterm #2 |
20%
|
| Final Exam |
25%
|
| Total: |
100%
|
If no homework sets are assigned, that 5% will be added to the total amount the Programming Projects are worth. Extra credit points may be given on some programming assignments. Extra credit points may be given for good citizenship for those who demonstrate consistent helpfulness in the course online forum (e.g. Blackboard).
- Programs are due by 12:00 noon on the day due. No late programs are accepted. Turning in a program consists of turning in your code using the UNIX turnin program. The time stamp from turnin will be used to determine the submission time. Time stamps on diskettes or your home computer files are invalid.
- Partial credit will be given only on programs that do substantially run according to program requirements (i.e. not just "Hello World" or simple input and output). No partial credit will be given for documentation, structure, or effort if your program does not run substantially correctly.
- On the day due you must turn in to me a print-out of your program.
Each program will be graded out of 100 points as follows.
60% Runs correctly: conforms to assignment description for input and output, follows instructions given. Make sure to test your program thoroughly.
(10 points) When running, your program must print out or otherwise include (in the case of a GUI program) your name and assignment number. For instance, when running your program this could look like:
Author: Dale Reed
Program: #1, Calculator
CS 340, Spring 200530% Programming style, consisting of the following items. Note they don't add up to 30, but a maximum of 30 points can be deducted for all of them:
5 Title page short header: The front page of your program must have a header with your name, course, TA, data, system, and a short description of the program, such as:
/** ---------------------------------------------------------
* This program implements a calculator that does addition subtraction,
* multiplication, and division.
*
* Class: CS 340, Spring 2005
* System: NetBeans IDE, jsdk 1.4.2, Windows XP
*
* @author Dale Reed
* @version January 16, 2004
*/10 Title page(s) complete description: Following the above short header, you should give a detailed (1 - 2 paragraph) description of what this program does. This should be followed by an intuitive description of how you implement your solution, including a description of principal data structures and modules or sections of code. Any extra credit work should be explicitly documented. If this is not present in your code you lose 25 points. Status: Elements of the assignment that do not work should be well documented. If some assigned element of your program does not work and you fail to document this, you will lose double the points for this than you would have otherwise. 5 Meaningful Identifier Names: Identifier names should indicate their purpose. Names should be words separated using capitalization, such as gradesSum. Short loops of ~ 5 lines can use loop counter variables such as i or j. 10 Comments. Every function must have a short description stating the purpose of the function, what it receives, and what it returns. Comments should be easily identifiable. I should be able to understand your program by reading only the comments. Also include a header at the top of your program (see example below) that must include lab day and TA name. 5 Decomposition: A segment of code that appears more than once should be extracted to form a separate method (in Java) or function (in C). Methods/Functions should be no longer than around 50 lines. Objects are used appropriately. 5 Appropriate data and control structures: Global variables should be avoided and used only when necessary. Method/Function parameters should be used instead. Appropriate looping and decision structures used. 5 Code Layout: Different nested levels should have different indentation, where statements at the same level should have the same indentation. Indent at least 3 spaces. Use either spaces or tabs consistently. 10% Peer review: After each assignment is turned in, you will be assigned one of your classmate's assignments to review for programming style, which is described above. Your grade of your classmate's assignment will be compared to the TA's. If you are within 4 points of the TA's grade (out of 30), you get these 10 points. For every point difference beyond that, you lose 1 point out of the 10 on your own score, for a maximum of 10. 100 Total Points Do not modify your program after it has been turned in. In case of a turnin problem, the last modification date of your original program can still be verified. If you want to change it, make a copy first.
Experience has shown that students who develop their programs on PC's and then port them over sometimes encounter mysterious problems. Plan ahead, since no late programs are accepted.
Any student caught cheating on an exam or program will automatically fail the course and may be referred to the department chair and/or dean.
When writing programs, you may consult with me or the TA at any stage of your program development. It helps if you bring a current print-out. You may seek help about the system or the editor from anyone at any time.
To avoid cheating via collaboration, do not show any other classmates your code. If a classmate consults you for help after attempting to run his or her program, you may assist in determining why his or her code doesn't work, but refrain from suggesting specific new code. Do not lead your classmates into temptation: guard your print-outs. We intend to use an automatic cheating-verification program called MOSS that is capable of detecting partial logical similarities. Don't even take the risk.
You may not get help of any kind from anyone else for the midterm and final exams. These exams must be exclusively your own