Skip to content

Make-School-Courses/CS-1.3-Core-Data-Structures

Repository files navigation

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.

Prerequisites

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


Course Specifics

Course Delivery: Synchronous | 7 weeks | 18 sessions

Course Credits: Synchronous: 3 units | 37.5 Contact Hours/Term | 92 Non-Contact Hours/Term | 129.5 Total Hours/Term

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.

Schedule

Course Dates: Monday, May 31 – Friday, July 16, 2021 (7 weeks)

Class Times: Monday, Wednesday, Friday at 9:30am–11:15am (19 class sessions)

Class Date Topics Assignments Due
1 Mon, May 31 No Class - Memorial Day
- Wed, June 2 Algorithm Analysis
2 Fri, June 4 Lab Module 1
3 Mon, June 7 Linked Lists
4 Wed, June 9 Number Bases
5 Fri, June 11 Lab Module 2
6 Mon, June 14 Stacks & Queues
7 Wed, June 16 Recursion
8 Fri, June 18 Lab Module 3
9 Mon, June 21 Recursion
10 Wed, June 23 Hash Tables
11 Fri, June 25 Lab Module 4 (Midterm Modules 1-3 MUST be turned in)
12 Mon, June 28 Hash Tables
13 Wed, June 30 Trees
14 Fri, July 2 Lab Module 5
- Mon, July 5 No Class - Independence Day Observed
15 Wed, July 7 Trees
16 Fri, July 9 Lab Module 6
17 Mon, July 12 Graphs
18 Wed, July 14 Graphs
19 Fri, July 16 Algorithm Optimization & Lab Module 7 & Technical Article

[Module 1]: [Module 2]: [Module 3]: [Module 4]: [Module 5]: [Module 6]: [Module 7]: [Module 8]:

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.

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 dropped
  • 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

Course Policies and Format

  • This course will use a self paced format
  • You will be given recommended dates to turn assignments in to stay on track, but you can turn in any assignment later than the recommended date with no penalty provided Modules 1-3 are turned in no later than midterm (Fri June 25th) and modules 3-7 and the technical article are turned in no later than the last day of class (Fri July 16th)
  • You can resubmit any assignment after receiving feedback to improve your score provided it is turned in no later than the last day of class (Fri July 16th)
  • Assignments should be completed by the recommended date in the above schedules section in order to receive timely feedback. Students falling behind should connect with the instructor for help staying on pace!
  • The absolute last date to turn in Modules 1-3 is Fri June 25th and the last date to turn in modules 3-7 and the technical article is Fri July 16th
  • Any assignments not complete by the above midterm Fri June 25th and final day of class Fri July 16th dates will receive a score of 0
  • Lectures will be given during the first hour of class and will be optional (9:30 am - 10:30 am on M & W)
  • Labs will be during the last portion of the class and all of Friday sessions and attendance will be required (10:45 - 11:15 am M & W, 9:30 am - 11:15 am F)

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