/CS-1.2-Intro-Data-Structures

CS 1.2: Intro to Data Structures – Course Syllabus and Lessons

Primary LanguageJavaScript

CS 1.2: Introduction to Data Structures

Course Description

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 Specifics

Course Delivery: online | 7 weeks | 13 sessions

Course Credits: 3 units | 37.5 Seat Hours | 75 Total Hours

Learning Objectives

By the end of this course, students will be able to:

  1. Implement linear and non-linear data structures, including: stacks, queues, singly linked lists, hash tables, trees, and graphs.
  2. Understand the advantages and applications of different data structures.
  3. Implement iterative and recursive search and sorting algorithms.
  4. Analyze the time and space complexity of iterative and recursive algorithms.
  5. Solve open ended real-world and interview problems and select appropriate data structures/algorithms based on requirements.

Prerequisites

Students must pass the following course and demonstrate mastery of its competencies:

Class Schedule

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 PromptGradescope
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 PromptGradescope
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

Assignment Submissions

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.

Evaluation

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.

How to Get Help

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

Information Resources

Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:

Make School Course Policies