#21: 15/5/17 InLab Programming Exam #2 Graded 
I have run the automatic batch selfcheck tests for InLab Exam #2 and the
grades are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
You can find your solutions, my solution, and the bsc.txt file
I used to compute grades for this assignment in the EEE dropbox for this
class (see the name ile2studentsubmissions).
If you scored better on InLab Exam #2 than on InLab Exam #1, your score for
this exam will be highlighted in yellow, and the sum of these two scores
(column W in the grades spreadsheet) will be 2 * (your score for
InLab Exam #2): many students scored better on InLab #2: 61% scored
the same or higher; 39% scored lower.
The class average was about 85% and the median was about 93%. The skew between these statistics shows that although the majority of students did very well, there were some students who did very poorly, dragging down the average but not the median. At the extremes, 44% of the students scored 100% or more (because of the extra credit points; all methods passed all batch selfcheck tests). The approximate distribution of grades on this InLab exam is 56% As, 16% Bs, 8% Cs, 10% Ds, and 10% Fs (last Fall the distribution was 38% As, 15% Bs, 15% Cs, 11% Ds, and 22% Fs). Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades

#20: 6/5/17 Quiz #7 Graded 
The TAs have graded the paper submissions for Quiz #7.
The grades are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 80% and the median was 84%, meaning that some
students correctly solved most problems, but less than half (31%) of the class
correctly solved all the problems (or had minor deductions).
Overall there were 31% As, 30% Bs, 14% Cs, and 25% Ds and Fs.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order) and Column B contains an X if we believe the student submitted work on time. Row 1 in Columns DI shows how many points the problems were worth; Column C shows a 2 point deduction for students submitting later or not using a single sheet of paper. Rows 3 and beyond show the number of points earned by each student. Columns JL show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 25). The TAs graded the following problems. Problem 12: Nicholas Problem 3 : Shivani Problem 4 : Vikki Pang (an ICS46 Reader; see your TA first for this problem) Problem 5 : TeYu Problem 6 : HarhaThese papers will be returned in lab on Thursday. Students should talk to the appropriate TA first, if they do not understand why they received the marks they did. The best time to talk with any TA about grades is during one of their Labs. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). This assignment was designed to provide you with an introduction to solving problems related to analyzing algorithms and code. All these topics may be tested again on the Final exam. As with all assignments, you should examine my solutions.

#19: 5/31/17 Program #4 Graded 
I have run the automatic batch selfcheck tests for Program #4 and the grades
are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 99% and the median was 102%, meaning that most
students correctly solved most problems, and over half (93%) of the class
correctly solved all the problems (or had minor deductions).
Note that this problem had an extra credit part, as well as extra credit for
an early submission.
Overall there were 93% As, 2% Bs, 3% Cs, and 3% Ds and Fs.
About 26% of the students submitted early, and these early submitters scored
better (average 103%) than students submitting on the due day
(average 97%); I am assuming that some students ran out of time before they
finished all the problems, and will plan to get started earlier on later
program.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order); Column B contains an X if we believe the student submitted work on time (for pairs, only the submitting student will show an X, not their partner); Column C shows the extra credit points for early submissions (students submitting a few minutes late show 2; students submitting more than a few minutes late were not graded). Row 2 shows the worth (in number of points) for each problem. Row 3 shows the number of tests performed for each problem: all were batchself check tests. Rows 45 shows further information about the tests performed in each column. Rows 6 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 1 of 4 tests on a 4 point problem, he/she would receive 3/4*4 = 3 points. Column P shows each student's cumulative score, for all the tests in the single problem in this assignment. Columns QS show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 50). Note that these columns are filled in both for submitters and their partners (these are the only columns filled in for partners): a partner should see his/her submitter's line for details. To get the extra credit point for processing string annotations (Column O), your code must pass all 6 tests. Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades
This assignment was designed to illustrate the mutual recursion used for checking annotations (parameter and return) for functions, by overloading the __call__ method in a class, creating a function decorator. As with all assignments, you should examine my solutions. 
#18: 11/27/17 Quiz #6 Graded 
I have run the automatic batch selfcheck tests for Quiz #6 and the TAs have
graded the paper submissions.
The grades are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 82% and the median was 88%, meaning that most
students correctly solved most problems, and almost half (49%) of the class
correctly solved all the problems (or had minor deductions).
Overall, there were 49% As, 23% Bs, 8% Cs, and 20% Ds and Fs.
About 28% of the students submitted early (to Checkmate), and these early
submitters scored better (average of 92%) than students submitting on
the due day (average of 78%); I am assuming that some students ran out of
time before they finished all the problems, and will plan to get started
earlier on later quizzes.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order) and Column B contains an X if we believe the student submitted work. Row 1 for Columns CH shows how many points the problems were worth. Row 2 shows the number of tests performed for each problem. Rows 4 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 5 of 20 tests on a 4 point problem, he/she would receive 15/20*4 = 3 points. Columns IM show the cumulative score for each Problem. Columns NP show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 25). TAs graded the paper submissions for their Labs. The TAs will return the written quizzes in their lab on Tuesday. The written problems were graded as follows:
Students should talk to their TA, if they do not understand why they received the marks they did. The best time to talk with any TA about grades is during one of their Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades

#17: 11/20/17 Quiz #5 Graded 
I have run the automatic batch selfcheck tests for Quiz #5 and the TAs have
checked most of the solutions for appropriateness: really using appropriate
recursion to solve each problem.
The grades are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 94% and the median was 100%, meaning that most
students correctly solved most problems, and over half (88%) of the class
correctly solved all the problems (or had minor deductions).
Overall there were 88% As, 6% Bs, 1% Cs, and 4% Ds and Fs.
About 45% of the students submitted early, and these early submitters scored
a bit better (average of 97%) than students submitting on the
due day (average of 91%); I am assuming that some students ran out of time
before they finished all the problems, and will plan to get started earlier
on later quizzes.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order) and Column B contains an X if we believe the student submitted work on time. Row 1 for Columns CL shows how many points the problems were worth. Note that problems 15 each had 4 points for correctness and 1 point for appropriateness. Row 2 shows the number of tests performed for each problem: appropriateness is binary: appropriate (blank) or not appropriate (1). Rows 4 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 5 of 20 tests on a 4 point problem, he/she would receive 15/20*4 = 3 points. Columns PU show the cumulative score for each Problem. Columns VX show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 25). The TAs for each lab graded the appropriateness of all functions for all students. Appropriateness was either right or wrong. Appropriate recursive code contains
Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did; if they dispute any of the appropriateness marks they, should talk to TA Razavi, graded that problem. The best time to talk with any TA about grades is during one of their Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades

#16: 11/19/17 Program #3 Graded 
I have run the automatic batch selfcheck tests for Program #3 and the grades
are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
I used a different bsc test file for
grading: one that defined a pnamedtuple('Quad1', 'x y z f'), having a
different number of fields with different names not in alphabetical order.
The class average was about 96% and the median was 102%, meaning that most
students correctly solved most problems, and over half (90%) of the class
correctly solved all the problems (or had minor deductions).
Note that this problem had an extra credit part, as well as the standard extra
credit for an early submission.
Overall there were 90% As, 2% Bs, 2% Cs, and 7% Ds and Fs.
About 27% of the students submitted early, and these early submitters scored
better (average of 103%) than students submitting on the due day (average
of 93%); I am assuming that some students ran out of time before they
finished all the problems, and will plan to get started earlier on later
program.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order); Column B contains an X if we believe the student submitted work on time (for pairs, only the submitting student will show an X, not their partner); Column C shows the extra credit points for early submissions (students submitting a few minutes late show 2; students submitting more than a few minutes late were not graded). Row 2 shows the number of points each group of batchself checks is worth; row 3 shows the number of tests performed for each problem: all were batchself check tests. Rows 45 shows further information about the tests performed in each column. Rows 6 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 1 of 4 tests on a 4 point problem, he/she would receive 3/4*4 = 3 points. Column L shows each student's cumulative score, for all the tests in the single problem in this assignment. Columns MO show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 50). Note that these columns are filled in both for submitters and their partners (these are the only columns filled in for partners): a partner should see his/her submitter's line for details. Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades
This assignment was designed to illustrate the richness of ways to solve programming problems: writing a program that automatically writes a class, given the required information to specify it (class name and fields). It also provided an opportunity to improve your stringprocessing abilities. As with all assignments, you should examine my solution. 
#15: 10/12/17 Midterm Graded 
The TAs and I have graded and recorded the scores for the midterm exam.
The TAs will distribute the graded midterms in the common lab this week.
If you do not pick up your exam then, you will have to come to my office hours
to retrieve it (and I would prefer not to have hundreds of exams
stockpiled in my office).
I have not yet received exams from students who took it at DSC.
See the
assignment grades and
Grades(zipped .xlsm file) files.
The class average was about 65% and the median was 66% (last Fall they were 66% and 68%). Because the average was below 75%, about 12 normalization points (10%) will be added when computing the average of all graded instruments on the spreadsheet. The grades recorded in the spreadsheet (both in Columns R and S) are the actual exam grades (without normalization points; see cell R8, highlighted in yellow, for the number of normalization points that will boost your score). After normalizing the scores on the midterm, overall there were 22% As, 23% Bs, 18% Cs, 19% Ds, and 18% Fs (last Fall there were 21% As, 24% Bs, 24% Cs, 13% Ds, and 18% Fs; that is a pretty close match). I will show some more detailed information about the exam in lecture on Monday. Now is a good time to look at course grades as well, as we have graded nearly half of the total number of testing instruments (450 of 1,000 points). Now is the first time that recorded grades are truly meaningful, because they include testing instruments in all the major categories: quizzes, programs, inlab exams, and written exams. The approximate distribution of course grades (for those students who submitted a midterm exam) is 38% As, 26% Bs, 18% Cs, and 18% Ds and Fs: these numbers are better than my original prediction of of 25% in each of these four categories (e.g., we have 64% As and Bs instead of 50% As and Bs). The different problems, with the indicated averages, were graded by the following staff.
If you have any issues with how any exam problem was graded, talk to the staff member who graded it, and they can discuss the rubric with you and resolve any issues. But first, please examine my solution and understand the differences between it and your answer. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). As with the InLab Exams, if student perform better on the Final Exam (since it is cumulative), I will replace their Midterm Exam score with their Final Exam score. Finally, the normalized average for the 12noon labs was 74%, 2pm labs was 75%, and 4pm labs was 75%: all about the same. 
#14: 11/4/17 Quiz #4 Graded 
I have run the automatic batch selfcheck tests for Quiz #4 and the grades are
now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 77% and the median was 92%, meaning that most
students correctly solved most problems, and a bit over half (54%) of the
class correctly solved all the problems (or had minor deductions).
Overall there were 54% As, 17% Bs, 5% Cs, and 18% Ds and Fs.
About 9% of the students submitted early, and these early submitters scored
much better (93% average) than students submitting on the due day (84%); I am
assuming that some students ran out of time before they finished all the
problems, and will plan to get started earlier on later quizzes.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order) and Column B contains an X if we believe the student submitted work on time. Row 1 for Columns CH shows how many points the problems were worth. Row 2 shows the number of tests performed for each problem. Row 3 shows the part of the problems in more detail. Rows 4 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 5 of 20 tests on a 4 point problem, he/she would receive 15/20*4 = 3 points. Columns IJ show the cumulative score for each Problem. Columns KM show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 25). Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades

#13: 11/2/17 Program #2 Graded 
I have run the automatic batch selfcheck tests for Program #2 and the grades
are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 95% and the median was 100%, meaning that most
students correctly solved most problems, and over half (86%) of the class
correctly solved all the problems (or had minor deductions).
Overall there were 86% As, 3% Bs, 4% Cs, and 7% Ds and Fs.
About 393% of the students submitted early, and these early submitters scored
much better (101% average) than students submitting on the due day (92%
average); I am assuming that some students ran out of time before they
finished all the problems, and will plan to get started earlier on later
programs.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order); Column B contains an X if we believe the student submitted work on time (for pairs, only the submitting student will show an X, not their partner); Column C shows the extra credit points for early submissions (students submitting a few minutes late show 2; students submitting more than a few minutes late were not graded). Row 2 for Columns DZ shows how many points the problems were worth. Row 3 shows the number of tests performed for each problem: all were batchself check tests. Row 4 shows further information about the tests performed in each column. Rows 5 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 1 of 4 tests on a 4 point problem, he/she would receive 3/4*4 = 3 points. Columns AFAG show each student's cumulative score, for all the tests in each of the two problems in this assignment. Columns AHAJ show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 50). Note that these columns are filled in both for submitters and their partners (these are the only columns filled in for partners): a partner should see his/her submitter's line for details. Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades
This assignment was designed to provide you with a good grounding in the use of the classes and practice in overloading operators. Quiz #4 covers decorators for iterators using generators. All these topics will be tested again on the Midterm and InLab Exam #2. As with all assignments, you should examine my solutions. 
#12: 4/30/17 Quiz #3 Graded 
I have run the automatic batch selfcheck tests for Quiz #3 and the grades are
now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 88% and the median was 100%, meaning that most
students correctly solved most problems, and over half (68%) of the class
correctly solved all the problems (or had minor deductions).
Overall there were 68% As, 16% Bs, 3% Cs, and 13% Ds and Fs.
About 45% of the students submitted early, and these early submitters scored
better (96% average) than students submitting on the due day (83%
average); I am assuming that some students ran out of time before they
finished all the problems, and will plan to get started earlier on later quizzes.
There were about half a dozen students whose code timedout when I graded it; I let the grading program run everyone's code for 10 seconds. If you code timedout, talk to your TA about replacing the body of any offending code by just pass, so that it won't timeout, allowing all the other code to be graded. In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order) and Column B contains an X if we believe the student submitted work on time. Row 1 for Columns CM shows how many points the problems were worth. Row 2 shows the number of tests performed for each problem. Rows 4 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 5 of 20 tests on a 4 point problem, he/she would receive 15/20*4 = 3 points. Columns OP show the cumulative score for each Problem. Columns QS show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 25). Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades
In the Date class, some students wrote operators that returned strings instead of Date objects; I added a few bsc.txt tests to fail in such cases. 
#11: 10/27/17 InLab Programming Exam #1 Graded 
I have run the automatic batch selfcheck tests for InLab Exam #1 and the
grades are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
You can find your solutions (by your Hashed ID), my solutions, and the actual bsc.txt files I used to compute grades for this assignment, in the EEE dropbox for this class (see the name pattis_ilestudentsolutions.zip); when you test your code with the bsc.txt, you will have to replace its script by importing driver and calling driver.driver(). See the script in my solutions for this code. I believe the InLab Exams are the best indicator, of all testing instruments, of your ability to program: read specifications and transform them into working code (writing code and debugging what you wrote). As I'll say in class, Tolstoy is often quoted (from Anna Karenina) as writing, "Happy families are all alike; every unhappy family is unhappy in its own way."My adaptation of this quote is "Highscoring students are all alike (knowing how to program well); every lowscoring student did poorly in his/her own way: e.g., lack of programming or debugging ability, freezing on the exam, misreading or misunderstanding some problem statements, spending too much time debugging one problem, being ill when taking the exam, etc."So, I understand that there are many possible reasons that students don't do well on InLab Exams. I computed the grades a bit more liberally than 20% per problem (all students received the same or higher scores): all 5 problems correct: 100%; 4 problems correct: 85%; 3 problems correct: 70%; 2 problems correct: 55%; 1 problem correct: 35%; no problems correct: 0%. Of course, correctly solving the sixth problem was worth 1% extra. The result was the class average was about 81% and the median was about 85%. At the extremes, 43% of the students submitted code in which all five functions passed all batch selfcheck tests; 19% scored 55% or below (only two functions passed most tests; in fact, 4% got no functions to work on any tests). The approximate distribution of grades on this InLab exam is 43% As, 30% Bs, 8% Cs, 0% Ds, and 19% Fs. FYI, the averages for the different times that the exam was given (early morning through late afternoon) were: 12noon 76%, 2pm 77%, and 4pm 75%. About as many students got 100 points as 101. Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades
Finally, if students score a higher percentage on their InLab Exam #2 (which involves material from the first, as well as Classes, Operator Overloading, and writing Iterators), I will score their InLab Exam #1 higher (in the past I have often made the first exam score equal to the second; thereby erasing the first score; other times I have averaged the two). Therefore, even a terrible grade on this exam can have a minimal effect on your final grade. 
#10: 10/22/17 Quiz #2 Graded 
I have run the automatic batch selfcheck tests for Quiz #2 and the grades are
now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 88% and the median was 100%, meaning that most
students correctly solved most problems; over half (71%) of the class
correctly solved all the problems (or had minor deductions).
Overall there were 71% As, 3% Bs, 10% Cs, and 168% Ds and Fs.
FYI, last Fall quarter there were
63% As, 4% Bs, 5% Cs, and 28% Ds and Fs.
About 11% of the students submitted early, and these early submitters scored
much better (96% average) than students submitting on the due day (87%
average);
I am assuming that some students ran out of time before they finished all the
problems, and will plan to get started earlier on later quizzes.
In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order) and Column B contains an X if we believe the student submitted work on time. Row 1 for Columns CK shows how many points the problems were worth. Row 2 shows the number of tests performed for each problem. Rows 4 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 5 of 20 tests on a 4 point problem, he/she would receive (205)/20*4 = 15/20*4 = 3 points. Columns LN show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 25). Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades

#9: 10/22/17 Program #1 Graded 
I have run the automatic batch selfcheck tests for Program #1 and the grades
are now recorded.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
Note that the assignment grades spreadsheet has 3 tabs: one for
parts 12; one for parts 35; one for the combined scores from each.
Parts 12 (worth 24 points) do not include any credit for early dropoff;
parts 35 (worth 26 points) include extra credit points for an early dropoff.
The class average was about 85% and the median was 98%, meaning that most students correctly solved most problems, and over half (63%) of the class correctly solved all the problems (or had minor deductions). Overall there were 63% As, 9% Bs, 11% Cs, and 17% Ds and Fs. FYI, last Fall quarter, there were 59% As, 14% Bs, 8% Cs, and 19% Ds and Fs. About 19% of the students submitted early, and these early submitters scored much better (106% average) than students submitting on the due day (86% average). I am assuming that some students ran out of time before they finished all the problems, and will plan to get started earlier on later programs. In the assignment spreadsheet, Column A contains the Hashed IDs of all students (in sorted order); Column B contains an X if we believe the student submitted work on time (for pairs, only the submitting student will show an X, not their partner); Column C shows the extra credit points for early submissions (we are counting these points only for the submissions of parts 35). Row 2 for Columns DY shows how many points the problems were worth. Row 3 shows the number of tests performed for each problem: all were batchself check tests. Rows 45 show further information about the tests performed in each column. Rows 6 and beyond show the number of failed tests for each submission (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student failed 1 of 4 tests on a 5 point problem, he/she would receive (41)/4*5 = 3/4*5 = 3.75 points. Columns ZAD show each student's cumulative score, for all the tests in each of the problems in this assignment. Columns AEAG show each student's cumulative Score, the score Rounded to an integer (what integer is entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (parts 12 24; parts 35 26). Note that these columns are filled in both for submitters and their partners (these are the only columns filled in for partners): a partner should refer to his/her submitter's line for details. Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). IMPORTANT Information about Student Grades
This assignment was designed to provide you with a good grounding in the use of the standard data structures in Python: list, tuple, set, and dict (and the defaultdict variant). It also included practice iterating overs such structures, writing comprehensions, use of the sorted function and lambda, and other useful/important Python functions. Unlike Quiz #1, the problems were bigger, requiring more interesting algorithms to solve, but still all expressible with a small number of Python language features. All these topics will be tested again on the Midterm and InLab Exam #1. As with all assignments, you should examine my solutions. 
#8: 10/16/17 Quiz #1 Graded 
I have run the automatic batch selfcheck tests for Quiz #1 (checking
correctness) and the TAs have examined problem 1 and the code (checking
requirements: e.g., statements/solution) and the grades are now recorded
and posted.
See the
assignment grades and
Grades(zipped .xlsm file) files, whose
details are discussed below, in Announcement #7.
The class average was about 77% and the median was 88%, meaning that most
students correctly solved most problems (43%), and 20% of the class correctly
solved all the problems.
Overall there were 43% As, 17% Bs, 13% Cs, and 27% Ds and Fs for those students
who submitted work; most of the students who scored a 0submitted code
that we could not run (see the paragraphs below for possible regrading by
your TA).
FYI, the previous Fall quarter the grades were
57% As, 11 Bs, 10% Cs, and 22% Ds and Fs for those students who submitted
work.
About 44% of the students submitted early (although there are no extra credit points on quizzes for doing so), and these early submitters scored much better than students submitting on the due day (83% compared to 73%): a difference of one full grade (students submitting 2 days early had an average of 92%). I am assuming that some students ran out of time before they finished all the problems, and will plan to get started earlier on later quizzes. In the assignment grades spreadsheet, Column A contains the ID Hashed of all students (in sorted order) and Column B contains an X if we believe the student submitted work on time. Column C shows deductions for
Rows 4 and beyond show the number of failed tests for each student (a blank indicates no failed tests: equivalent to 0 failed tests). To compute the number of points you scored for a problem/in a column, compute the percentage of successful tests and multiply it by the number of points the problem is worth. So for example, if a student missed 2 of 6 tests on a 5 point problem, he/she would receive (62)/6 * 5 = 3.3 (actually, 3.333...) points. Columns PR show each student's cumulative Score, the score Rounded to an integer (that integer is the score entered in the Grades spreadsheet) and Percent, based on the number of points the assginment is worth (here 25). TAs graded problem 1 and the function requirements for all students in their labs. The TAS will distribute these pages in labs this week only; after that, the papers will be archived in my office. The rubric for this problem was as follows: each part was worth .5 pt.
Requirements points for the functions were deducted only for too many statements. Many students created extra/temporary lists:
Students should talk to the TA for their Lab first, if they do not understand why they received the marks they did or dispute any of these marks. The best time to talk with your TA about grades is during one of your Labs, when both student and TA are physically present to examine the submission and the grade, possibly running the solution on a computer they can share. Students should examine their graded work immediately and get any regrade issues settled as soon as possible (within a week of when the grade is assigned). Show up to lab and settle these issues immediately. IMPORTANT Information about Student Grades

#7: 10/9/17 Programming Assignment #0 Graded 
The TAs have graded (and I have recorded the grades for) Programming
Assignment #0.
As with most assignments, there are two files that you should download, unzip,
and examine to understand your performance on this assignment, and your
cumulative performance in this class.
Both of these files are sorted by Hashed IDs (which are computed from the 8digit UCI IDs of all the students in the class). To determine your Hashed ID, see Message #6 below.
IMPORTANT: Scores wil revert to 0, if I do not receive a signed Academic Integrity Contract from you (we are tabulating them this week). Please come by during my office hours as soon as possible if you need to fix this problem. This assignment was designed to test you on whether you have mastered the basics of using Python in Eclipse, the Eclipse Debugger perspective, and batchselfcheck files in the driver.py module (in courselib). It was also designed to see if you could follow instructions and ask questions: more on that below. The class average was 28 (or about 94%) and the median was 29 (or about 97%). For those students submtting work, there were 82% As, 10% Bs, 2% Cs, and 6% Ds and Fs. The assignment was not meant to be hard, but it was not trivial either, and there were many opportunities to lose points (and learn from your mistakes). Your work in the Eclipse/Python Integrated Developement Environment (IDE) throughout the quarter will leverage off the understanding and skills that you acquired in this assignment. Let me talk about what will probably be the most contentious single point of the 1,000 points that this course is worth (thus .1% of the grade): this point was lost by about 14% of the students submitting work. I took off 1 point if you corrected the misspelling Inteprxter (and two points if you didn't have either spelling: in this second case you obvious failed to meet the specifications because you did not print what was required). When some students hear about this point deduction, their heads explode and they cannot believe that I am taking off a point for correcting what you thought was my mistake. But... I am trying to foster an atmosphere where nothing is taken for granted in the instructions that I give: if anything seems confusing or plain wrong, I should be questioned about it preferably in public, on a MessageBoard forum so others can learn if there really is a problem, and if so the correction.
Also, some students did not carefully read the instructions in the Debugger Perspective document for the quiz part, which required them to change a line in the craps script before running it with the debugger to gather the required information. With this change in your program, we can check your answers for correctness; without it, we cannot check you answers for correctness. Finally, about 52% of the students submitted the program 2 or more days early; about 14 submitted the program 1 day early. So, about 66% of the students submitted this assignment early. Keep up the good work: you can earn 12 extra points if you turn in every Programming Assignment 2 or more days early (upping your grade by 1.2%): for some students, this boost will be enough to raise their final grade. Over the course of a two week assignment, it will be to everyone's benefit students and staff alike if students try to finish and submit early. IMPORTANT If you believe that we graded your work correct, please examine the files mentioned above first, then contact the TA who graded it, to discuss the issues with him/her. Such a discussion can have only positive outcomes: either he/she will agree with you that you deserve more credit (and, we do want you to receive all the credit that you are due), or you will come to understand the question, program, or solution better and realize why you lost points. This is certainly a winwin situation. Please read my solution and the assignment grades spreadsheet carefully before contacting your TA; ensure that you understand what is the correct answer and what points were deducted from your assignment and why. If there is a problem, your TA will email me a revised summary about your program, and cc a copy to you. I will update the grades spreadsheet as appropriate (it might take a bit of time for all these events to cumulate in a changed grade) and email you. If you feel there is still an unresolved problem after talking to your TA, please contact me (but always contact your TA first). Also, because of the size of this class, if you have a grading issue, we will consider it only if you bring it to your TAs attention within a week of when I return the materials. This policy is in place to avoid gradegrubbing late in the quarter. 
#6: 9/28/17 Hashed ID 
When we grade assignments, we often distribute/update various spreadsheets with the relevant grading information. These spreadsheets are indexed and sorted by each student's Hashed ID. The course webpage has a Find ID Hashed (grade key) link, right below the Grades(zipped .xlsm file) link, which you can use to retrieve your Hashed ID (or click Find ID Hashed). Use the result it shows when examining any spreadsheets of grades; I suggest that you find this number once, and write it down for future reference. 
#5: 9/28/17 Important: Submitting Code without Losing Points 
ICS33 uses software that automatically grades most quizzes and programming
assignments; it uses (selfchecking) testing cases that we supply with the
testing instruments that we distribute.
You will learn about these tools in Programming Assignment #0.
Here are a few hints to ensure that you will understand the grading process
better and minimize your point loss.
After an assignment is graded automatically, the Announcement for it will contain a link to an Excel file that you can examine for detailed information about how your score was computed. If this information does not match your expectations from running the assignment's selfchecks while developing your code, contact your TA. It is best to meet with your TA during lab hours: he/she can talk to you about your code and run it while you are present, to help resolve the difference. But, if we have to modify your code to grade it properly (see the typical source of problems above), then we will deduct points. I hope that by students carefully writing/submitting their code, these grading anomalies and point deductions will be minimized during the quarter. 
#4: 9/28/17 Communication 
There are many ways to communicate with me (and other staff and students).
Here is a quick overview.
Note that for questions that are not specific to you questions that are relevant to the entire class it is best to ask them on the appropriate Message Board Forum.

#3: 9/28/17 First Lab 
I expect students to attend all their scheduiled labs (unless they have
already finished the current programming assignment).
Programming Assignment #0 is assigned before the first lab of the quarter; so
if you have not already finished it, I expect you to attend your first lab
and work on it there.
Generally, you can get invaluable help from the TAs and Tutors for understanding Python and debugging your code: don't expect them to debug your code for you, but instead expect them to help you learn how to debug your own code in general, using your current problem/code as a concrete example. 
#2: 9/28/17 Install Course Software 
All students with computers should download and install the course Software:
Java (to run Eclipse), Python, and Eclipse.
All three products are available for free on the internet.
Students can view instructions for downloading and installing this software
by following the
Course Software
link.
If you are using a Mac there are special instructions for you
(e.g., Java is already installed)
If you have installed a version of Python prior to 3.6, you should install the current version of Python 3.6 (and the most uptodate version of Eclipse as well). Although students can work on their programming assignments on the computers in the UCI labs, I expect students with computers to download and install this software by the end of the first week of the quarter. If you are having difficulty with this task, the TAs and Lab Tutors will help you during the first Lab meeting (or beyond, if necessary: bring your computer to the lab). If you have successfully downloaded and installed this software, please help other students do so too. Finally, you can also use the class MessageBoard Forums to ask questions about installing this software and help other students install it. I strongly suggest that you BACKUP YOUR WORK daily: computers can malfunction, break, or be stolen. 
#1: 9/28/17 First Message 
Welcome to ICS33.
I am going to post and archive important messages about the class in this
announcements web page: each entry will be numbered, dated, and labeled.
The entries will appear in reverse chronological order.
Whenever you follow the link to this page, scan its top for new announcements;
scan downward for older announcements.
This message will always appear at the bottom of this file.
I will never remove a message from this page
I have already posted some important messages before the start of the quarter. Expect a few new messages to be posted here each week, mostly regarding returned and graded work. Check this Announcements page, along with your email and the MessageBoard Forums, daily. 