CSE 101 - Design & Analysis of Algorithm - Jones [S225]

Updated 08/05/25 Subject to change.

 

Content Calendar

 

Gradescope entry code: 3XB382

Piazza signup link: https://piazza.com/ucsd/summer2025/cse101b00

Welcome to CSE 101.

This class is about algorithms. There are two main goals; introducing students to common algorithms and analyzing their runtime and correctness, and developing broad problem solving techniques related to the algorithms we discuss.

We will concentrate on general techniques that have been used to develop and analyze efficient algorithms for a wide variety of applications.  We organize algorithms by technique, rather than application domain.  Students will be expected to master these techniques, not just to understand the standard algorithms, but to design new algorithms using similar methods.  

We shall cover the most widely used algorithm techniques in depth: Graph Algorithms (DFS/BFS/etc.), Greedy Algorithms, Divide and Conquer Algorithms, Dynamic Programming Algorithms, and Hill-climbing (e.g.,Max Flow).  We will also give a quick introduction to  Complexity, especially NP-completeness and its consequences for algorithm design.  

There is no particular programming language you need to know for this class since most of the content is based on pseudocode. That being said, there will be some optional exercises in python using Jupyter notebooks.

Course Objectives:

  • Write clear high-level and implementation-level descriptions of algorithms.
  • Write clear justifications of correctness and clear runtime analysis of algorithms.
  • Demonstrate familiarity with common algorithms and data structures.
  • Trace common algorithms on simple examples to gain familiarity.
  • Analyze the runtime and correctness of algorithms.
  • Develop algorithmic problem solving techniques for novel problems based on common algorithms, data structures and design paradigms (including divide and conquer, dynamic programming, greedy algorithms...).

Prerequisites

The main prerequisites for this class are CSE 21 and CSE 20 (mainly CSE 21). From CSE 20, you should know basic proof techniques (especially induction) and basic logical reasoning. From CSE 21, you should know basic algorithm analysis, graph theory, and basic probability.

CSE 100 is not a prerequisite anymore but from this class you will learn similar topics from a programming perspective so it is suggested that you take CSE 100 before or concurrently.)

Professor:

  •  Miles Jones (mej016@ucsd.edu). 
      • Office hours
      • Lecture: 
        • TuTh
        • 11:00am-1:50pm
        • CENTER 105

 

Discussion: 

    • MW
    • 12:00pm-12:50pm
    • 1:00pm-1:50pm
    • CSB 004 (No discussion on the first Monday (Aug 4)

 

TAs and Tutors 

Name Position Email Address Office hours
Jones, Miles Instructor 12:45-2 Fridays Zoom
Kleber, Daniel Polito Teaching Assistant dkleber@ucsd.edu

2pm-3pm Tue B260A

4pm-5pm Wed Zoom

Barcelo Garcia, Jose Maria Tutor jbarcelogarcia@ucsd.edu

2pm-3pm Thu outside B250

2pm-3pm Fri over Zoom

Li, Nicole Tutor hl002@ucsd.edu 6-8pm Mon over Zoom
Park, Monica Tutor mepark@ucsd.edu

1-2pm Wed B270A,

5-6pm Sun over Zoom

Zhu, Yifan Tutor yiz257@ucsd.edu 4-6pm Tue B275

Lectures:

  •  The lectures will be taught in person CENTER 105  TuTh 11:00-1:50
  • Roughly speaking, lectures will go from 11:00-12:30. Then break for 10 minutes, resuming 12:40-1:50
  •  The lecture slides will be posted before class on the content calendar.
  •  You may interrupt lecture to ask questions, make comments or express doubts.
  •  All lectures will be recorded and posted for students to watch when they want (podcast).

Attendance

Lecture Attendance:

I will not be taking attendance in lecture.

Discussion Attendance:

We will be taking attendance during discussion and you will earn one point on the corresponding homework for attending discussion.

Office hours

The instructor, TAs and tutors will hold office hours (locations TBD). During office hours, you can ask questions about lecture or homework. There may be other students there from different groups. It is okay to share some strategies and hints but it is discouraged to share your answers directly with other students. Office hours are a great way to get ideas and hints on how to start and finish the homework. This class is challenging and it is recommended to attend office hours in order to succeed.

 

 

Tests

There will be two (asynchronous) tests. 

Test 1: Graph algorithms and prereqs (Friday week 2)

 

Test 2: Greedy (Friday week 4)

 

These will be canvas quizzes that you can complete online.

They will be released on Thursday of weeks 2 and 4 and due on the next day (friday)

It will be timed (60 minutes).

The types of questions will be multiple choice, fill in the blanks, true/false and algorithm trace-throughs.

 

Midterm

Midterm 1: Graph algorithms and shortest paths (Thursday week 3)

The midterm will be held in person during the last part of class time.

I will end class around 12 and you will have from 12:15-1:50 to complete the exam.

 

Homework: 

Homework will be assigned on this website and you will upload your homework via Gradescope.

You may work in groups of size 1-3.

You may hand in your homework up to 24 hours late with a penalty of 1 point. No late submission accepted after 24 hours. 

 

It is required to type your homework. (using latex, word, ....) (Figures can be hand-drawn.)

Points will be taken off for hand-written homework.

 

Regrade Policy:

Please make regrade requests on gradescope. Regrade requests should be open for 4 days. The entire problem will be reevaluated so grades may go down. Please only make a regrade request if you believe that the assignment was graded incorrectly. If you would like to understand how the assignment was graded please book a one-on-one session or bring it up during office hours.

Standards for HOMEWORK assignments:

Most required assignments will be mathematical or theoretical in nature, involving designing and analyzing an algorithm. Although some assignments will require students to design and analyze pseudo-code programs, no implementation will be needed to complete these assignments. However see below for algorithm experiments. Grading of all problems (homework and exam) will be both on the basis of correctness and on logical consistency and completeness, i.e., “mathematical style”. It is your obligation to provide a compelling argument that forces the reader to believe the result, not just notes from which an argument could be constructed. In particular, the correct formulas or pseudo-code are not a complete solution by themselves; their significance and the logic of their application need to be explained. 

When giving an algorithm, the following three things should always be included, unless the problem explicitly says not to: 

    • a clear and complete description of your algorithm, including a high-level description; 

    • a correctness proof, showing why the algorithm solves the problem in question; 

    • a time analysis, giving the worst-case run-time (up to order, in O-notation). 

Descriptions need to be unambiguous. You should be able to give the description to any other student and have them easily implement a correct program from it. Proofs need to be completely clear, completely unambiguous, and logically compelling, but can be in high-level mathematical English. Time analysis needs to give a true upper bound on the time taken by the algorithm, in O notation. You need not argue that the bound is tight, but your grade will be partially based on how fast you show your algorithm is, not just how fast it really is. So if your algorithm takes time O(n^2) and you claim it is O(n^3), this is also correct, but you will be graded on efficiency as if your algorithm really took Ω(n^3) time. Some relaxation of this rule will apply to problems of a computational nature, where you are merely expected to present a solution and give some informal justification. Such problems will be designated by key phrases such as “Find a solution and justify your answer.”

 

Collaboration Guidelines:

Students are encouraged to collaborate on homework assignments. You may work in groups of up to two students. Your group will submit one assignment and gradescope will give you the opportunity to add all of your group members to the assignment. Groups do not have to be the same people for every assignment. You can change group members any time.

If you are discussing problems with students outside of your group, please only share hints and basic techniques. DO NOT share your answers or allow other students to copy your written work. The bottom line is to submit YOUR OWN work. If we find that your work is too similar to another group's then you may be suspected of an academic integrity violation.

 

Final Examination:

The final examination will be held at the date and time stated in the course calendar. It is your responsibility to ensure that you do not have a schedule conflict involving the final examination.

Grading:

Course grades will be computed using the best of the following options:

Option 1:


4 Homeworks: 9% each,
2 tests: 7% each,
Midterm: 18%
Final Exam:  32%

Option 2:

4 Homeworks: 9% each,
Best test: 7%,
Midterm: 18%
Final Exam:  39%

Option 3:

3 Best Homeworks: 10% each, (drop lowest homework)
2 tests: 7% each,
Midterm: 18%
Final Exam:  38%

Option 4:

4 Homeworks: 12% each,
2 tests: 7% each,
Midterm: 0% (drop midterm)
Final Exam:  38%

Tentative Grade Scale:            Your final grade will be based on the following scale. (You will earn the grade in the table based on your numerical score or higher.) 

 A+        A          A-        B+        B          B-        C+       C            C- 

 97        93        89        85        81        77        73        69        65        

 

Textbook:        

    (required text.) Algorithms, by Dasgupta, Papadimitriou, Vazirani        

    (optional text.) Algorithm Design, by Jon Kleinberg, Éva Tardos

Late or Missed Assignments/Missed Exam Policy

Late Homework:
You may hand in your homework up to 24 hours late with a penalty of 1 point.

Exams:
Other than extenuating circumstances, there is no credit for late or missed exams.

Academic Integrity

In this course we expect students to adhere to the UC San Diego Integrity of Scholarship Policy.   This means that you will complete your work honestly, with integrity, and support and environment of integrity within the class for which you are tutoring.  Some examples of specific ways this policy applies to CSE 101 include:

  • Do not discuss solutions to homework problems with people besides your homework partner (except during office hours, with the instructional team).
  • Do not share written solutions with other groups.
  • Do not collaborate or copy exams.
  • Follow the golden rule for AI:  Always give credit for any outside help on any assignment, except for those whose job it is to help you (Instructors, TAs, tutors, the textbook, and class handouts)
  • You should not attempt to search for homework solutions or exam solutions online or in sources outside of the course content. (Example: you should not consult content from CSE 101 of past quarters.) If you accidentally stumble upon a homework solution in such an outside source you should cite it in your homework solution. If your solution proves to be too similar to the cited one, you may lose credit on the problem, however failure to cite the other solution will be treated as academic dishonesty.
  • Note on ChatGPT and other GenAI software: Inputting homework or exam questions into ChatGPT or any other GenAI software and turning in the answer that is given is considered an Academic integrity violation. As with any other resource, I expect your words and work to be your own.
  • Please let me know if you have any questions about these guidelines and if you are unsure if something is considered a violation, you can always ask.

 

Diversity and Inclusion

We are committed to fostering a learning environment for this course that supports a diversity of thoughts, perspectives and experiences, and respects your identities (including race, ethnicity, heritage, gender, sex, class, sexuality, religion, ability, age, educational background, etc.).  Our goal is to create a diverse and inclusive learning environment where all students feel comfortable and can thrive. 

Our instructional staff will make a concerted effort to be welcoming and inclusive to the wide diversity of students in this course.  If there is a way we can make you feel more included please let one of the course staff know, via email/discussion board or during/after lecture/office hours.  Our learning about diverse perspectives and identities is an ongoing process, and we welcome your perspectives and input. 

We also expect that you, as a student in this course, will honor and respect your classmates, abiding by the UCSD Principles of Community (https://ucsd.edu/about/principles.html).  Please understand that others’ backgrounds, perspectives and experiences may be different than your own, and help us to build an environment where everyone is respected and feels comfortable.

If you experience any sort of harassment or discrimination, please contact the instructor as soon as possible.   If you prefer to speak with someone outside of the course, please contact the Office of Prevention of Harassment and Discrimination: https://ophd.ucsd.edu/.  

Students with Disabilities

We aim to create an environment in which all students can succeed in this course.  If you have a disability, please contact the Office for Students with Disability (OSD), which is located in University Center 202 behind Center Hall, to discuss appropriate accommodations right away.  We will work to provide you with the accommodations you need, but you must first provide a current Authorization for Accommodation (AFA) letter issued by the OSD. You are required to present their AFA letters to Faculty (please make arrangements to contact me privately) and to the OSD Liaison in the department in advance so that accommodations may be arranged.

Basic Needs/Food Insecurities

If you are experiencing any basic needs insecurities (food, housing, financial resources), there are resources available on campus to help, including The Hub and the Triton Food Pantry.  Please visit http://thehub.ucsd.edu/ for more information.

Course Summary:

Course Summary
Date Details Due