/CS-1.3

A collection of homework & coursework for CS 1.3

CS 1.3: Core Data Structures & Algorithms

Course Description

This course explores the foundations of computer science including discrete mathematics, abstract data types, data structures, and algorithm analysis and design. Students will compare and contrast iterative and recursive algorithms to analyze design and performance tradeoffs.

Students will implement and test data structures including lists, stacks, queues, sets, maps, and trees. Students will then apply these to real-world problems like phone call routing to understand their tradeoffs. Students will also write technical blog articles about these topics to deepen understanding, improve technical writing, and bolster their online presence as knowledgeable and proficient software engineers.

Learning Outcomes

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

  1. Implement, compare and contrast iterative and recursive algorithms.
  2. Analyze best-case and worst-case time and space complexity of an algorithm.
  3. Implement several abstract data types and data structures including linked lists, stacks, queues, hash tables, maps, sets, and binary search trees.
  4. Implement tree traversal algorithms: depth-first and breadth-first ordering.
  5. Write technical articles to deepen understanding and demonstrate mastery.

Prerequisites

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


Course Specifics

Course Delivery: online | 7 weeks | 14 sessions

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

Schedule

Course Dates: Tuesday, March 30 – Thursday, May 13, 2021 (7 weeks)

Class Times:

  • Section A: Tuesday and Thursday at 9:30–12:15pm PT (13 class sessions)
  • Section B: Tuesday and Thursday at 2:30–5:15pm PT (13 class sessions)

Class Date Topics Assignments
1 Tue, Mar 30 Number Bases Module 1
due Mon, Apr 5 @ 11pm PT
- Thu, Apr 1 No Class - Cesar Chavez
2 Tue, Apr 6 Linked Lists Module 2
due Fri, Apr 9 @ 11pm PT
3 Thu, Apr 8 Stacks & Queues Module 3
due Mon, Apr 12 @ 11pm PT
4 Tue, Apr 13 Algorithm Analysis Module 4
due Fri, Apr 16 @ 11pm PT
5 Thu, Apr 15 Hash Tables Module 5
due Mon, Apr 19 @ 11pm PT
6 Tue, Apr 20 Recursion Module 6
due Fri, Apr 23 @ 11pm PT
7 Thu, Apr 22 Trees Module 7
due Fri, Apr 30 @ 11pm PT
8 Tue, Apr 27 Trees
9 Thu, Apr 29 Graphs Module 8
due Fri, May 7 @ 11pm PT
10 Tue, May 4 Graphs
11 Thu, May 6 Algorithm Optimization Technical Article
due Thur, May 13 @ 11pm PT
12 Tue, May 11 Algorithm Optimization
13 Thu, May 13 Lab Day

Assignments

Coding Modules

Each lesson will have an associated module consisting of review, conceptual, and coding activities as well as interview prep related to the topic. At the end of each week you will turn your module work into gradescope for feedback and a score.

Technical Article

Students will also write a technical article about a topic related to course content to deepen their understanding, improve their technical writing skills, and demonstrate mastery of computer science, which will bolster their online presence as knowledgeable and proficient software engineers. Refer to the technical article guidelines for more information about article requirements and detailed tips on how to select a topic related to computer science, research the topic, create an outline, write your article, cite all sources of borrowed material, and provide feedback to other students.

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:

  • Pass all modules with a score 70% or higher
  • Your lowest module will be droppered
  • Complete and publish the Technical Article by the end of the term
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

Late Policy

  • The deadline for on-time submission is 11pm PT on the due date.
  • The hard deadline for late submission is 11pm on 2 days past the original due date.
  • You are given 3 “grace days” (self-granted extensions) which you can use to give yourself extra time without penalty.
  • Late submissions (penalty or not) are not accepted after the hard deadline.
  • No late submissions (penalty or not) will be accepted for the Technical Article.
  • Instructor-granted extensions are only considered after all grace days are used and only given in exceptional situations.

Self-Granted Extensions ("Grace Days")

Grace days are “self-granted extensions”. One grace day extends the deadline by 24 hours.

We recognize that the competing demands of a challenging courseload and extracurriculars can be an unforgiving landscape and even the most careful of plans can be derailed by an unforeseen event. When the unexpected happens – you get the flu, the network goes down, you delete a critical file, a personal situation escalates – you would usually have to request an extension from the staff. Instead you are given the privilege to grant yourself an extension without our oversight.

Grace days are your means to cover real problems: illness, stolen laptops, bike accidents, and so on. We don't intend them to cover ski trips, overcommitment, or poor planning, but you can use them as you choose and we don't check up on you. You may use all of your grace days for one assignment, distribute them across several assignments, or even better, hoard them for a crisis that thankfully never comes.

This late policy below is largely copied from that for CS107 at Stanford, originally written by Julie Zelenski.

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