This course is governed by an academic honesty policy that enforces academic integrity (e.g. no cheating). See https://academicintegrity.ucsd.edu/forms/form-scholarship-agreement.html for an overview of what constitutes an academic integrity violation in a CSE course. Assignments will be clear on when they are intended to be collaborative versus individual work.
With few exceptions, late work won’t be accepted and you’ll get a 0. There are a few reasons for this: Sometimes, an assignment and its solution will be discussed in the lecture immediately after it is due, so it’s infeasible to grade late work fairly. In addition, many assignments build on one another, so it’s good to avoid a policy that lets you slip behind.
If you have an important, immovable, scheduled event, like a job or grad school interview, or observation of a religious holiday, and it conflicts with a course deadline, let me know as soon as possible (ideally at least 48 hours before the deadline you conflict with). We can arrange a workaround.
Any other kind of late work needs documented extenuating circumstances to be considered for credit, contact me ASAP if that comes up.
We’ll be using clickers for in class exercises, and you’re expected to participate (it’s a portion of your grade). You can buy them at the bookstore, and you can use either version.
Note that the clicker id may be an A followed by 7 alphanumeric characters; the student id should be one longer. To register your clicker once you have it, go to https://www1.iclicker.com/register-clicker/ and fill out the form. Your student id should look like A12345678 (an A followed by 8 digits), and you should use your @ucsd.edu email address. You don’t need to re-register if you’ve registered at https://iclicker.com before.
There’s evidence that sitting and listening passively to lecture probably isn’t the best way to teach or learn science. I like to ask questions during class, give you a chance to discuss them, and attach some value to your engagement. We’ll use clickers to do this.
Typically, there will be 1-2 clicker questions per lecture, based on what we’re discussing or working through. Sometimes you’ll have to read some code and pick the code that does the right thing, or choose a strategy for a program, or figure out what’s wrong with a program on the board. I’m asking for participation, not correctness – sometimes a clicker question won’t have a right answer or will be to stimulate discussion.
Your proportion of the 10% of clicker points is simply the proportion of clicker questions you answer with 5 missed days worth of clicker points allowed. You are not encouraged to miss 5 lectures; this policy is mainly intended to capture in a broad and fair way various issues with logistics, clicker technology, and reasonable absences.
The formula for calculating this is:
Math.min(totalClickerLectures - 5, yourClickerPoints) / (totalClickerLectures - 5)
You get a clicker point for each day you participate in clicker questions in lecture (usually doing one or two is sufficient). So yourClickerPoints (which is the number reported in GradeSource) is essentially the number of days you showed up and clicked.
The formula above produces a number between 0 and 1, which is the proportion of the 10% of your score you’ll get from clickers. The most likely value for totalClickerLectures is in the high 20’s, but this could change due to cancellations, altered schedules, etc.
You will have a number of programming assignments in this course. Each will be released about a week in advance of its due date. Due dates will be clearly posted on each asssignment, which will usually (but not always) be on Thursdays by 11:59pm. Assignments will use ACMS accounts and machines; an early assignment will come with instructions for getting these accounts set up.
Assignments will clearly post when they are to be done individually, vs. being done in pairs.
There are also written assignments that are not as closely tied to the assignment schedule; they, too will be released about a week before they are due. Typically, a good answer to each question only needs to be a half page or so long; I am not asking you to write papers. Concision, clarity, and correctness will be the main components of your grade on written questions. All written work is to be done individually, and must be type-set (no handwritten answers will be accepted).
Your grade will consist of:
(10%) Participation via clickers
(50%) Programming assignments
(20%) Two take-home written tests
(20%) A final exam
In addition, you must get half of the points on the final exam to pass the course.
Above 90% is guaranteed some kind of A, above 80% is some kind of B, and above 70% is some kind of C. These thresholds may be lowered, but won’t be raised.
For the two take-home written tests, the one on which you score higher will count for 15 of the 20%, and the one on which you score lower will count for 5 of the 20%.
The programming assignments are worth:
PA0 (warmup) – 5%
PA1 (anaconda/basics) – 5%
PA2 (boa/tagging) – 5%
PA3 (cobra/functions) –10%
PA4 (diamondback/heap) – 10%
PA5 (egg-eater/ptc) – 5%
PA6 (garger/gc) –10%
The last PA (PA7) for closures is optional. If you hand it in, we’ll grade it, and use its score either to replace one of the 10% assignments OR up to two of the 5% assignments, whichever is better for your grade.
Example: You get a 40 on PA1, 60 on PA2, and a 55 on PA4. Then you get a 70 on PA7. Your grade would be computed using a 70 for both PA1 and PA2.
Example: You get a 40 on PA1, 60 on PA2, and a 45 on PA4. Then you get a 70 on PA7. Your grade would be computed using a 70 for PA4.
Example: You get a 0 on PA1, 80 on PA2, and a 45 on PA4. Then you get a 70 on PA7. Your grade would be computed using a 70 on PA1, an 80 for PA2, and a 45 for PA4.
Example: You get a 0 on PA1, 80 on PA2, and a 30 on PA4. Then you get a 70 on PA7. Your grade would be computed using a 70 on PA4, with the PA1 and PA2 grades staying the same.