A student writes:

     Professor Patt, 
     I have two questions. First of all, I was just curious about 
     how the programming assignments are actually graded.  Both my programs 
     work and are able to carry out the specified task, but they are not 
     too efficient.  I've never programmed before, so just being able to 
     write successful programs was a moral victory for me.  

Me, too! ...since I have been insisting that previous programming experience is not a prerequisite for 306.

     So, I was wondering if the grading was based only on if it works or 
     if there were other factors involved (like length of program and 
     codes used)?

First, if the program works, you will get full credit. However, "works" means "really works," that is it works for all cases, not just a few simple easy to think of cases. For example, in the first programming assignment, did it work if there no 1s in location x3100?

If it doesn't work, then we try to see if you made some careless mistake or critical mistake, or what. ...and give partial credit accordingly.

In 306, we are not interested in the length of your program or the codes used.

     My second question has to do with efficiency.  Like I said before, 
     my programs work, but they aren't that efficient.  Will this come 
     back to haunt me in the end, or is being able to write a concise 
     program something that comes with time?  

Facility with programming certainly does come with time. Moreover, in subsequent courses, you are going to learn various aspects of good style, things to look for, etc. so I think you should not be worried about this right now. EE 306 is all about establishing a foundation in how the computer works, the digital logic that implements it, the ISA that the programmer or compiler has to interface to, how programs are executed, and how to develop a simple algorithm and then a program to do a particular task.

     Sorry to take up your time with this.  Like I said before, I've 
     never programmed before, so I have no idea at what level I should be 
     at right now.

If you can write programs to do the job required by the problem, and do it correctly, you are at the right level right now.

     After being able to actually do the programming 
     assignments, I did feel a little better about the class in general 
     (please correct me if my basses for judgment on this is incorrect).

     Thank you again for your time!
     << name withheld to protect the programming newbie >>
     (If you send this to the class, please be gentle with my fake name)

Is that gentle enough?

Good luck with the rest of the course.

Yale Patt