Introduction to Data Structures and Algorithms

CSE101 Introduction to Data Structures and Algorithms

Course Staff:

  • Instructor: Prof. Davis (davisje@ucsc.edu)
    • Office hours: (immediately after class I take questions until there are no more)
  • Graduate TAs
    • Tianyi Luo                (tluo6@ucsc.edu) 
    • Priyanka Mondal     (pmondal@ucsc.edu)
    • Saeed Kargar           (skargar@ucsc.edu)
  • Undergraduate TAs / Tutors
  • MSG / MSI
    • Jeffrey Zhang           (jzhan357@ucsc.edu), MSG, Tutortrac
    • Tre Braswell              (tmbraswe@ucsc.edu), discord ID bobbob#0030

Office Hours:

Please also check Piazza for any sudden schedule changes!

Monday Tuesday Wednesday Thursday Friday

 

 

Drop In Tutoring:

Kevin Pinney

12:00-1:00 PM

Zoom Link

 

Office Hrs: Tianyi Luo

1:30-2:00 PM

Zoom Link

 

Office Hrs: Tianyi Luo

2:00-3:00 PM

Zoom Link

 

 

Nathan MacLeod

3:00-4:00 PM

Zoom Link

Section: Tianyi Luo

7:10-8:15 PM

Zoom Link

 

Lecture:

8:00-9:35 AM

 

MSI: Tre Braswell 

12:00-1:15 PM

1:30-2:45 PM

 

Drop In Tutoring: Xin Yan

1:00-2:00 PM

Zoom Link

 

Drop In Tutoring:

Danielle Laganiere

(not holding finals week)

3:30-4:30pm

Zoom Link

 

Drop In Tutoring:

Bryan Rodriguez

5:10pm - 6:10pm

Zoom Link

 

 

 

Office Hrs Saeed Kargar

8:00 - 9:00 AM

Zoom Link (Passcode: 448804)

 

Section: Saeed Kargar

9:20-10:25 AM

Zoom Link (Passcode: 863948)

Tutors:

Danielle Laganiere

Bryan Rodriguez

Nathan MacLeod

 

Office Hrs Saeed Kargar

10:30 - 11:30 AM

Zoom Link (Passcode: 923393)

 

Office Hrs Saeed Kargar

11:30 - 12:30 AM

Zoom Link (Passcode: 923393)

Drop In Tutoring:

Kevin Pinney

12:00-1:00 PM

Zoom Link

 

Drop In Tutoring:

Neal Chokshi

4:30-5:30 PM

Zoom Link

 

 

Lecture:

8:00-9:35 AM

 

MSI: Tre Braswell 

12:00-1:15 PM

2:00-3:15 PM

 

Drop In Tutoring: Xin Yan

1:00-2:00 PM

Zoom Link

 

Section: Priyanka Mondal

3:20-4:25 PM

Zoom Link

Tutors:

Neal Chokshi

Xin Yan

Kevin Pinney

 

Drop In Tutoring:

Bryan Rodriguez

5:10pm - 6:10pm

Zoom Link

MSI: Tre Braswell 

7:00-8:00 PM

Office Hrs: Priyanka Mondal

9:00-10:00 AM

Zoom Link

Office Hrs: Priyanka Mondal

10:00-11:00 AM

Zoom Link

 

C/C++ Drop in Tutoring:

Kevin Pinney

12:00-1:00 PM

Zoom Link

 

Drop In Tutoring:

Nathan MacLeod

3:00-4:00 PM

Zoom Link

 

Drop In Tutoring:

Neal Chokshi

4:30-5:30 PM

Zoom Link

Zoom:

Lecture Tu/Th: 8:00-9:35am

Piazza:

FAQ:

  • Is there a section during the first week of classes?
    • NO
  • Is this online?
    • Of course. All online and Zoom.
  • I live in the wrong time zone and 8am is the middle of the night? Do I have to come?
    • I will record everything. Lecture time is flexible. Generally this fails to work properly twice a quarter. You will miss those lectures, its the price of flexibility.
  • I live in CA and 8am is the middle of (my) night, do I have to come?
    • I am still deciding my policy on this. On the one hand I like you to have freedom. On the other hand, I am certain that if I require attendance a larger number of people will pass the class. I want to be kind, and its a question of which is kinder.
  • What about the discussion sections, do I have to go to those?
    • Yes. Your discussion section is required since exams will be administered there. 
  • Do I have to buy the book?
    • The book is "optional". We will use codio for assignments and exams, and you do need to pay for that service if you stay in the course beyond week 3.
  • This is also offered by Prof. Tantalo during Win21. Is it the same?
    • No. I will copy from Prof. Sesh. The topics are the same. The specifics of assignments are different.
  • Can I have a permission code?
    • Instructors do not have permission codes. This was a policy change. Its useless to email me. You have to wait until waitlist is active and get on that. If you have weird prereq issues I think your only hope is the advising office.
  • I have other special cases I need to ask about.
    • If it can wait until we get class started please wait. 90% of questions repeat and are not immediately actionable.

Course Textbooks

Lecture Schedule:

Date Topics HWs Tests Slides Handout Reference
Week 1 1/5 Introduction - -

Intro

Lecture 1

1/7 Linked lists Lecture 2
Week 2 1/12 Linked lists continued - Lecture 3
1/14 Stacks, recursion through stacks Lecture 4
Week 3 1/19 Recursion to generate all substrings, Asymptotic analysis, Big-Oh notation Linked Lists
Due Jan 24 - 12pm
Linked list Lecture 5   Chap 3, CLRS
1/21 linear time, constant time, analysis of simple sorting algorithms Lecture 6 Chap 3, CLRS
Week 4 1/26 Binary search analysis, starting binary heaps - - Lecture 7 Heap viz by Melezinek Chap 6, CLRS
1/28 Binary heaps Lecture 8 Chap 6, CLRS
Week 5 2/2 BSTs continued

Recursion and stacks

Due - Feb 7th Noon

Stacks Lecture 9  BST viz by Melezinek Chap 12, CLRS
2/4 Tree traversals, self-balancing BSTs Lecture 10 Chap 12, 13 CLRS, wikipedia
Week 6 2/9 AVL trees - - Lecture 11 AVL viz by Galles Chap 12, 13 CLRS
2/11 Hash tables Lecture 12 Chap 11, CLRS
Week 7 2/16 Merge sort and quicksort Trees Heaps and BSTs Lecture 13   Chap 2.3, 4, 7, CLRS 
2/18 Solving algorithms problems – I Lecture 14  
Week 8 2/23 Solving algorithms problems - II - - Lecture 15
2/25 Graphs and BFS Lecture 16 Chap 22, CLRS
Week 9 3/2

Loop invariants and proving BFS correctness

(Actual: Life after college, jobs, and grad school)

Graphs Arrays and simple data structures Lecture 17   Chap 2, 22, CLRS
3/4

Single-source shortest path algorithms

(Actual: Watch in Yuja - Loop invariants and proving BFS correctness)

Lecture 18 Chap 24, CLRS
Week 10 3/9

DFS

(Now planned: Single source shortest path algorithms)

- - Lecture 19 Chap 22, CLRS
3/11

Life after college: jobs and grad school

(Now planned: DFS)

Finals Week 3/16 - - Graphs      
3/18 -

Grading

  • Tests
    • There are 5 of them (3 in Codio where you code, 2 in Canvas written style)
    • These determine whether you pass the class or not
    • Details:
      • You get a set of questions in advance, on test day you get one of them
      • ~20 lines of code
      • Drop the worst test 
        • e.g. 5/10, 10/10, 7/10, 5/10, 10/10 = (5+10+7+10)/40=80%
      • score 70% or above and you insure at least a C
      • score 90% or above and you insure at least a B-
  • HW
    • There are 4 of them
    • These control A,B,C grade
    • Details:
      • ~ 100s of lines of code
      • Your code will be run against test cases, strict and tough
      • Drop the worst HW
      • score 50%, you get at least B-
      • score 80%, you get at least A-

Homework

You complete this in codio. This is a paid service (you can get a refund if you drop the class). It provides a virtual machine in a web page, so that we all have the same programming environment. Instructions to sign up for codio can be found at Codio Set Up. The details of these assignments will be in the codio system. 

  • Due Week 3 - Linked Lists
  • Due Week 5 - Recursion and stacks
  • Due Week 7 - Trees
  • Due Week 9 - Graphs

Exams

Some exams are also in codio with code answer, and some exams are in canvas with written answers. For exams 1,2,3 in codio, you write real code which must work. Example study questions which exactly match the exams will be provided in codio. For exams 4,5 you write psuedocode, the sample questions will be released in the Files section of Canvas, and you take the exam in Canvas. Exams are administered by TAs during section, thus everyone does not take the exam on the same days. For all exams, you open a full screen window and do your work there. You may not switch tabs or reference other digital content. You may reference your own handwritten notes.

Course Summary:

Date Details Due