Lecture 1: Welcome!: CSE 373: Data Structures and Algorithms
Lecture 1: Welcome!: CSE 373: Data Structures and Algorithms
Lecture 1: Welcome!: CSE 373: Data Structures and Algorithms
Sections
- TAs = heroes
- Practice problems
- Different Explanations
- Sections start this week
Canvas
- Grades will be posted to Canvas at end of quarter
Office Hours
- Will be posted on Course Page
- Will start next week (at the latest)
Piazza
- If you were signed up for the course before this morning, you were added already.
- If not, you can find an add code on Canvas (or ask a member of staff)
- Announcements made via Piazza
- Great place to discuss questions with other students
- Will be monitored by course staff
- No posting of project code!
Textbook
- Optional
- Data Structures and Algorithm Analysis in Java by Mark Allen Weiss
Exams (45%)
- Midterm Exam – Friday July 26th in class (15%)
- Final Exam (30%)
- Two one-hour parts:
- In place of final section Thursday August 22
- In place of final lecture Friday August 23
If you have a conflict with any of those dates, email Robbie as soon as possible.
Algorithm
- A series of precise instructions guaranteed to produce a certain answer
- Examples from CSE 14X: binary search, merge sort
Start with the operations you want to do then define how those operations will play out on
whatever data is being stored
0 1 2 3 4
88.6 26.1 94.4
88.6 26.1 94.4 0 0
This class is all about implementing ADTs based on making the right design tradeoffs!
> A common topic in interview questions
Dub Street Burgers is implementing a new system for ticket (i.e. food order) management.
When a new ticket comes in, it is placed at the end of the set of tickets.
Food is prepared in approximately the same order it was requested, but sometimes tickets are
fulfilled out of order.
Let’s represent tickets as a list. Which of our ADT implementations should we use?
Why?
ArrayList
Creating a new ticket is very fast (as long as we don’t resize), and I want the cooks to be able to
see all the orders right away.
LinkedList
We’ll mostly be removing from the front of the list, which is much faster for the linkedlist (no
shifting), and I want finished orders to be removed fast so they aren’t distracting.