Syllabus
Grading
Your grade will be determined by:
- Review quizzes: 5%
- Homework: 35%
- Project: 15%
- Midterm: 15%
- Final: 30%. The final will be in-person, Friday 9.3.21 at 3pm (location TBA)
Homework
Homework assignments are due on gradescope at 11:59pm on Sundays. You can do them individually, or in groups of up to 3. Make sure names and PIDs for everybody involved are visible on the first page of the submission. Only one person needs to submit the homework on gradescope; you can add your partner via the “Add group members” dialog. If you work together, do not split up the work – collaborate on all problems.
You get a total of three late days, allocated between all assignments as you like. Homework submissions should be typed.
We will drop the lowest homework score.
Standards for evaluation: Your assignments in this class will be evaluated not only on the correctness of your answers, but on your ability to present your ideas clearly and logically. You should always explain how you arrived at your conclusions, using mathematically sound reasoning (unless otherwise stated). Whether you use formal proof techniques or write a more informal argument for why something is true, your answers should always be well-supported. Your goal should be to convince the reader that your results and methods are sound. This means that unless it says: “no justification necessary” then we expect a written justification.
Project
We will have a small three-part project, done individually. There will be three deadlines:
- Part 1: 8.11.21 at 11:59pm
- Part 2: 8.18.21 at 11:59pm
- Part 3: 9.1.21 at 11:59pm
Each component is worth 7.5% of your final grade. We will drop the lowest score, so this will comprise a total of 15% of your grade. The details are linked here.
Review quizzes
- There will be one review quiz per lecture (18 total).
- You will have until Sunday each week to complete that week’s review quizzes.
- You will have unlimited attempts on each quiz.
- Each quiz is worth one point total.
- To get the full 5% of your grade for review quizzes, you need 15 points
- Each point less than 15 results in a 1% drop in credit:
- 15+: 5%
- 14: 4%
- 13: 3%
- 12: 2%
- 11: 1%
- 10-: 0%
Academic integrity
University rules on integrity of scholarship will be strictly enforced. By taking this course, you implicitly agree to abide by the UCSD Policy on Integrity of Scholarship described here. In particular,
all academic work will be done by the student to whom it is assigned, without unauthorized aid of any kind.
Incidents which violate the University’s rules on integrity of scholarship will be taken seriously. In addition to receiving a zero (0) on the assignment/exam in question, students may also face other penalties, up to and including, expulsion from the University. Should you have any doubts about the moral and/or ethical implications of an activity regarding the course, please see the instructor.
Learning outcomes
Upon successful completion of this course, you will be able to:
- Describe and trace simple algorithms using English and pseudocode.
- Define and use classical algorithms and algorithmic paradigms e.g. Euclidean algorithm, greedy optimization.
- Use multiple representations of numbers to illustrate properties of the numbers and develop algorithms.
- Understand the logical structure and meaning of a sentence expressing a property, fact, or specification.
- Reason about the truth or falsity of complicated statements using Boolean connectives, quantifiers, and basic definitions.
- Relate boolean operations to applications, e.g. set operations and combinatorial circuits.
- Prove propositional equivalences and use normal forms.
- Apply proof techniques, including direct proofs and proofs by contradiction.
- Distinguish valid from invalid arguments.
- Craft proofs and arguments at different levels of formality, including prose and symbolic notation as appropriate.
- Reason about modular arithmetic.
- Use mathematical induction to prove statements about mathematical identities and inequalities.
- Apply structural induction to prove statements about recursively defined objects, e.g. strings and trees.
- Identify and be able to prove basic properties of sets, functions, and relations.
- Distinguish between finite, countable, and uncountable sets.