IT 101 (Spring '08)
[Schedule] [Examples] [Programs] [Class Notes] [Reference] [Syllabus] [Lab & TA] [Tests] [Grades]

Course meets: Mon, Wed, 4 - 4:50, BH 304

[General Information] [Course Grading] [Programs Grading] [Academic Dishonesty]

General Information

Instructor: Reed.
Office: SEO 917
Phone: (312) 413-9478
email: reed @ uic.edu
On the Web: http://www.cs.uic.edu/~reed
Office Hours: See above web page
Prerequisites: C or better in MATH 121 or consent of instructor
Text:
TextBook Cover
Learning to Program with Alice
by Wanda Dann, Steve Cooper and Randy Pausch
ISBN: 0-1318-7289-3,    Prentice Hall, 2006
Visit www.aliceprogramming.net or the Publisher's Website for more information.

You will also need to purchase a license to use CodeLab ($25 I think), which is required to do the online exercises.

Make sure that you are on the class email list. I will be sending class email to your UIC email, so if you read your mail somewhere else be sure to forward your email. Please send email to me requesting to be added to the list if you do not receive an email from me by the beginning of the second week of class. I'm assuming students check email every day. All critical announcements, changes to assignments, etc. will be distributed via email.

You will be given the opportunity to take a make-up 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. 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.

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.

Be sure to check the course web page for further information, handouts, programming assignment descriptions, and hints.

Course Grading Criteria

Programs (5) 35%
Quizzes   5%
Labs   5%
CodeLab 10%
Midterm # 1 10%
Midterm # 2 15%
Final 20%
Total: 100%

Letter grades are assigned on a curve at the end of the semester.

Quizzes will take the form of brief pop-quizzes and will be given during lab, most likely during the first few minutes, and will be closely based on the text's self-test exercises from the textbook assigned readings. No makeup quizzes will be given, but the lowest quiz grade will be dropped. Lab exercises will be assigned during lab and must be completed during that lab session. Labs are graded on a 3 point scale (0: didn't do it, 1: some effort, 2: average, 3: outstanding). The lowest Lab grade will be dropped. CodeLab exercises are available on the web and must be completed before the posted deadlines.

See the tests description for more information on test format.

Program Grading Criteria

Each program will be graded out of 100 points as follows. Note that some of the criteria do not apply to early programs (e.g. functional decomposition) since we will not have learned those topics yet.

55% Runs correctly: conforms to assignment description for input and output, follows instructions given. Make sure to test your program thoroughly.
45% Programming style, further broken down as follows:
10% 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.
10% Functional Decomposition. A segment of code that appears more than once should be extracted to form a separate method (in Java). Methods should be no longer than around 50 lines. This may not apply to early programs that don't use methods/functions.
10% 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.This may not apply to early programs that don't use methods/functions.
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
100 Total Points

Each program should include a descriptive header at the top of the first page which must have at least as much information as the following:

/** --------------------------------------------- 
 * This program implements a calculator that does 
 * addition, subtraction, multiplication, and division.
 *
 * Class: CS 102, Fall 2005
 * Lab: Billie Joe Armstrong, Wed. 6:00 AM
 * System: BlueJ 1.3, jsdk 1.5, Windows XP
 *
 * @author  Dale Reed
 * @version August 28, 2006
 * ----------------------------------------------
 */
Additionally your program must print out your name, assignment number and name, TA name and lab information. For instance, if your first program assignment was called "Average the Numbers," then when you run your program the first thing that should appear on the screen is something like:
   Author: Dale Reed
   Program: #1, Average the Numbers
   TA: Englebert Humberdink, T 4-5 

Experience has shown that students who develop their programs on their home PC's and then port them over sometimes encounter mysterious problems. Plan ahead, since there is a substantial penalty for late submissions.

Academic Dishonesty

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 work.


[CS Dept] [UIC] [Prof. Reed]