Overview

The approach to assignments, exams, and relative weighting is intended to assess multiple aspects of your developing expertise in algorithm design, analysis and implementation; while providing a little flexibility to recognize individual strengths. In summary, the components and their default weights (percentages and points, where 10 points = 1% of your grade) include:

This sums to 1025 points: you can miss 25 points of work and still earn 1000 points.

Extra credit (Variable), may be earned by peer assessment of group participation in class, by additional work that will be specified in some homework problems and implementation assignments, and by having others use your software in the third assigment. (There will be no separate extra credit problems or projects, as this creates more grading work than we have TA time.)

Points, Percents and Letter Grades

A “point” will be worth 0.1% of your grade. For example, an item worth 100 points is 10% of your grade, and a perfect score is 1000 points. At the end of the semester, I add up all your points and divide by 10 to get your percentage of points earned, capping it at 100%.

To determine letter grades, I use a 4-percent spread per grade increment, i.e., 100-97=A+, 96-93=A, 92-89=A-, 88-85=B+, 84-81=B, 80-77=B-, 76-73=C+, 72-69=C, 68-65=C-, 64-61=D+, 60-57=D, 56-53=D-, 52-0=F. I will set it up this way in Laulima. If upon inspection of the distribution of grades I feel that too many students who understand the material are not getting the grades they deserve, I may then make adjustments in favor of students … but don’t rely on this!

Components

Quizzes (12%, 120 points):

Before the classes that have lecture material, a brief quiz will be due online. These quizzes will test basic understanding of the chapter on which the day’s topic is based, such as whether you can simulate the operation of the data structure or algorithms or get the main point of the analyses of their relative merits. Most quizzes will not involve mathematical analysis or proofs: problems requiring deeper thought will be left for the classwork and homework problems. Quizzes will be given in Laulima, and will be automatically graded. Solutions will be given in class immediately after the quizzes are due, so quizzes cannot be made up.

I am expecting 24 quizzes worth 5 points each. There are 25 topics. We don’t include Topic 1 or the two special topics, which leaves 22 topics with quizzes, but Topic 2 and Topic 14 have two quizzes.

Problems (30.5%, 305 points):

These will relatively frequent assignments intended to help assess how well you understand the algorithms and analytic concepts being presented. They will require more thought than the problems given on the quizzes. They will come in two parts: an in-class portion done, turned in, and graded in groups, and an after-class portion turned in individually the following Monday. I attempt to choose in-class problems that help expose conceptual issues in the material and prepare you to work on the take-home portion on your own. Thus, by working in a group in class you help each other understand the problem that you will then solve and turn in individually. See also “Peer Evaluation of Participation” under Extra Credit below for how everyone can earn extra credit through participating in the group sessions.

Points are allocated as follows. Most topics are allocated 15 points, of which 5 are allocated to the group work turned in at the end of class, and 10 to the individual work turned in later. In 8 of the weeks, the problem set will consist of two topics, for 30 points each week (10 being groupwork turned in over the two days and 20 turned in by the individual). In 3 of the weeks, there is one topic, for 15 points. When we cover Topic 14 on Graphs, there will be two in-class problems and one homework for 20 points. The TA will grade problem sets. We aspire to a one week or less turn-around. If you have questions about solutions after they are due or graded, post them in Laulima and I will discuss solutions in class after the exercises are due.

Projects (Analysis, Implementation, Testing) (26%, 260 points):

There will be three projects. These typically involve writing Java implementations of abstract data types and associated algorithms, and testing these on sample data. You will also provide instructions on how to compile and run the program, document your design and implementation (including complexith analysis), and present and discuss test results. The assignments will progressively give you more responsibility. For the first project, you will be told what to implement, and it will be weighted 6% (60 points). For the second assignment you will need to make some implementation choices. The second assignment will be weighted 10% (100 points). The third assignment will require some research and decision making on your part to solve the problem. It will be weighted 10% (100 points). The TA will grade the first two projects, and both the TA and the instructor will grade the third.

Midterms (24%, 240 points):

There will be three midterm exams taking one class period each. They will include problems similar to those on the quizzes (for the easiest problems), and class and homework problems (for the harder ones), covering both understanding of the algorithms and how to analyze them. They will cover the most recent set of lecture topics, but cumulative “review” questions may also be included. Exams are open-book, open-notes on paper, but no electronic devices allowed. Each midterm is 80 points; there are three for 240 points or 24%. The instructor will grade all midterm exams.

Final (10%, 100 points):

The final exam will take place at the time scheduled by the university and will be longer than a midterm exam. It will cover the final set of lecture topics, but also include review of the entire semester. Since the final is longer and is cumulative as well as covering recent material, it is weighted more (100 points). Grading may be shared between TA and instructor.

Extra Credit (Variable Points)

You may earn extra credit several ways. The extra credit points will be recorded in a separate field in Laulima and allocated where they are needed at the end of the semester. Thus they do not appear in the grade estimate calculated by Laulima during the semester.

Peer Evaluation of Participation

Each week in which there is a problem set, each individual in the group may assign points distributed across the other individuals in the group to assess how effectively they collaborated in the group. You should allocate the points according to how well the others worked as team members, including their role in team functioning (e.g., keeping the group focused and organized, or playing another important role), and how much they helped others understand the material (e.g., by explaining what they understood), as well as their contributions to the actual problem solution.

To ensure that students in smaller groups are not penalized, we use this scheme, which distributes 12 points across each group:

Some example scenarios: if everyone else contributed equally, you might give 1 point to each person. If one person in the group was taking the majority of the initiative in a helpful way and the other two were not so engaged, you might assign the helpful person all three points If there was one person who did slightly more, one who helped some, and one slacker, you might allocate 2, 1, and 0 points. Or if you had to do everything yourself you can allocate 0 points to everyone.

Obviously, a person who is helpful in the groups can earn extra credit this way. The maximum possible (very unlikely) is that they get all the points from everyone in every group they participate in: 912=108, or about a 10% grade increase. If everyone gave their three points equally to all group members, the result would be 312=36 points, or about a 3.5% grade increase. So, just by participating in class you get a little boost to your grade.

Classwork, Homework and Project Add-ons

Extra credit problems will be included in some class sessions, homework problem sets, and projects. For example, an extra problem may be provided in class for those groups who finish early; a more difficult problem may be included in a homework set; or a student may program more challenging graph manipulations for extra credit in the programming projects. Points will be specified when they are given.

Software Reuse

In the third assignment, students will have the option of using other student’s implementations of ADTs from prior assignments. If your software is chosen by another student, you will be awarded 5 points for each “customer” in proportion to their grade and use of your software. For example, if a student uses your Graph ADT from Project 2 in their Project 3 and gets 80%, you will get 4 points. Partial credit is given if only parts of your code are used. The “customer” student must acknowledge your code in their project documentation (Readme and Reference manual).

Flexibility

We each have our own strengths. If a student performs significantly better on one area than others, I may elect to put greater weight on the area that gives the student a better grade. I am more willing to do this with strong exam performance, as exams are not easy and are proctored so I know it’s the student’s work. However, excellent programming may be considered as well.