Please use piazza for (nonpersonal) course questions, rather than using email or Canvas. Please make sure your questions/comments to piazza don’t degenerate into providing significant ideas for solving homework problems. It is possible that important announcements will be made only on piazza.
Homeworks will be turned in and graded using gradescope. Exams will also be graded and returned via gradescope.
Office hours will be posted and kept up to date on the course homepage.
With only 28 50-minute lectures this term, we actually have 250 fewer minutes than a TR class this term. That’s a big difference. I must be careful not to waste time.
There is no assigned text (although the course homepage lists several books you might look at if you like). Your primary resource is what I say in lecture, and I consider attendance to be mandatory. While I do not attempt to verify attendance for every lecture, there will be frequent quizzes, and they will not be announced in advance. Half the score for these quizzes is being there to take it.
The prerequisites for our class are a discrete math class (ECS 20 or Math 108) and a programming class (ECS 10 or 30, now ECS 32A or 36A). That really is a lower bound; you would do well to have more, including a level of mathematical maturity consistent with having some upper division math and probability, theory of computation (ECS 120), and/or algorithm (ECS 122A). I will assume that everyone in this class is capable of writing short programs in some high-level programming language, understanding mathematical definitions, and writing coherent proofs.
Some students will come to the class from an interest in computer security. That’s great, but I want to make clear that cryptography and computer security involve different skills and different ways of thinking. This class leans more towards theory than systems (as hinted at by the second digit of the course number), even if the theory we talk about is highly applicable.
A few students may come to the class from an interest in crypto currencies or blockchains. I will give you tools that should help you understand this stuff, but I don’t yet know if we’ll cover such material.
Here’s how the videos ought to be used. If you’re attending and following the lectures, just ignore the videos; you have no need for them. I mean, who would want to listen to me again, anyway? My voice is too high and hearing it once has got to be painful enough. But if you unavoidably had to miss some lecture, the video can be quickly watched to stay current. Or if you were as focused as you could be but just couldn’t get something, promptly watching the video can provide a second chance.
If you watch some or part of a video, do it in a distraction-free environment. Don’t multitask. You can’t learn cryptography, or anything else that’s demanding, in that way.
Late homeworks aren’t accepted, and missed exams can’t be made up. A single missing quiz will be assumed to be an illness, and will effectively be ignored. If you miss the final, however, you will get an F. You will also get an F if you commit any form of academic misconduct (see below).
If you think something was misgraded, you may request a regrade, using gradescope, within three days of when grades are posted. Make sure you have read and understood any posted solution first. Scores can go up or down. Because it consumes a great deal of TA time, please limit your use of regrades to cases where you believe that an actual error was made, not a discretionary matter in assigning points.
Some homework problems will be challenging (I want to encourage creative problem solving, not regurgitation). Over the quarter, most students will not be able to solve every problem, even if they work hard. That’s OK; don’t be discouraged. The thinking associated to doing the homeworks, even when unsuccessful, is where much of the learning takes place.
Homeworks are due at noon on the indicated day (usually Wednesdays). They are turned in using gradescope. Late homeworks aren’t accepted.
With the granularity of a problem set, you may, if you wish, work with one partner. Alternatively, you can work alone. (Personally, I think working alone usually results in learning the most, but some students disagree.) Teams may not have have more than two members.
If you choose to have a partner on a problem set, you turn in one problem set for the two of you. Use the option in gradescope to create a group for the two of you. I discourage interacting on homeworks with anyone but your partner (if you have one), a TA, or me. If you do have any such interactions, detail them in your writeup, giving appropriate credit where due.
Consulting solutions to old problem sets (from this or any other class), is strictly prohibited. So is doing web searches to try to locate solutions.
For homework writeups, I care deeply about the quality of writing as well as the quality of thinking. Your goal is to find short, correct, and elegant solutions. Strive to make it beautiful. Please do not turn in an incorrect solution to a problem that you understand to be incorrect; rather, explain what you have tried, and how it failed. Please do not provide “first draft” writing; nobody can write good technical prose in a single draft. I strongly prefer homeworks to be typeset, preferably in LaTeX. Norm Matloff wrote a LaTeX tutorial you might find useful. If you do write things out by hand, I prefer that you scan rather than photograph your work for uploading to gradescope. Cellphone photos do work, but make sure they’re easy to read. If something isn’t easy to read, it is, by definition, wrong.
If your English writing skills are not good I suggest that you do not partner with someone with similar difficulties. It’s often a bad idea for non-native speakers to partner.
On homeworks, you may not consult any problem set solution for any similar problem, regardless of institution. You should not seek out directly relevant non-problem-set materials. If you accidentally and innocently encountered such materials, just acknowledge it in your writeup and that’ll be fine.
Uploading course materials for further redistribution to sites like CourseHero is an egregious instance of academic misconduct. It is also illegal. Similarly, you may not download material from CourseHero or the like.
I report all instances of suspected academic misconduct to SJA. If you were involved in academic misconduct, either by your own admission or by a finding from SJA, I will assign you an F grade in the course. I call this the cheat-implies-F policy. There are ongoing discussions to make this an official policy within the CS Department. The F grade is in addition to whatever SJA does. By taking this class with me, you are acknowledging and accepting this policy.
The cheat-implies-F policy isn’t because I’m especially mean (I hope I am not), nor because I see things as black-and-white (I don’t). It’s because I, and lots of other CS faculty, have had major problems with student cheating. Cheating is unfair to honest students; it makes a mockery of the academic ethos, which depends on the honest reporting of work; and it may foreshadow dishonesty in ones professional career as a computer scientist, where the consequences of dishonesty include risks to public safety and well being.
UCD’s Code of Academic Conduct describes expectations common to all courses.