Perl Homework 1
Create a Gradebook

Due: Tuesday, September 18, 11:59:59pm

HW1 FAQ now available

Create a program that will read student data from a file (supplied from the command line), organize and store it, and allow the user to manipulate the data in certain ways (via a simple menu interface).

The data file contains each student's NAME, RIN, and a list of GRADES, all separated by spaces. A sample file is available here.

i.e.

	Abe 1234 90 75 80
	Carl 2345 50 90
	Jay 34 80 90 60

Not every student will have every possible assignment listed. RIN numbers will be some arbitrary length.

The user commands you should implement are:


The grading scheme will be as follows:

*This must be a valid attempt at creating the entire program. A blank file with the shebang will not receive 50 points simply because it "compiles".

5 points are reserved for style points. This is for general proper coding style, including good use of indentation/white space, variable names that make sense, plentiful/witty comments, etc. Any reasonable and consistent style will be rewarded. Any style that hurts to look at will be penalized.

Perl itself can be a very hard to read and confusing language, some code is inherently compact and complex. If your code is very obtuse, but still properly formatted and commented, you won't lose any style points.

A maximum of 5 bonus points may be awarded for going "above and beyond" what the assignment calls for. In other words, if you add aditional functionality to your program that increases its usefulness, you may be rewarded with extra points. The bonus will only be awarded for a relevant additional contribution. In other words, printing the data out in a pretty format will not get you any bonus points.


The homework will be submitted by email. Email your final solution to both lallip@cs.rpi.edu and mcguij2@rpi.edu. Let the subject of your email be: "Perl Homework 1". Attach the plain text file, do not zip or tar it. The homework must work on an RCS machine. When you submit the assignment, be sure to include your name, RCS user ID, the machine you tested it on (use the 'hostname' command if you're logged into a remote RCS machine), a description of your "above and beyond" attempt (if any), and any additional comments you wish to make. If you need to resubmit your assignment, send another email to both addresses, with the subject "Perl Homework 1 RESUBMIT".

Reminder: Late homework passed in within 24 hours after due date lose 20% (Wednesday before midnight), after that it's a zero.