Course Syllabus
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
- Undergraduate TAs / Tutors
- Bryan Rodriguez. (bredrodr@ucsc.edu)
- Danielle Laganiere (dlaganie@ucsc.edu)
- Kevin Pinney (kpinney@ucsc.edu)
- Nathan MacLeod (nmacleod@ucsc.edu)
- Neal Chokshi (nealc@ucsc.edu)
- Xin Yan (xyan87@ucsc.edu)
- MSG / MSI
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
Office Hrs: Tianyi Luo 1:30-2:00 PM
Office Hrs: Tianyi Luo 2:00-3:00 PM
Nathan MacLeod 3:00-4:00 PM Section: Tianyi Luo 7:10-8:15 PM |
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
Drop In Tutoring: Danielle Laganiere (not holding finals week) 3:30-4:30pm
Drop In Tutoring: Bryan Rodriguez 5:10pm - 6:10pm
|
Office Hrs Saeed Kargar 8:00 - 9:00 AM
Section: Saeed Kargar 9:20-10:25 AM Tutors: Danielle Laganiere Bryan Rodriguez Nathan MacLeod
Office Hrs Saeed Kargar 10:30 - 11:30 AM
Office Hrs Saeed Kargar 11:30 - 12:30 AM Drop In Tutoring: Kevin Pinney 12:00-1:00 PM
Drop In Tutoring: Neal Chokshi 4:30-5:30 PM
|
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
Section: Priyanka Mondal 3:20-4:25 PM Tutors: Neal Chokshi Xin Yan Kevin Pinney
Drop In Tutoring: Bryan Rodriguez 5:10pm - 6:10pm MSI: Tre Braswell 7:00-8:00 PM |
Office Hrs: Priyanka Mondal 9:00-10:00 AM Office Hrs: Priyanka Mondal 10:00-11:00 AM
C/C++ Drop in Tutoring: Kevin Pinney 12:00-1:00 PM
Drop In Tutoring: Nathan MacLeod 3:00-4:00 PM
Drop In Tutoring: Neal Chokshi 4:30-5:30 PM |
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 | - | - | |||
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.
- Week 3 - Linked list
- Week 5 - Stacks
- Week 7 Heaps and BSTs
- Week 9 - Arrays and simple data structures
- Final - Graphs
Course Summary:
Date | Details | Due |
---|---|---|