#20: 12/10/19 Programming Assignment #5 Graded |
All grading on Programming Assignment #5 was done automatically
(with Googletests, by Andrew).
Contact him if you feel that your program was graded incorrectly;
if so, he will email me and cc you about any corrected grades.
He will announce some office hours this week as well.
There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.
This assignment was designed to test if you understand graphs and can implement the Graph data type with fast versions (using hashing) of the Set and Map data types. As an application for graphs, you were asked to write some functions (and a main program) help implement Dijkstra's extended all shortest paths algorithm. To implement Dijkstra according to the specifications, you needed to use an Adjustable Queue data type, which you wrote by coupling an adaptation of the HeapPriorityQueue data structure with a HashMap that kept track of the heap indexes of the values in the priority queue. The class average was 56 (or about 93%) and the median was 60 (or about 100%), which both include extra credits for early submissions There were 75% As, 9% Bs, 1 Cs, and 16% Ds and Fs. Individually the percentages (without including early submissions) were Hash Graph 99%, Adjustable Priority Queue 98%, and Dijkstra 80%. About 64% of the submissions were early. The Googletest for HeapAdjustableHashPriorityQueue was a bit different from the one I distributed. It had calls to kludge_test_all_index_equivalences in more methods: for all enqueue and dequeue tests. For Dijkstra (25 points), the Data 1 test (40%) used flightdist.txt and tested that it computed the shortest costs from each city to every other city; the Reflexive test (10%) used flightdist.txt and tested that it computed the shortest costs from each city to itself; the Data 2 test (10%) used flightcost.txt and tested that it computed the shortest costs from each city to every other city; the Used HAHPQ test (40%) determined whether the Dijkstra code computed the correct answers by actually using the algorithm specified, using update in the HeapAdjustableHashPriorityQueue. Thus, if you could compute all answers correct, but did not use the HeapAdjustableHashPriorityQueue you received 60% * 25 pts = 15 pts. IMPORTANT If you believe that we recorded one or more answers incorrectly, please contact the TA/reader first and tell him/her what you think the differences are. 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. This is certainly a win-win situation. Please read the solution and assignment grades spreadsheet carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. |
#19: 12/9/19 Quiz #8 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #8.
The class average was about 23 (or about 92%); the median was about 25
(or about 100%).
There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class. Each is sorted by Hashed ID.
If you believe that we recorded one or more answers incorrectly, please contact the TA/reader first and tell him/her what you think the differences are. 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. This is certainly a win-win situation. Please read the solution and assignment grades spreadsheet carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. Generally exams and quizzes are graded more closely than programming assignments. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points each student would have needed to earn to have that instrument's average be 75%: these number of points are then added to the sum of the points for each student (in a later column). This is the only curving I do in grading. On this testing instrument (and typically most others, except the written and programming exams), the normalization points are 0. |
#18: 12/6/19 Quiz #7 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #7.
Andrew has automatically graded (and I have recorded the grades for) Quiz #7
for problem 1 and the executable part of 2c; the TAs/Readers graded the
timing data in problems 2a-2d.
The class average was about 22 (or about 88%); the median was about 24
(or about 96%).
Look at your returned work carefully; if your score was below 20 (which is 80%)
you might want to review this quiz with me or a TA.
Material similar to this will be on the final exam.
Always see your TA/Reader first for grading issues with Quizzes.
For Problem #1 (worth 20 points), students received 5 points for submitting code, +5 more points if the program compiled, +5 more points if it worked correctly (and within time limits, and with the correct height) on a small test case, and a final +5 more points if it worked correctly (and within time limits, and with the correct height) on various large, random test cases. For the data parts (2a, 2b, 2c, and 2d) any reasonable answers in timings.doc received 1 point (we graded information in the tables only, not the other questions). Here is who graded what on this problem: students with last names starting with
See Andrew about the code and the TAs above about 2a, 2b, 2c, and 2d. You can examine your total scores for each Problem in assignment grades, a zipped Excel file. You should also examine 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. You will notice that in the second spreadsheet all numbers are rounded up to integers: so receiving a 22.5 will translate to a 23. We will use this same process for recording all grades during the quarter. 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 courses 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., a quiz score of 22.5 is recorded as 23). If you believe that we recorded one or more answers incorrectly, please contact the TA/reader first and tell him/her what you think the differences are. 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. This is certainly a win-win situation. Please read the solution and assignment grades spreadsheet carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. Generally exams and quizzes are graded more closely than programming assignments. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points each student would have needed to earn to have that instrument's average be 75%: these number of points are then added to the sum of the points for each student (in a later column). This is the only curving I do in grading. |
#17: 12/2/19 Programming Assignment #4 Graded |
All grading on Programming Assignment #4 was done automatically
(with Googletests, by Andrew).
Contact him if you feel that your program was graded incorrectly;
if so, he will email me and cc you about any corrected grades.
There seem to be only a few of students whose programs did not compile.
There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.
This assignment was designed to test if you have mastered using hash tables for the map and set data types in the context of implementing classes in the ICS46 Template library, including iterators over these data types. Essentially you did the same thing (implementing a data type) twice, but each with a different data type, although both shared the same kind of code for hash tables (it would have been interesting to try to develop a HashTable class that could have been used for both). The class average was 53 (or about 88%) and the median was 58 (or about 97%). There were about 69% As, 15% Bs, 6% Cs, and 9% Ds and Fs. Individually the percentages (without including early submissions) were HashMap 90% and HashSet 87%. There were 35% students submitting two days early, and 23% submitting 1 day early. A final word on the grading of the WordGenerator program, which was worth 5 points. The first 1.5 points (column H) was for your two classes working correctly, running in under 30 seconds on Andrews's machine, with my version of wordgenerator.cpp. A TA from a prior quarter sent me the following information about why many student programs failed that quarter: Quite a large number of students lost points in columns H and K due to incorrect formatting produced by the printing operator in their implementation of HashSet. The next two points were for reading the corpus in an execution time that was no worse than a factor of 10 bigger than my code, using HashMap/HashSet (column I); and for sorting the corpus pairs in an execution time that was no worse than a factor of 10 bigger than my code, using HashMap/HashSet (column J). The final 1.5 points (column K) was for the student version of wordgenerator.cpp. IMPORTANT If you believe that we recorded one or more answers incorrectly, please the TA/Reader responsible and explain the problem. Please read the comments in the assignment grades spreadsheet carefully, and look at my solutions, before contacting anyone to ensure that you understand the correct answers. The TA/Grader will then re-examine issue, possibly asking you for more information if there is still confusion. If there is to be a grade change, the TA/Reader will email me and cc 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). |
#16: 11/24/19 Quiz #6 Graded |
Andrew has automatically graded (and I have recorded the grades for) Quiz #6.
The class average was about 24 (or about 95%); the median was about 25
(or about 100%).
Look at your returned work carefully; if your score was below 20 (which is 80%)
you might want to review this quiz with me or a TA.
Material similar to this will be on the final exam.
Always see your TA/Reader first for grading issues with Quizzes.
There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class. Each is sorted by Hashed ID.
For the test_swap function, I did 1,000 experiments on a random array storing 1,000 randome values. For this selection, your results all needed to be within .012 (~1.2%) of mine (.9925). So the vast majority of the time a swap is required. If you believe that we recorded one or more answers incorrectly, please contact the TA/reader first and tell him/her what you think the differences are. 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. This is certainly a win-win situation. Please read the solution and assignment grades spreadsheet carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. Generally exams and quizzes are graded more closely than programming assignments. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points each student would have needed to earn to have that instrument's average be 75%: these number of points are then added to the sum of the points for each student (in a later column). This is the only curving I do in grading. On this testing instrument (and typically most others, except the written and programming exams), the normalization points are 0. |
#15: 11/19/19 Programming Assignment #3 Graded |
All grading on Programming Assignment #3 was done automatically
(with Googletests, by Andrew).
Contact him if you feel that your program was graded incorrectly;
if so, he will email me and cc you about any corrected grades.
There seem to be a large number of students whose programs did not compile;
Andrew manually fixed them.
There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.
This assignment was designed to test if you have mastered using different kinds of trees (here heaps and BST) in the context of implementing classes in the ICS46 Template library, including iterators over these data types. Essentially you did the same thing (implementing a data type) twice, but each with a different data type and each with a different data structure. The class average was 53 (or about 88%) and the median was 58 (or about 97%). There were about 75% As, 8% Bs, 1% Cs, and 16% Ds and Fs. Individually, the percentages (without including early submission points) were HeapPriorityQueue 91% and BSTMap 86%. There were 35% students submitting two days early, and 14% submitting 1 day early. A final word on the grading of the WordGenerator program, which was worth 5 points. The first point (column I) was for your two classes working correctly, running in under 30 seconds on Andrew's machine, with my version of wordgenerator.cpp. A TA from a prior quarter sent me the following information about why many student programs failed that quarter: The reason why a great number of the students received a blank (no credit) in column I is a common bug that most of them were unable to fix. Specifically, those students forget to provide the comparison function for the it instance variable for the end iterator for HeapPriorityQueue. Consequently, when iterating over the priority queue in CorpusPQ (in the print_corpus function), the comparison function has not been specified in the template argument in the type, but instead has been passed through the argument in a constructor, then the it priority queue in the end iterator is left without a comparison function. The next two points were for reading the corpus in an execution time that was no worse than a factor of 10 bigger than my code, using BSTMap (column J); and for sorting the corpus pairs in an execution time that was no worse than a factor of 10 bigger than my code, using HeapPriorityQueue (column J). The final two points (column K) was for the student version of wordgenerator.cpp running with my classes. The Reader in a previous quarter mentioned that many students incorrectly wrote key < .... in their code that searched for a key in the binary search tree; the correct code should use the lt instance variable suppled by the template or constructor. What is the difference? The < operator has a definition for int and string, but not for queues of ints, which is the key in the BST used in wordgenerator. IMPORTANT If you believe that we recorded one or more answers incorrectly, please the TA/Reader responsible and explain the problem. Please read the comments in the assignment grades spreadsheet carefully, and look at my solutions, before contacting anyone to ensure that you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion. If there is to be a grade change, the TA/Reader will email me and cc 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). |
#14: 11/19/19 Quiz #5 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #5.
The class average was about 22 (or about 89%); the median was about 23
(or about 92%).
Look at your returned work carefully; if your score was below 20 (which is 80%)
you might want to review this quiz with me or a TA.
Material similar to this will be on the final written exam.
The readers Jack did Problem #1 and Justine did Problem #4; talk to them for questions about the grading of those problems; see Reader Andrew for questions about the grading of the remaining problems (submitted via checkmate). He mentione that a half-dozen students had code that timed-out, particularly on parts 3 or 5; if you expectred more credit on these problems see Andrew. You can download the actual googletest and data file. The dict4.txt file should be the same as dict3.txt but with the word supercalifragilisticexpialidocious added to the list. There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class. Each is sorted by Hashed ID.
Please read the solution and assignment grades spreadsheet carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. Generally exams and quizzes are graded more closely than programming assignments. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points each student would have needed to earn to have that instrument's average be 75%: these number of points are then added to the sum of the points for each student (in a later column). This is the only curving I do in grading. On this testing instrument (and typically most others, except the written and programming exams), the normalization points are 0. |
#13: 11/11/19 Midterm Exam |
The TAs/Readers and I have graded (and I have recorded the grades for) the
Midterm exam.
They will be returned in the common labs this week, starting on Tuesday.
I expect you to go over my solutions and understand them (and if you don't
understand them, to seek help understanding them).
We will review the grade distibutions in class on Wednesday.
If you took the exam but do not show a score, please contact me ASAP. Sometimes the TAs enter a score on the wrong line (they are hand-entered), but since we have the original exams that problem is easy to rectify. Before looking at the grades on this exam, let's look cumulative grades on quizzes, programs, and the midterm. Of those students taking the midterm exam, at present there are 38% As, 27% Bs, 18% Cs, and 117 Ds and Fs -which is better than the percentages that I originally projected at the start of the quarter: about 25% in each category. Last Fall at this same time there were 32% As, 27% Bs, 21% Cs, and 19% Ds and Fs If I had to predict final grades, I would use your current grade, although there is still a lot more work to do: I am going to record 4 more quizzes, 3 more programs, and the final exam (about 580 of the 1,000 points the course is worth). The Final written exam will be about 1/2 on the material covered on the midterm and 1/2 on the material that we cover during the remaining part of the quarter (mostly hashing, sorting, equivalence relations, graphs, and details on computer memory and how it affects some data structures and their algorithnms). If your final exam percent is better than your midterm exam percent, I will boost your midterm exam grade, so doing better on the comprehensive final exam can make up for doing poorly on the midterm. The class average for the midterm was about 66% and the median was also about 67% (last Fall they were both in the mid 60s too). Because the class average was below 75%, the grade sheet will automatically add about 19 "normalization" points (about 9%) to everyone's score when tallying your final grade. Note that I entered your "real" score (from you midterm paper) in the spreadsheet; the spreadsheet will automatically bump it by the normalization points when computing your grade: so Column AA shows your average with the normalization points added. More information about this writen exam appears below. Before you pick up your graded work, you can download assignment grades, a zipped Excel file that shows how many points each student received on each problem. After you pick up your graded work, please download the Grades(zipped .xls 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'll incorrectly compute/record some grades). Note that all grades are recorded as integral values: I always round up (e.g., an exam score of 122.5 is recorded as 123). If you do not pick up your returned work this week, you should pick it up during my office hours ASAP; I don't like keeping student exams: it makes my office messier, and you don't get the benefit of examining your quiz. Recall that the exam was worth a total of 200 points. The breakdown by grade (after normalization) of students who took the exam was: 25% As, 19% Bs, 23% Cs, 17% Ds, and 16% Fs. Last Fall the breakdown was: 23% As, 18% Bs, 21% Cs, 21% Ds, and 17% Fs. Here is a quick breakdown of averages/medians for the individual problems (and who graded each problem).
|
#12: 11/4/19 Quiz #4 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #4.
The class average was about 23 (or about 90%); the median was about 24
(or about 96%).
Andrew graded problems 3-5 (using a Googltest that were the same as from the
driver; Xiaoyin graded problems 1-2.
There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class. Each is sorted by Hashed ID.
Look at your returned work carefully; if your score was below 20 (which is 80%) you might want to review this quiz with me or a TA. Material similar to this will be on the first written exam. Always see your TA/Reader first for grading issues with Quizzes. In problem #1, some students do not know the technical definition of height. In problem #2, some students did not build the correct heap (there is a unique one that everyone should have drawn, if it was constructed by the algorithm). Other students did not draw a box around the nodes actually removed (for example the root node in the Heap is NOT removed, although its value is) or percolate the values the correct way. In problem #2-5, some students did not correctly use base-cases, and/or they checked for nullptr in cases other than the base-case. In problm #4, some students did not call all_less and all_greater and instead just checked each root against its children (as we discussed in class this is not correct); other students did not call is_BST recursively on its children: the condition must hold for each node in the tree. To see your grade now, 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. You will notice that in this spreadsheet all numbers are rounded up to integers: so receiving a 22.5 on the first spreadsheet will translate to a 23 on the second one. We will use this same process for recording all grades during the quarter. The TAs will return your written quizzes during their common lab hours. 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 courses 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., a quiz score of 22.5 is recorded as 23). If you believe that we recorded one or more answers incorrectly, please contact the TA/reader first and tell him/her what you think the differences are. 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. This is certainly a win-win situation. Please read the solution and examine your graded quiz carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. Generally exams and quizzes are graded more closely than programming assignments. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points each student would have needed to earn to have that instrument's average be 75%: these number of points are then added to the sum of the points for each student (in a later column). This is the only curving I do in grading. On this testing instrument (and typically most others, except the written exams), the normalization points are 0. |
#11: 11/4/19 Programming Assignment #2 Graded |
The TA Andrew has graded (and I have recorded the grades for) Programming
Assignment #2.
Some grading was done automatically, and the remaining was done by Andrew.
Contact him if you feel that your problem was graded incorrectly;
he will email me and cc you about any corrected grades.
I deducted 2 points if Andrew indicated that he had to fix any compilation
errors.
There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class.
This assignment was designed to test if you have mastered using linked lists (and variants of linked lists) in the context of implementing classes in the ICS46 Template library, including iterators over these data types. Essentially you did the same thing (implementing a data type) three times, but each with a different data type and each with a different data structure. I'm hoping your ability to decipher C++ error messages and debug your code (including hand-simulation for linked list algorithms) has improved. The class average was 54 (or about 90%) and the median was 60 (or about 100%). There were about 76% As, 4% Bs, 4% Cs, and 16% Ds and Fs. Individually the percentages (without including points for early submissions) were Linked Queue 92%, Linked Priority Queue 77%, and Linked Set 73% (of the people submitting). There were 40% students submitting two days early, and 12% submitting 1 day early.
IMPORTANT If you believe that we recorded one or more answers incorrectly, please the TA responsible and explain the problem. Please read the comments in the assignment grades spreadsheet carefully, and look at my solutions, before contacting anyone to ensure that you understand the correct answers. The TA/Grader will then re-examine issue, possibly asking you for more information if there is still confusion. If there is to be a grade change, the TA will email me and cc 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). |
#10: 10/27/19 Quiz #3 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #3.
The class average was about 21 (or about 83%); the median was about 12
(or about 88%).
Look at your returned work carefully; if your score was below 20 (which is 80%)
you might want to review this quiz with me or a TA.
Material similar to this will be on the first written exam.
Always see your TA/Reader first for grading issues with Quizzes.
Each TA/Reader graded the same problem for all the students in class. Contact these TAs/Readers if you feel that your problem was graded incorrectly; they will email me and cc you about any corrected grades.
Note that the quiz showed two parts 6s; the second one appears in the spreadsheet as part 7. We deducted points for turning in materials after class started; and for not turning in a single sheet of paper (copied double-sided). The printed quizzes will be available on Monday through Thursday this week in ICS2 100 during the common labs. There are two files that you should download, unzip, and examine to understand your performance on this assignment and cumulative performance in this class. Each is sorted by Hashed ID.
The TAs will return your written quizzes during their common lab hours this week. 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 courses 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., a quiz score of 22.5 is recorded as 23). If you believe that we recorded one or more answers incorrectly, please contact the TA/Reader first and tell him/her what you think the differences are. 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. This is certainly a win-win situation. Please read the solution and examine your graded quiz carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. Generally exams and quizzes are graded more closely than programming assignments. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points each student would have needed to earn to have that instrument's average be 75%: these number of points are then added to the sum of the points for each student (in a later column). This is the only curving I do in grading. On this testing instrument (and typically most others, except the written exams), the normalization points are about 1.3 |
#9: 10/21/19 Quiz #2 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #2.
The class average was about 23 (or about 91%); the median was about 24
(or about 96%).
Look at your returned work carefully; if your score was below 20 (which is 80%)
you might want to review this quiz with me or a TA/Reader.
Material similar to this will be on the first written exam.
Some (but not many) students failed to turn in either printed quiz with the
answers written on it (or submitted it in the wrong pile) or failed to submit
their materials online to Checkmate.
Generally, always contact Andrew Chio first for grading issues with Google-tested code (the three recursive/iterative functions you wrote). For this quiz, Carlos Puentes graded all written problems (problem #1). Contact them if you feel that your problem was graded incorrectly; they will email me and cc you about any corrected grades. The printed quizzes (with problem #1 graded) will be available during common lab (ICS2 100) hours this week from the staff starting Tuesday. Briefly, in Problem 1, variables a, c, and the next instances variables in LN objects were checked: fully correct updates (new pointers and crossouts) had no deductions; if any mistakes were present there was a .5 point deduction. There was an additional .5 deduction for not drawing the tails of most of the arrows fully inside their variable boxes. A few students drew multiple linked lists, unlike any pictures that I drew in class or were in the notes: they lost all points for this problem. Some students drew some "magic" object storing a nullptr in it, when instead the "slash" should have been put it the box denoting a variable or next. Here is more details about the grading critera for the seven points:
There are two files that you should download, unzip, and examine to understand your performance on this assignment and cumulative performance in this class. Each is sorted by ID Hashed.
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 courses 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., a quiz score of 22.5 is recorded as 23). If you believe that we recorded one or more answers incorrectly, please contact the TA/reader first and tell him/her what you think the differences are. 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. This is certainly a win-win situation. Please read the solution and assignment grades spreadsheet carefully before contacting your TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, your TA/Reader 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 your TA/Reader, please contact me (but always contact your TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. Generally exams and quizzes are graded more closely than programming assignments. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points each student would have needed to earn to have that instrument's average be 75%: these number of points are then added to the sum of the points for each student (in a later column). This is the only curving I do in grading. On this testing instrument (and typically most others, except the written exams), the normalization points are 0. |
#8: 10/21/19 Programming Assignment #1 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Programming
Assignment #1.
Contact these TAs/Readers if you feel that your problem was graded incorrectly;
they will email me and cc you about any corrected grades.
This assignment was designed to test if you have mastered using the data types from the ICS46 Template library (stack, queue, priority queue, set, map) -and iterators over these data types. You should have found it interesting that these five different problems can be solved compactly with the same tools: these data types and iteration. The class average was 57 (or about 94%) and the median was 59 (or about 98%). There were about 79% As, 11% Bs, 4% Cs, and 6% Ds and Fs. The average for the five programs (in order) were 92%, 83%, 93%, 81%, and 71%. Last Fall quarter the average was 84% (median 90%) and the averages for the five programs (in order) were 99%, 90%, 94%, 91%, and 79%. There were 64% submissions two days early, and 9% submissions 1 day early. The average grade for the early submissions was 98%; the average grade for submissions that were not early was 88% (about 1 grade lower). IMPORTANT If you believe that we recorded one or more answers incorrectly, please the TA/Reader responsible and explain the problem. Please read the comments in the assignment grades spreadsheet carefully, and look at my solutions, before contacting anyone to ensure that you understand the correct answers. The TA/Grader will then re-examine issue, possibly asking you for more information if there is still confusion. If there is to be a grade change, the TA/Reader will email me and cc 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). |
#7: 10/16/19 Quiz #1 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #1.
The class average was about 23 (or about 93%); the median was about 25
(or about 100%).
There were about 81% As, 8% Bs, 2% Cs, and 9% Ds and Fs.
Look at your returned work carefully; if your score was below 20 (which is 80%)
you might want to review this quiz with me or a TA/Reader/Tutor.
Material similar to this will be on the first written exam.
IMPORTANT: Always see a TA/Reader first for grading issues with Quizzes; only if the issue is unresolved should you contact me. This quarter Andrew Chio (email achio@uci.edu) will be charge of running Googletests on quizzes and Programming Assignments. Contact him if there seems to be a problem. He will also be available in Common Lab 4 (Monday and Wednesday 6:00pm - 8:00pm) in ICS2 100 (our common lab room). Bring your computer when you visit him and be prepared to download files he supplies and run them on your machine. There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class. Each is sorted by ID Hashed (see Announcement #6 below).
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). If you believe that we recorded one or more answers incorrectly, please contact the relevant TA/Reader first and tell him/her what you think the differences are. I recommend meeting person to person with the TA/Reader when they hold Common Lab hours: each holds 4 hours/week. Here are the grading assignments for this quiz. For correctness (Googletests: Columns C-L) contact Andrew. For line requirements (Columns M-N) use the following.
Please read the solution and assignment grades spreadsheet carefully before contacting the TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, the TA/Reader 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/Reader, please contact me (but always contact the TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points that need to be added to each students score so that the instrument's average is 75%: these number of points are then added to the sum of the points for each student (in a later column) to compute their grade. This is the only curving I do in grading. On this testing instrument there were no normalization points, because the average was above 75%. If you scored very low on this quiz, you should ask yourself whether you are properly prepared for this course (or whether it was lack or time, or some other issue that caused your poor performance). Possibly you barely passed ICS-45C, but really don't understand the material or how to program/debug as well as most of the other students; possibly you received credit through a Community College with a less rigorous C++ sequence; possibly it has been a long time since your last C++ course. I'm happy to talk to students who feel ill-prepared for this course and would like to explore their options. |
#7: 10/16/19 Quiz #1 Graded |
The TAs/Readers have graded (and I have recorded the grades for) Quiz #1.
The class average was about 23 (or about 93%); the median was about 25
(or about 100%).
There were about 89% As, 1% Bs, 2% Cs, and 8% Ds and Fs.
Look at your returned work carefully; if your score was below 20 (which is 80%)
you might want to review this quiz with me or a TA/Reader/Tutor.
Material similar to this will be on the first written exam.
IMPORTANT: Always see a TA/Reader first for grading issues with Quizzes; only if the issue is unresolved should you contact me. This quarter Andrew Chio (email achio@uci.edu) will be charge of running Googletests on quizzes and Programming Assignments. Contact him if there seems to be a problem. He will also be available in Common Lab 10 (Tues/Thurs 6:00pm - 8:00pm) in ICS2 100 (our common lab room). Bring your computer when you visit him and be prepared to download files he supplies and run them on your machine. There are two files that you should download, unzip, and examine to understand you performance on this assignment and cumulative performance in this class. Each is sorted by ID Hashed (see Announcement #6 below).
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). If you believe that we recorded one or more answers incorrectly, please contact the relevant TA/Reader first and tell him/her what you think the differences are. I recommend meeting person to person with the TA/Reader when they hold Common Lab hours: each holds 4 hours/week. Here are the grading assignments for this quiz. For correctness (Googletests: Columns C-L) contact Andrew. For line requirements (Columns M-N) use the following.
Please read the solution and assignment grades spreadsheet carefully before contacting the TA/Reader and ensure you understand the correct answers. The TA/Reader will then re-examine issue, possibly asking you for more information if there is still confusion, or arranging to talk to you. If there is a difference, the TA/Reader 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/Reader, please contact me (but always contact the TA/Reader first). Also, because of the size of this class, if you have a grading issue, you must bring it to your TA's/Reader's attention within a week of when I return the materials. If the average on any testing instrument is less than 75%, the column for that instrument will show the number of normalization points: the number of points that need to be added to each students score so that the instrument's average is 75%: these number of points are then added to the sum of the points for each student (in a later column) to compute their grade. This is the only curving I do in grading. On this testing instrument there were no normalization points, because the average was above 75%. If you scored very low on this quiz, you should ask yourself whether you are properly prepared for this course (or whether it was lack or time, or some other issue that caused your poor performance). Possibly you barely passed ICS-45C, but really don't understand the material or how to program/debug as well as most of the other students; possibly you received credit through a Community College with a less rigorous C++ sequence; possibly it has been a long time since your last C++ course. I'm happy to talk to students who feel ill-prepared for this course and would like to explore their options. |
#6: 9/26/19 ID Hashed |
The course web-page has a Find ID Hashed (grade key) link (the
leftmost bottom/green link on the course web page) , which you can use to
retrieve your ID Hashed
(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/26/19 Important: Submitting Code without Losing Points |
ICS-46 uses software that automatically grades most quizzes and programming
assignments; it uses Googletest 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.
If this information does not match your expectations from running the assignment's self-checks while developing your code, contact your TA/Reader. It is best to meet with your TA/Reader during their common-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), 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/26/19 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 in the appropriate Piazza Message Folders.
|
#3: 9/26/19 Updated Software for Fall 2019 |
The software that we are using this quarter (CLion and Clang C++) is being
used for a third time in ICS-46.
Over the break, I updated the documentation for downloading, installing, and
using this software, and checked the courses libraries for it.
Please bear with me as I correct any confusion/mistakes regarding this
documentation and my course libraries; please let me know (Piazza is best)
about any problems you find.
Important: If you are a Mac user you should remove the lines
|
#2: 9/26/19 Install Course Software |
You may work on the assignments using any software development
environment and C++ compiler, but the CLion IDE (using Clang C++)
will be the official course software (and what the TAs will use to grade:
your program must build (compile and link) and Run correctly using
the Clang C++ compiler).
You also have the option of using the command-line interface to use Clang C++.
I recommend that you install and experiment with CLion/Clang C++ and
become familiar with it during the first week of the quarter (see
instructions below).
If you are using different software, you are responsible for ensuring that your system works with my download folders (for quizzes and programming assignments), course, library, and Googletest suites (see Programming Assignment #0), and that the programs you submit build and run correctly under Clang C++. I suggest that all students download and install the Course Software on their machines: Cygwin (for PC users, to provide a Unix-like environment), CLion, and Clang C++ (along with the courselib and gtestlib libraries). All products are available for free on the internet. Students can view instructions for downloading and installing this software by following the Course Software link. I expect students with computers to download and install their own 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 Common Lab meeting (all students will be able to see staff at prearranged times, even though there is no formal lab to attend in this class), or beyond, if necessary: bring your computer to any of the common labs; if you have successfully downloaded and installed this software, please help other students do so too. Finally, you can also use the Piazza Message Folders 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/26/19 First Message |
Welcome to ICS-46.
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 Piazza Folders daily. |