# Announcements

## ICS-33: Intermediate Programming

### In reverse-chronological order

 #21: 6/4/18 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 (32%) of the class correctly solved all the problems (or had minor deductions). Overall there were 32% As, 29% Bs, 18% Cs, and 21% 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 D-I shows how many points the problems were worth; Column C shows a 2 point deduction for students submitting late and a 5 point deduction for not using a single sheet of paper (I originally said we would not even grade such submissions; students who did not submit one, two-sided sheet should retrieve their quizzes from me during my office hours, not their TA in Lab). Rows 3 and beyond show the number of points earned by each student. Columns J-L 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. ``` Seyyed : 1 James : 2 Richard : 3 Tianhang : 4 Radu : 5 Juan : 6``` These papers will be returned in lab on Tuesday and 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.

 #7: 4/9/18 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 8-digit UCI IDs of all the students in the class). To determine your Hashed ID, see Message #6 below. The first file to examine stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: what marks were given and why. It is sorted by Hashed IDs (column A). Column B contains an X if the student submitted work (later, if you work in pairs, the X will appear only on the Submitter's cell, not in the Partner's cell, although both will receive the same grade). Column C (for Programming Assignments only) shows extra credit points for early submission: 1 point for submitting 24 hours early; 2 points for submitting 48 hours (or more) early; a blank here means no extra credit/early submission points. Columns D and beyond show marks for the various parts of the assignment. The last three columns show your Score, the score Rounded to an integer (see the discussion below) and your Percent, based on the number of points the assginment is worth. If a cell contains a comment (those cells with a red-triangle in their upper-right hand corner) you can hover over the cell and you will see the comment that explains why the marks were given: sometimes you must right-click the comment and then enlarge its bounding box to see the full comment. Students should talk to the TA who graded a question, if they do not understand why they received the marks they did or to dispute any of these marks. For Programming Assignment #0, the grading was as follows ```Tiehang : Part A Seyyed : Part B Juan : Part C James : Part D``` 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. The same goes for talking to other TAs. All TAs can download your work from Checkmate. The second file to examine stores the cumulative Grades(zipped .xlsm file) -also available as a link on course web- unzip it, and then click the tab labeled Spring 2018. This tab records all the grades for all the testing instruments that you submit during the quarter. It is also sorted by Hashed IDs (column A). You will notice that in this spreadsheet all recorded grades are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate into a 28 recorded on the second one. We will use this same "round-up" process for recording all grades during the quarter. On this spreadsheet, columns B-T contain your scores: for the Quizzes (B-I), Programming Assignments (J-O), In-Lab Programming Exams (P-Q), and Written Exams (R and T: I'll discuss S after the Midterm). Columns U-X contain the sums for all these testing instruments. Column Y contains special extra credit points (for example, submitting the faculty/course evaluation at the end of the quarter; more on this then. In fact, because this quareter virtually all students submitted correctly and on time in Checkmate, anyone submitting an assignment received one extra credit point, which is listed here). Column Z-AD contains your cumulative points (Z), your average (AA), your rank in class (AB: 1 means highest-scoring student), and your current grade (AC is the letter, AD is +/- if appropriate). You should check this spreadsheet after every assignment is graded to ensure that your score was recorded correctly. Again, students should talk to the TA for their Lab first, if this spreadsheet contains any errors. 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 batch-self-check 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 29 (or about 98%) and the median was 30 (or about 100%). For those students submtting work, there were 91% As, 6% Bs, 1% Cs, and 2% 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) I took off 1 point if you corrected the misspelling Inteprxter (and took off 2 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. Some students did ask me outside of class if they should correct the misspelling, and I told them "no"; some students asked me by email if they should correct the misspelling, and I told them "no"; one student asked on a MessageBoard forum whether they should have corrected the misspelling, and I posted a reply saying that they shouldn't, for all students in the class to see. It is critical for programmers to be sure they know the specifications of the problem they are being asked to solve, otherwise they will solve, test, debug document, etc. the problem incorrectly, and another cycle of development will be needed to fix the misconceptions. The overview lecture included a graph that showed that the later in development a problem is found, the harder/more expensive it is to fix. So if we can find problems at the time we are reading the specification of the problem to solve, that can save us a lot of work/money later. The bottom line is that you are responsible for reading the instructions carefully and reporting any confusion so that I can clear it up (best reported on the MessageBoard forum for Programming Assignments). Of course, you can freely talk to anyone about the problem specifications, just not the code that you write for your solutions. If you make any assumptions (like the node names in Programming Assignment #1 always being one letter long -that is not part of the specification), they might come back later to haunt you (gradewise). When working with a partner, you'll have two pairs of eyes reading the specifications. I am willing to deduct this one painful point at the start of the quarter, from many students, to get across this perspective, and save everyone grading grief during the quarter. I hope you submitted early so the extra credit erased this point loss. I will not intentionally do anything like this on subsequent assignments; but I can certainly be unclear about the specifications (which have lots of details) or even contradict myself from one spot to the next. It it up to you to clear up the confusion, and best to do it on the MessageBoard forums, so I can clear up the problem once for all students. We deducted 1 point on the demo.py program if your # Submitter line did not perfectly match what was required, including using correct spacing, punctuation, lower-/upper-case letters, etc. Many students lost a point here; ensure that you know what you did wrong so you won't lose points in subsequent submissions. 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 54% of the students submitted the program 2 or more days early; about 19% submitted the program 1 day early. So, about 73% 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 win-win 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 an avanlance of work because of "grade-grubbing" late in the quarter.