Syllabus

W 12 - 12:50, T R 12:30 - 1:45, LH 202
[General] [Grading Criteria] [Academic Dishonesty]

Instructor: Dale Reed
Office: SEO 917
Phone: (312) 413-9478
email: reed @ uic.edu
On the Web: http://logos.cs.uic.edu/reed
Office Hours: See above web page
Prerequisites: CS 202 (was EECS 360)
Text:

Britton, Robert L. MIPS Assembly Language Programming, Prentice Hall, 2004, ISBN 0-13-142044-5. New: $35, Used: $25 at www.allbookstores.com

Mano & Kime, Logic and computer Design Fundamentals, 3rd Ed., Prentice Hall, ISBN 0-13-140539-X
Used price starts around $32 at www.allbookstores.com, up to $110 new.

TA:

Hareesh Nagarajan, hnagar2@ uic.edu
Office Location: 907 SEO, (312) 996-5940
W 2:00 - 3:30, Th 1:50 - 3:20

General

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.

Grading Criteria

Letter grades are assigned on a curve at the end of the semester. Current grades will be posted on the grades page.

Written Homework Assignments

10%
Programming Projects (4 - 6) 30%
Midterm #1
15%
Midterm #2
20%
Final Exam
25%
Total:
100%
 

 

Program Grading Criteria

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 your name and assignment number. For instance, when running your program this could look like:
     Author: Dale Reed
     Program: #1, Calculator
     CS 366, Spring 2005
30% 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 Program Header: Your program should have a program header with program name, your name, and date. It should also include in the header a brief description of what the program does.
10 Pseudocode description: Your program must include a pseudocode description of your algorithm in C, where the variable names correspond to the registers used. This pseudocode itself must be well-documented.
10 Block comments: Main sections of your program must have a documentation block describing what the block does.
10 Comments: Your program must have a comment for nearly every line, clearly indicating what it does.
5 Label names must be meaningful
5 Efficiency: Your program must do its work in a reasonably efficient manner
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 3 points of the TA's grade (out of 30), you get these 10 points. For every 3 points difference beyond that, you lose 1 point out of the 10 on your own score.
100 Total Points

As an example of commenting and program sections, see the "Sum of Integers" program given on page 20, towards the end of Ch. 2 of our text (Britton). This example is a good model excepting that it does not print out the programmers name, assignment, and date. See solutions to previous assignments for a model that includes these components.

 
#--------------------------------------------------------
#  Program #1 : SumOfIntegers.s              
#  Programmer: Robert Britton (modified from textbook)	
#  Course: CS 366
#  Last Modified: Sep. 12, 2001		
#--------------------------------------------------------
# Functional Description:  
#    Find the sum of the integers from 1 to N where
#    N is a value input from the keyboard.
#--------------------------------------------------------
# Algorithmic Description in Pseudocode:
#main:	cout << "\n Please input a value for N = "
#	cin >> v0;
#	if (v0 > 0) {
#		t0 = 0;
#		while (v0 > 0) do {
#			t0 = t0 + v0;
#			v0 = v0 - 1;
#		}// end while
#		cout << " The sum of the integers from 1 to N"
#	   	  << " is " << t0;
#		goto main;
#	}//end if
#	else {
#		cout << "\n *** Adios Amigo - Have a good day ***";
#	}		
#--------------------------------------------------------
# Register Usage: $t0 is used to accumulate the sum
#		$v0 the loop counter, counts down to zero
#--------------------------------------------------------
	.data
prompt:	.asciiz  "\n Please Input a value for N = "
result:	.asciiz  " The sum of the integers from 1 to N is "
bye:	.asciiz  "\n  **** Adios Amigo - Have a good day **** "

	.text
main:	li	 $v0, 4		# system call code for print_str
	la	 $a0, prompt	# load address of prompt into a0
	syscall			# print the prompt message
	li	 $v0, 5		# system call code for read_int
	syscall			# reads a value of N into v0
	blez	 $v0,  done	# if ( v0  < = 0 ) go to done
	li	 $t0, 0		# clear $t0 to zero	

loop:	add 	 $t0, $t0, $v0	# sum of integers in register $t0
	addi	 $v0, $v0, -1	# summing  in reverse order
	bnez	 $v0, loop	# branch to loop if $v0 is != zero
	li	 $v0, 4		# system call code for print_str
	la	 $a0, result	# load address of message into $a0
	syscall			# print the string
	li	 $v0, 1		# system call code for print_int
	move	 $a0, $t0		# a0 = $t0
	syscall			# prints the value  in register $a0
	b 	 main		# branch to main

done:	li	 $v0, 4		# system call code for print_str
	la	 $a0, bye		# load address of msg. into $a0
	syscall			# print the string

	li	 $v0, 10		# terminate program
	syscall    		# return control to  system

#Following line intentionally left blank (must have one at end of file)

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. Plan ahead, since no late programs are accepted.

 

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

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