INSTRUCTIONS FOR GRADER

	PLEASE READ THIS and constantly refer to it.

	The most important thing about grading
		is to be CONSISTENT.

	Have a system of assigning points.  Make an initial
		judgement, but you can refine your system as
		your experience with the assignment grows.
		Give yourself a small amount of discretion
		(but no more than 15 percent).
		
	Give partial credits.  If a feature gets 4 pts,
		you might want to give a student 2 pts
		if he/she got it half-correct, etc.
		On the other hand, do not go to 1/2 points.

	Feel free to give feedback to students (this may
		take a lot of effort, so use your judgement).
		E.g., if you really like a solution, write
		"Good", "Nice", or even be more specific.
		You can note this down in the grade sheet.

	Give me feedback:
		Please keep a note book and jot down
		information about various points about
		the hw, and/or about individual solutions.
		We can discuss them.

		I am interested to know the names
		of really weak students as well as
		really good students. 

	HOW TO RECORD GRADE:
		I prefer to do this electronically.
		For the first hw, you need to enter all the
		student names into a file.

		I will give you a file with the correct
		format (since I use a program to process the
		grade file).

	CHEATING: sorry that we need to discuss this.
		Not that you need to deliberately look out
		for this, but when you get a sense of
		deja vu (didn't I see that earlier?), then
		you might want to check.  Make a note
		of the two names and discuss this with me.


3. HOW TO GRADE HW1:

	The basics of this hw1 are contained in chapter 4.
	But I also jumped slightly ahead and told them
	about how to use based addressing (using register BX).

	The following points are already assigned
	(please read hw1 for more details):

	title:			2pts
	greeting message:	2pts
	program printout+name+ID: 2pts
	2 sample runs:		2pts
	diskette + executable
		+ label on diskette
		+ hw1.asm
		+ myecho.exe	2pts
	envelope		2pts
	Use of DUP+EQU		4pts 

			(NOTE: they must use DUP+EQU wisely.
			e.g. one student did this:
				msg 	EQU 'hello!'
				greeting DB msg
			which is kind of silly.  Take off 1 point.

	This is a total of 16 points.
	You have about 14 points left to assign:
		8pts, if their program runs exactly as required.
			Partial credits:
			--if it assembles without error, 2pts
			--if it can echo the input correctly, 2pts
			--if it can reverse the input correctly, 2pts
			--discretion, 2pts
		2pts, if they use base addressing [bx] properly
		2pts, for reasonable comments
		2pts, for your discretion (use them consistently)

	REMARKS:
	They have not yet learned jumps, so they need to
	read 16 input characters (function 1, int 21h).
	A bit painful, admittedly.  But they will appreciate loops
	later.

	WHAT IF THEY USE ADVANCED INSTRUCTIONS?
		There are basically two classes of advanced
		instructions that I know they use:
	  (a) They are allowed to use loops and conditional jumps
		but do not assign extra credit for this.
	  (b) A few students use string processing instructions
		(requiring the use of the DI, SI registers).
		I do not like this as they defeat the purpose
		of the exercise.  I am very tempted to deduct
		points for this, but I did not announce this, so
		let us not do it.
	  However, if they use these advance
		instructions badly (in a stupid
		way, and get into bugs, then deduct points).