Assignment 1. Grades, comments and statistics 


In general everyone did a good job on this assignment. Some general observations:

Do not abuse comments - they are used to make code readable not unreadable
Comments like the following, in addition to being ugly, state the obvious:

/********************************************************
  ********************************************************
  Function that takes two arguments and returns the greater common divisor
  **********************************************************
  **********************************************************
*/

My personal rules of thumb
1) For functions state what the functions does not how it does it
2) Inside functions comment the things that are not obvious from reading the code
3) Write thinking about other people reading your code

Comments like this are redundant and useles:
b = x + y         /* b is equal to the result of x added to y */


Follow the specifications exactly
Some people wrote programs that had interactive input and output,
others read from standard input and wrote to standard output and some
even wrote a wrapper script to "fake" file input/output using redirection. Please
try to follow as much as possible the specifications of the assignment.

Use functions
to structure your code. Some people just wrote essentially a big function that did
the whole thing. That is not good programming style.


The grading was done using three test cases. One point was taken
off for failing the 3rd test case which was:
1|8 1|8 + 1|8 + 1|8 + 1|8 + 1|8 + .....                     (with result 13|8).
In some Perl programs the output in this case was 1.625 | 1.
I am not sure why that happened but I took off one point because
many people had Perl programs that didn't have that problem. 
The people who had this problem should have explicitl stated
it in their REAMDE file.

If you would like to dispute your grade, you are welcome to do so
by sending me an email. I am a human and make errors so I will
try to be as fair as possible. However, if you do so there
is a chance that I will discover more mistakes and your grade might be
lowered.

Statistics 

Language Histogram

Perl
Java
C
C#
C++
PHP
Python
Scheme
39
25
2
1
1
1
1
1

Lines of Code (LOC)
These statistics should be taken with a grain of salt. For example, the people who wrote in C implemented
the stack from scratch whereas most people in the other languages used builtin dynamic data structures to
model the stack. Also I just counted lines without ignoring comments.


Perl
Java
C
C#
C++
PHP
Python
Scheme
min  LOC
71
78
563
132
113
326
152
87
max LOC
246
412
601
132
113
326
152
87

Grade Histogram

? *
0
1
2
3
4
5
#students
2
1
0
5
2
15
46
percentage
1
1
0
7
2
21
65

*
? I was unable to run your program based on the instructions you provided.
I will contact you via email to figure it out.


0024469         5       Perl
0024769         5       Perl
0026885         5       Scheme
0026978         5       Perl
0028205         5       Java
0032670         4       Perl
0033110         2       Java
0033112         5       Java
0033333         4       Perl
0034829         5       Java
0120104         4       Perl
0120294         5       Perl
0121300         5       Perl
0121469         5       Java
0121651         5       Perl
0122586         4       Perl
0122912         5       C
0123250         5       Perl
0123800         5       Perl
0124972         4       Java
0125983         4       Perl
0126202         5       Perl
0126320         5       Perl
0126435         5       Perl
0127334         4       Java
0127714         5       Perl
0128497         4       Perl
0129542         4       Perl
0129968         5       Java
0130074         ?       PHP
0130938         5       Perl
0130958         5       Java
0130986         2       Java
0132899         4       Java
0133803         2       Java
0133814         5       Java
0134861         4       Java
0135060         5       Perl
0135859         3       Java
0135902         5       Perl
0135914         5       Perl
0221092         5       Perl
0225708         5       Perl
0227108         3       Java
0227109         5       Perl
0227178         2       Perl
0227209         5       Perl
0228008         4       Java
0228076         5       Java
0229122         4       Java
0232381         5       Java
0232459         5       Java
0232622         ?       C#
0234748         5       Java
0235438         5       Perl
0236850         5       Perl
0237256         5       Perl
0237945         5       Perl
0324304         0       C++
0331484         4       Perl
0331486         4       Perl
0333736         5       Perl
9001835         5       Java
9012380         5       C
9713355         5       Java
9807004         5       Perl
9811314         5       Perl
9901736         5       Python
9902710         5       Perl
9904310         5       Java
9905590         2       Perl