This course looks under the hood at data structures and algorithms to see how arrays, linked lists and hash tables work. Students will build these structures from scratch, analyze complexity, and benchmark performance in an application to gain an understanding of real-world tradeoffs. Students will write scripts, functions, and library modules to use text processing tools like regular expressions, construct and sample probability distributions to create a Markov language model and gain insight into how grammar works and introductory natural language processing techniques.
Course Delivery: online | 7 weeks | 13 sessions
Course Credits: 3 units | 37.5 Seat Hours | 75 Total Hours
By the end of this course, students will be able to:
- Implement linear and non-linear data structures, including: stacks, queues, singly linked lists, hash tables, trees, and graphs.
- Understand the advantages and applications of different data structures.
- Implement iterative and recursive search and sorting algorithms.
- Analyze the time and space complexity of iterative and recursive algorithms.
- Solve open ended real-world and interview problems and select appropriate data structures/algorithms based on requirements.
Students must pass the following course and demonstrate mastery of its competencies:
Course Dates:
- Section A: Tuesday, January 19 – Thursday, March 4, 2021 (7 weeks)
- Section B: Wednesday, January 20 – Wednesday, March 3, 2021 (7 weeks)
Class Times:
- Section A: Tuesday and Thursday at 9:30am–12:15pm PST (13 class sessions)
- Section B: Monday and Wednesday at 2:30–5:15pm PST (13 class sessions)
Class | Date | Topics | Assignments |
---|---|---|---|
- | Section A: Mon, Jan 18 Section B: Tue, Jan 19 |
No Class - MLK Day | |
1 | Section A: Wed, Jan 20 Section B: Thu, Jan 21 |
Stacks & Queues | |
2 | Section A: Mon, Jan 25 Section B: Tue, Jan 26 |
Arrays & Linked Lists | Music Playlist Project Prompt • Gradescope due Tue, Feb 2 @ 11pm PST |
3 | Section A: Wed, Jan 27 Section B: Thu, Jan 28 |
Search Algorithms & Recursion | |
4 | Section A: Mon, Feb 1 Section B: Tue, Feb 2 |
Sorting Algorithms | |
5 | Section A: Wed, Feb 3 Section B: Thu, Feb 4 |
Review Day | Algorithms Problem Set Gradescope due Thu, Feb 11 @ 11pm PST |
6 | Section A: Mon, Feb 8 Section B: Tue, Feb 9 |
Hash Tables | |
7 | Section A: Wed, Feb 10 Section B: Thu, Feb 11 |
Hash Tables | |
8 | Section A: Mon, Feb 15 Section B: Tue, Feb 16 |
Trees | Frequency Counting Project Prompt • Gradescope due Fri, Feb 26 @ 11pm PST |
9 | Section A: Wed, Feb 17 Section B: Thu, Feb 18 |
Trees | |
10 | Section A: Mon, Feb 22 Section B: Tue, Feb 23 |
Graphs | |
11 | Section A: Wed, Feb 24 Section B: Thu, Feb 25 |
Graphs | Data Structures Problem Set Gradescope due Thu, Mar 4 @ 11pm PST |
12 | Section A: Mon, Mar 1 Section B: Tue, Mar 2 |
Algorithm Analysis | |
13 | Section A: Wed, Mar 3 Section B: Thu, Mar 4 |
Lab |
We will be using Gradescope, which allows us to provide fast and accurate feedback on your work. All assigned work will be submitted through Gradescope, and assignment and exam grades will be returned through Gradescope.
As soon as grades are posted, you will be notified immediately so that you can log in and see your feedback. You may also submit regrade requests if you feel we have made a mistake.
Your Gradescope login is your Make School email, and your password can be changed at https://gradescope.com/reset_password. The same link can be used if you need to set your password for the first time.
To pass this course you must meet the following requirements:
- Complete all in-class coding challenges.
- If a coding challenge is missing, you will need to request to receive a retake/extension.
- Pass all assignments with a score 70% or higher.
- All assignments are scored according to the associated assignment rubric.
- If an assignment is not passing, you will need to request to receive a retake/extension to bring you score up to passing.
- Actively participate in class and abide by the attendance policy.
- Make up all classwork from all absences.
Office Hours:
Instructor: By appointment. Contact your instructor through slack to set up an appointment
TAs: TA office hours can be found at make.sc/ta-schedule. If you cannot meet them during office hours, contact your TA through slack to see if they can meet outside of office hours.
Piazza:
The best way to get answers is to ask questions! Ask questions on Piazza so everyone can benefit from the response.
Ask a question on Piazza →
CoWork:
CoWork is a place to study with your peers with access to staff/TA support if needed.
Check your calendar for when CoWork is oferred, or contact Ian or Lisa. Join at make.sc/cowork-zoom
Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:
- Program Learning Outcomes - What you will achieve after finishing Make School, all courses are designed around these outcomes.
- Grading System - How grading is done at Make School
- Diversity and Inclusion Statement - Learn about Diversity and Inclusion at Make School
- Academic Honesty - Our policies around plagerism, cheating, and other forms of academic misconduct
- Attendance Policy - What we expect from you in terms of attendance for all classes at Make School
- Course Credit Policy - Our policy for how you obtain credit for your courses
- Disability Services (Academic Accommodations) - Services and accommodations we provide for students
- Online Learning Tutorial - How to succeed in online learning at Make School
- Student Handbook - Guidelines, policies, and resources for all Make School students