Announcements

ICS-31: Introduction to Programming


#17: 6/17/13
In-Lab Exam #2
I have graded and recorded the grades for In-Lab Exam #2 (recall that I cancelled In-Lab Exam #1) The class average was about 68% (or about 68%); the median was about 72 (or about 72%). The scores were very skewed, with many students (41%) scoring As and many students (34%) scoring Fs after normalization (and many fewer scoring grades in-between). I'm sure combining both in-lab exams into one (covering 4 different parts of the course) contributed to the low scores. I will take this issue under advisement when I compute final grades.

#16: 6/10/13
Program #6
The TAs have graded (and I have recorded the grades for) Program #6. The class average was about 39 (or about 87%); the median was 43 (or about 96%). There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.

  • The first stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: check my solutions on EEE; reachable was worth 25 points and instant runoff voting was worth 20 points. Columns are blank (correct), P (partially correct), or X (incorrect). This file is is sorted by the last 5 digits in your student ID. If you do not see your student ID (look carefully) please contact me by email.

  • The second file to examine is the grades spreadsheet that is available from the index on the course web: it records all the grades for all the testing instruments that I assign over the quarter. It is sorted likewise. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate to a 28 on the second one. We will use this same process for recording all grades during the quarter. If you do not see your student ID (look carefully) please contact me by email.

Generally most students finished well. Again, these were complicated programs with intricate control structures, and now requiring the use of functions and data types (here dictionaries and sets).

IMPORTANT If you believe that we recorded one or more answers incorrectly, please email your TA (see the fact sheet; also cc a copy to me) and tell him what you think the differences are. The TA for your lab is responsible for grading all the programs in your lab. Please read the comments in the assignment grades spreadsheet carefully before contacting your TA and ensure you understand the correct answers. He will then re-examine issue, possibly asking you for more information if there is still confusion, or talking to you during the lab meeting. If there is a difference, he 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). If you feel there is still a problem after talking to the TA, please contact me (but always contact the TA first).


#15: 6/6/13
Quiz #8
The TAs have graded (and I have recorded the grades for) Quiz #8. The class average was about 20 (or about 80%); the median was 25 (or about 100%)! Look at your returned work carefully; if your score was below 20 (many were) you might want to review this quiz with me or a TA. Material similar to this will be on the final written exam.

After the TAs return your graded work in lab on Thursday, please download the Grades(zipped .xlsm file) from the course web and ensure that I have computed and entered your grade correctly (I'll be entering thousands of grades for students in my course this quarter, so even if I'm 99% accurate, I'm likely to record some incorrect grades. Note that all grades are recorded as integral values: I always round up (e.g., an exam score of 22.5 is recorded as 23).

If you do not pick up your returned work in lecture the TAs will continue to bring old quizzes to lab on Thursdays, along with newly graded quizzes. You should pick it your graded work, to get the benefit of the feedback written on the quiz.

Remember to read my solutions too (and ask questions about them if you don't undertand my answers or why they are correct).


#14: 6/3/13
Program #5
The TAs have graded (and I have recorded the grades for) Program #5. The class average was about 37 (or about 83%); the median was 42 (or about 93%). There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.

  • The first stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: check my solutions on EEE; miscfunclib was worth 20 points and tennis was worth 25 points. Columns are blank (correct), P (partially correct), or X (incorrect). This file is is sorted by the last 5 digits in your student ID. If you do not see your student ID (look carefully) please contact me by email.

  • The second file to examine is the grades spreadsheet that is available from the index on the course web: it records all the grades for all the testing instruments that I assign over the quarter. It is sorted likewise. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate to a 28 on the second one. We will use this same process for recording all grades during the quarter. If you do not see your student ID (look carefully) please contact me by email.

Generally most students are still doing well, although the complexity of the programs is increasing (but hopefully so are your programming skills). These were complicated programs with intricate control structures, and now requiring the use of functions and data types (here lists). The next assignment adds dictionaries and sets into the mix, which allows for processing data in much more complicated ways, still revolvling around functions. Hopefully your experience with on kind of data-type will help you better (and more quickly) understand others.

IMPORTANT If you believe that we recorded one or more answers incorrectly, please email your TA (see the fact sheet; also cc a copy to me) and tell him what you think the differences are. The TA for your lab is responsible for grading all the programs in your lab. Please read the comments in the assignment grades spreadsheet carefully before contacting your TA and ensure you understand the correct answers. He will then re-examine issue, possibly asking you for more information if there is still confusion, or talking to you during the lab meeting. If there is a difference, he 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). If you feel there is still a problem after talking to the TA, please contact me (but always contact the TA first).


#13: 5/28/13
Program #4
The TAs have graded (and I have recorded the grades for) Program #4. The class average was about 40 (or about 89%); the median was 43 (or about 96%). There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.

  • The first stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: check my solutions on EEE; miscfunclib was worth 20 points and tennis was worth 25 points. Columns are blank (correct), P (partially correct), or X (incorrect). This file is is sorted by the last 5 digits in your student ID. If you do not see your student ID (look carefully) please contact me by email.

  • The second file to examine is the grades spreadsheet that is available from the index on the course web: it records all the grades for all the testing instruments that I assign over the quarter. It is sorted likewise. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate to a 28 on the second one. We will use this same process for recording all grades during the quarter. If you do not see your student ID (look carefully) please contact me by email.

Generally most students are still doing well, although the complexity of the programs is increasing (but hopefully so are your programming skills). These were complicated programs with intricate control structures, and now requiring the use of functions. The next assignment adds lists into the mix, which allows for processing data in much more complicated ways, still revolvling around functions.

IMPORTANT If you believe that we recorded one or more answers incorrectly, please email your TA (see the fact sheet; also cc a copy to me) and tell him what you think the differences are. The TA for your lab is responsible for grading all the programs in your lab. Please read the comments in the assignment grades spreadsheet carefully before contacting your TA and ensure you understand the correct answers. He will then re-examine issue, possibly asking you for more information if there is still confusion, or talking to you during the lab meeting. If there is a difference, he 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). If you feel there is still a problem after talking to the TA, please contact me (but always contact the TA first).


#12: 5/23/13
Quiz #6
The TAs have graded (and I have recorded the grades for) Quiz #6. The class average was about 18 (or about 73%); the median was 21 (or about 84%). Look at your returned work carefully; if your score was below 20 (many were) you might want to review this quiz with me or a TA. Material similar to this will be on the final written exam.

After the TAs return your graded work in lab on Thursday, please download the Grades(zipped .xlsm file) from the course web and ensure that I have computed and entered your grade correctly (I'll be entering thousands of grades for students in my course this quarter, so even if I'm 99% accurate, I'm likely to record some incorrect grades. Note that all grades are recorded as integral values: I always round up (e.g., an exam score of 22.5 is recorded as 23).

If you do not pick up your returned work in lecture the TAs will continue to bring old quizzes to lab on Thursdays, along with newly graded quizzes. You should pick it your graded work, to get the benefit of the feedback written on the quiz.

Remember to read my solutions too (and ask questions about them if you don't undertand my answers or why they are correct).


#11: 5/22/13
Midterm
The TAs have graded (and I have recorded the grades for) the midterm exam The class average was about 70% and the median was 69%. The grades recorded in the spreadsheet are the actual exam grades. Because the average was below 75%, about 5 normalization points are used in computing the average of all graded instruments. Yan graded problems 1, 4, and 7; Xiangxin graded 2, 3, 5, and 6. David graded problems 8, 9 and 10.

The approximate distribution of grades on the midterm, after normalization, is 20% As, 19% Bs, 18% Cs, 28% Ds, and 15% Fs. The lab averages were Lab 1 69 (quiz average 73), Lab 2 70 (quiz average 74), Lab 3 70 (quiz average 70),and Lab 4 71 (quiz average 77).

Now is a good time to look at course grades as well, as you have now taken about half of the total number of testing instruments: so this is the first time that recorded grades are meaningful. The approximate distribution of course grades (for those student who submitted a midterm exam) is is 24% As, 39% Bs, 22% Cs, and 15% Ds and Fs, which is close to my speculation of 25% in each of these categories.

After I return your graded work in lecture on Wednesday, please download the Grades(zipped .xlsm file) from the course web and ensure that I have computed and entered your grade correctly (I'll be entering thousands of grades for students in my course this quarter, so even if I'm 99% accurate, I'm likely to record some incorrect grades. Note that all grades are recorded as integral values: I always round up.

If you do not pick up your returned work in lecture the TAs will continue to bring old quizzes and exams to lab on Thursdays, along with newly graded quizzes. You should pick it your graded work, to get the benefit of the feedback written on the quiz.

Remember to read my solutions too (and ask questions about them if you don't undertand my answers or why they are correct).


#10: 5/8/13
Quiz #5
The TAs have graded (and I have recorded the grades for) Quiz #5. The class average was about 19 (or about 76%); the median was 20 (or about 80%). Look at your returned work carefully; if your score was below 20 (many were) you might want to review this quiz with me or a TA. Material similar to this will be on the first written exam.

After the TAs return your graded work in lab on Thursday, please download the Grades(zipped .xlsm file) from the course web and ensure that I have computed and entered your grade correctly (I'll be entering thousands of grades for students in my course this quarter, so even if I'm 99% accurate, I'm likely to record some incorrect grades. Note that all grades are recorded as integral values: I always round up (e.g., an exam score of 22.5 is recorded as 23).

If you do not pick up your returned work in lecture the TAs will continue to bring old quizzes to lab on Thursdays, along with newly graded quizzes. You should pick it your graded work, to get the benefit of the feedback written on the quiz.

Remember to read my solutions too (and ask questions about them if you don't undertand my answers or why they are correct).


#9: 5/6/13
Program #3
The TAs have graded (and I have recorded the grades for) Program #3. The class average was about 41 (or about 91%); the median was 43 (or about 96%). There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.

  • The first stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: check my solutions on EEE; each of the 7 questions was worth 2 points. This file is is sorted by the last 5 digits in your student ID. If you do not see your student ID (look carefully) please contact me by email.

  • The second file to examine is the grades spreadsheet that is available from the index on the course web: it records all the grades for all the testing instruments that I assign over the quarter. It is sorted likewise. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate to a 28 on the second one. We will use this same process for recording all grades during the quarter. If you do not see your student ID (look carefully) please contact me by email.

Generally most students still doing well. These were complicated programs with intricate control structures. The next assignment will push your use of these control structures even farther, as well as putting these control structures inside functions.

IMPORTANT If you believe that we recorded one or more answers incorrectly, please email your TA (see the fact sheet; also cc a copy to me) and tell him what you think the differences are. The TA for your lab is responsible for grading all the programs in your lab. Please read the comments in the assignment grades spreadsheet carefully before contacting your TA and ensure you understand the correct answers. He will then re-examine issue, possibly asking you for more information if there is still confusion, or talking to you during the lab meeting. If there is a difference, he 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). If you feel there is still a problem after talking to the TA, please contact me (but always contact the TA first).


#8: 5/2/13
Quiz #4
The TAs have graded (and I have recorded the grades for) Quiz #4. The class average was about 20 (or about 81%); the median was 22 (or about 88%). Look at your returned work carefully; if your score was below 20 (many were) you might want to review this quiz with me or a TA. Material similar to this will be on the first written exam.

After the TAs return your graded work in lab on Thursday, please download the Grades(zipped .xlsm file) from the course web and ensure that I have computed and entered your grade correctly (I'll be entering thousands of grades for students in my course this quarter, so even if I'm 99% accurate, I'm likely to record some incorrect grades. Note that all grades are recorded as integral values: I always round up (e.g., an exam score of 22.5 is recorded as 23).

If you do not pick up your returned work in lab, the TAs will continue to bring old quizzes to lab on Thursdays, along with newly graded quizzes. You should pick it your graded work, to get the benefit of the feedback written on the quiz.

Remember to read my solutions too (and ask questions about them if you don't undertand my answers or why they are correct).


#7: 4/29/13
Program #2
The TAs have graded (and I have recorded the grades for) Program #2 (not really a program: using the Debug Perspective in Eclipse). The class average was about 13 (of 15, or about 86%); the median was 14 (or about 93%). There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.

  • The first stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: check my solutions on EEE; each of the 7 questions was worth 2 points. This file is is sorted by the last 5 digits in your student ID. If you do not see your student ID (look carefully) please contact me by email.

  • The second file to examine is the grades spreadsheet that is available from the index on the course web: it records all the grades for all the testing instruments that I assign over the quarter. It is sorted likewise. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate to a 28 on the second one. We will use this same process for recording all grades during the quarter. If you do not see your student ID (look carefully) please contact me by email.

Ths was a short assignment with little time allocated to learning this tool, but understanding how to use the debugger will be beneficial throughout this class and the entire ICS 30s series. If you did not do well on this assignmne, and do not have a good grasp of the debugger, it is still worthwhile to study and learn it better.

IMPORTANT If you believe that we recorded one or more answers incorrectly, please email your TA (see the fact sheet; also cc a copy to me) and tell him what you think the differences are. The TA for your lab is responsible for grading all the programs in your lab. Please read the comments in the assignment grades spreadsheet carefully before contacting your TA and ensure you understand the correct answers. He will then re-examine issue, possibly asking you for more information if there is still confusion, or talking to you during the lab meeting. If there is a difference, he 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). If you feel there is still a problem after talking to the TA, please contact me (but always contact the TA first).


#6: 4/22/13
Program #1
The TAs have graded (and I have recorded the grades for) Program #1. The class average was about 45 (or about 99%); the median was 46 (or about 102%). There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.

  • The first stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: why points were deducted. You will see the deducted points in cells. If you hover over a commented cell (those with a red-triangle in the cell's upper-right hand corner) you will see a comment that explains why the points were deducted. This file is is sorted by the last 5 digits in your student ID. If you do not see your student ID (look carefully) please contact me by email.

  • The second file to examine is the grades spreadsheet that is available from the index on the course web: it records all the grades for all the testing instruments that I assign over the quarter. It is sorted likewise. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate to a 28 on the second one. We will use this same process for recording all grades during the quarter. If you do not see your student ID (look carefully) please contact me by email.

Generally most students are off to a good start. These were not complicated programs, but then again you are just starting to learn programming; later programs will be more complicated but also more interesting (and you will be a better programmer by then).

IMPORTANT If you believe that we recorded one or more answers incorrectly, please email your TA (see the fact sheet; also cc a copy to me) and tell him what you think the differences are. The TA for your lab is responsible for grading all the programs in your lab. Please read the comments in the assignment grades spreadsheet carefully before contacting your TA and ensure you understand the correct answers. He will then re-examine issue, possibly asking you for more information if there is still confusion, or talking to you during the lab meeting. If there is a difference, he 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). If you feel there is still a problem after talking to the TA, please contact me (but always contact the TA first).


#5: 4/18/13
Quiz #2
The TAs have graded (and I have recorded the grades for) Quiz #2. The class average was about 20 (or about 78%); the median was 22 (or about 88%). Look at your returned work carefully; if your score was below 20 (many were) you might want to review this quiz with me or a TA. Material similar to this will be on the first written exam.

After the TAs return your graded work in lab on Thursday, please download the Grades(zipped .xlsm file) from the course web and ensure that I have computed and entered your grade correctly (I'll be entering thousands of grades for students in my course this quarter, so even if I'm 99% accurate, I'm likely to record some incorrect grades. Note that all grades are recorded as integral values: I always round up (e.g., an exam score of 22.5 is recorded as 23).

If you do not pick up your returned work in lab, the TAs will continue to bring old quizzes to lab on Thursdays, along with newly graded quizzes. You should pick it your graded work, to get the benefit of the feedback written on the quiz.

Remember to read my solutions too (and ask questions about them if you don't undertand my answers or why they are correct).


#4: 4/15/13
Programming Assignment #0 Graded
Programming Assignment #0 has been graded. There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.

  • The first stores the assignment grades, a zipped Excel file that details how each student was graded on this instrument: why points were deducted. You will see the deducted points in cells. If you hover over a commented cell (those with a red-triangle in the cell's upper-right hand corner) you will see a comment that explains why the points were deducted. This file is is sorted by the last 5 digits in your student ID.

  • The second file to examine is the grades spreadsheet that is available from the index on the course web: it records all the grades for all the testing instruments that I assign over the quarter (so far, just this one; soon Quiz #1 too). It is sorted likewise. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 27.5 on the first spreadsheet will translate to a 28 on the second one. We will use this same process for recording all grades during the quarter.

This assignment was designed to test you on whether you have mastered the basics of using Python in Eclipse (and know the course web, via the survey questions). It was also designed to see if you could follow instructions and ask questions: more on that below.

The class avereage was 30 (or about 100%) and the median was 30 (or about 103%). The assignment was not meant to be hard, but it was not trivial either, and there were many opportunities to lose points. Now that we are on to real programming assighnments, I expect you are gaining more familiarity with Eclipse and having an easier time using it.

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): the point was lost by 89 students (or about 50%). 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 I give: if anything seems confusing or plain wrong, I should be questioned about it -preferably in public, so others can learn about the problem and the correction. For some background, check out Mr. Lill in the course overview.

Some students did ask me in 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; if anyone would have asked on the Forum whether they should have corrected the misspelling, I would have responded no on the Forum (which some students would have read). 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 you write for your solutions. If you make any assumptions and don't ask about them, they might come back later to haunt you (gradewise). When working with a partner, you'll have two eyes reading the specification. I am willing to deduct a point from many students to get across this perspective.

IMPORTANT If you believe that we recorded one or more answers incorrectly, please email your TA (see the fact sheet; also cc a copy to me) and tell him what you think the differences are. The TA for your lab is responsible for grading all the programs in your lab (the TAs will jointly grade the quizzes: one TA per problem across all labs). Please read the comments in the assignment grades spreadsheet carefully before contacting your TA and ensure you understand the correct answers. He will then re-examine issue, possibly asking you for more information if there is still confusion, or talking to you during the lab meeting. If there is a difference, he 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). If you feel there is still a problem after talking to the TA, please contact me (but always contact the TA first).


#3: 4/10/13
Quiz #1
I have graded (and recorded the grades for) Quiz #1. The class average was about 20 (or about 82%); the median was 22 (or about 88%). Look at your returned work carefully; if your score was below 20 (many were) you might want to review this quiz with me or a TA. Material similar to this will be on the first written exam.

After I return your graded work in class on Wednesday, please download the Grades(zipped .xlsm file) from the course web and ensure that I have computed and entered your grade correctly (I'll be entering thousands of grades for students in my course this quarter, so even if I'm 99% accurate, I'm likely to record some incorrect grades. Note that all grades are recorded as integral values: I always round up (e.g., an exam score of 22.5 is recorded as 23).

If you do not pick up your returned work in class, you should pick it up during my office hours ASAP; I don't like keeping student quizzes: it makes my office messier, and you don't get the benefit of the feedback written on the quiz.

Here were some common mistakes:

  • Problem 1: Many students either left out one or two lines needed in the syntax chart (some omitted it altogether) or incorrectly computed whether a few words were Legal or Illegal according the EBNF or syntax chart.

  • Problem 2: Some students got this completely correct while others had close solutions; some not so close answers. Some had "useless rules" (e.g., comma <= , just use the , in another rule) or minor or major bugs in their EBNF rules: name-sequence <= name{, name} and name was common, but that doesn't allow just one name; likewise, the rule name-sequence <= name{, name}[and name] does allow Bob, Bob when it shouldn't. Some students wrote only the Right Hand Side of the rule, not the Left Hand Side nor "is defined as" arrow. There were a few students who specified a Right Hand Side without using name, some didn't include commas nor the word "and"; these students appear lost about synthesizing EBNF descriptions.

  • Problem 3: Some students did get this completely correct, while others had lots of small mistakes: some students didn't put in enough vertical lines to separate all the tokens; others did not write the categories on top, or include the types of the literals.

#2: 4/1/13
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 then Course Software link. If you are using a Mac, read the Hints for Mac Users first.

Although students can work on their programming assignments on the computers in the UCI labs, I expect students with computers to download and instal 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.


#1:4/1/13
First Message
Welcome to ICS-31 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 (and you should check it daily), 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, although a subsequent message may "cancel" a previous one; in such a case, I'll refer to the number of a canceled message in the message that cancels it.

Expect a few new messages to be posted here each week.

Check this page, along with the Forums on MessageBoard, daily.