338 Grader - Evan Markensohn

ECES 338 - Introduction to Operating Systems

Evan Markensohn - ECES 338 Grader, Spring 2001

Page Last Modified: 04/22/2001
Class Hours: TR 4:10 - 5:30
Office Hours: TR 2:45 - 3:45, W 3:15 - 4:15 in Olin Unix lab, Olin 403

My student 338 homepage is located at http://vorlon.cwru.edu/~erm6/338/338.2000.

Broken Websites

As Tekin announced in class, the following holds regarding broken websites. If your website is broken for assignment 6, there will be a 25 point deduction. If your website is broken for assignment 7, there will be a 50 point deduction. If your website is broken for assignment 8, you will recieve no credit for the assignment. I need your binaries to grade your assignment. This is why the deductions are so great.

How I will grade assignments 5 and up

I have always followed Tekin's grading policy. The difference between what I will do and what I was doing goes as follows. Before, I was starting at 100 and going down. This meant that I was being very lenient with the 20% that is up to me. Now, I will grade your assignment up to 80 (as specified by Tekin's grading policy), and grade the 20% (which is up to me) up from 80, as opposed having it included when going down from 100. Basically, this means that the grading issues listed below will a stronger impact on your assignment. Here is a list of helpful things I've noticed in the assignments:

  1. I must have all input and output files available on the web such that I can run your programs.
  2. I must have all input and output files in your handed in hardcopy.
  3. You must script the run of your sessions and turn it in as hardcopy and post it to the web.
  4. You must use relative paths in your programs such that I can run them
  5. Do not include old code in your assignments. I shouldn't see utility functions from assignment 1 in any other assignment, unless of course they are needed.
  6. Be sure to label in your output which process prints what.
  7. I will no longer regrade assignments with no output provided.
  8. You must wait() on all fork()ed children.
  9. Only use pclose() in pairs with popen()
  10. Everything handed in must correspond to a set of code, binaries, and output that are associated with the Unix lab.
  11. In regards to the previous point, I don't want to see Linux code and output, nor do I want to see code and output from any OS besides Solaris in the Olin unix lab.
  12. Besure to read the grading policy below to understand how to gain all of my 20%.

Assignment Backgrounds:

  1. CGI: As described in the assignment, CGI stands for Common Gateway Interface. The is a means for creating a web application through a browser interface. It works by passing data to the CGI binary, and have the output of the CGI binary go to your browser. The CGI binary receives its data through environment variables. The developer must then parse through the environment variables, perform something using them, and then output return data. This assignment gives you an inside look of both what the web server must accomplish to spawn the CGI binary, and a look at how to write a CGI binary. As you can tell, writing CGI binaries is a pain because all of the string parsing. As always, students are taught the hard way, and then the easy way. Luckily, many generous souls have written CGI libraries which parse all that data for you, and let you work with it easily, much like a well written class(C++). (Modified: 02/01/2000)

Grading Policy:

Please read Tekin's grading policy first! His grading policy overrules any such policy I choose to take. My policy mostly applies to the "remaining 20% of the grade."

In regard to the "remaining 20% of the grade," ( most of which ) as noted on Tekin's grading policy, I will be focusing on readability, comments, instructions on the environment needed to run the assignment, output, error-handling, and course procedure.

  1. Readability: It shouldn't be necessary for me to run your code. Your code should written well enough that I can follow a hard copy. Such code should implement good use of functions, consistent and tasteful use of indentation( we will not require you to adhere to a specific style of indentation, but use good judgement ), and descriptive naming of identifiers. (Modified: 02/01/2000)
     
  2. Comments: Comments are good! They allow me to easily read your code and show me that you knew what you were doing. Comments may include ( but not all are required ) comments at the top of each file to describe what it is for, comments for functions, and comments on specific lines. Comments go hand in hand with readability. Use good judgement. (Modified: 02/01/2000)
     
  3. Intructions on Environment: I shouldn't have to think all too hard to run your program! Please include instructions on how to run your program if it is not just executing a binary. Things I may need to know include, but are not limited to, files created, command line arguments, and other user input. Of course, we are all conforming to the Solaris machines in the Olin 403 Unix lab, so environment specific instructions should not be necessary. (Modified: 02/01/2000)
     
  4. Output: This is an easy one. It should be easy to read. This includes meaningful headers and lables, nice formatting, and anything else to make it look good. (Modified: 02/01/2000)
     
  5. Error-handling: Please check the return values of your function calls for errors! Make sure to print out something meaningful on error. This will make developing easier for you because you will know exactly what goes wrong. This makes grading easier for me. For instance, a function call may attempt to allocate system resources which are exhausted, and we won't know what is wrong. (Modified: 02/01/2000)
     
  6. Course Procedure: Please follow all course procedures! It will make life a lot easier for the both of us. If you are told to email something, email something. If you are told to use certain functions or generate specific output, do it. Don't forget your name, id, and recitation! (Modified: 02/01/2000)
I will issue warnings for issues which I believe may warrant deductions in the grade of your assignment. If the same warnings are issued for different assignments, they will become deductions of an amount to be determined on an individual basis. Deductions for specific warnings will increase with the reoccurences of such warnings. Each deduction and warning from your grade will have an accompanied explanation. (Modified: 02/05/2000)

Contact Information:

338 Links:


If you notice anything wrong with this web page, please email me.