Coder Social home page Coder Social logo

cs-1.3-core-data-structures's Introduction

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.

Why you should know this

Data structures are the building blocks of computer science. It's the foundation that allows engineers to store and manipulate data. Once you have a place to store the data, if you need to find data or sort it in a specific way, you'll need search algorithms in order to do that.

Implementations of these concepts are how some of the largest tech companies in the world were built. Displaying relevant search results and finding friends and peers on social networks would be impossible without these core concepts. They're also the most common topics for software engineering interviews, and leveling up your knowledge on these topics is required to nail that technical interview!

Important Links

Schedule

Course Dates: Monday, March 30 – Wednesday, May 13, 2020 (7 weeks)

Class Times: Monday and Wednesday at 2:30–5:20pm(Section A) or Tuesday & Thursday at some time (Section B)

Class Date by Section Review of Prior Topic New Topic & Challenges Quiz or Deliverable Due
1 A: Mon, March 30
B: Tue, March 31
N/A Number Bases N/A
2 A: Wed, April 1
B: Thu, April 2
Number Bases Review Recursion & Search Algorithms N/A
3 A: Mon, April 6
B: Tue, April 7
Search Algorithms Review Recursion & Search Algorithms II N/A
4 A: Wed, April 8
B: Thu, April 9
N/A String Algorithms Due: Number Bases & Search Algorithms
5 A: Mon, April 13
B: Tue, April 14
String Algorithms Review Arrays & Linked Lists Quiz: 1
6 A: Wed, April 15
B: Thu, April 16
Linked Lists Review Technical Article Kickoff & Lists, Stacks & Queues Due: Palindromes & String Algorithms
7 A: Mon, April 20
B: Tue, April 21
Technical Article Peer Review & Stacks & Queues Review Maps & Hash Tables Quiz: 2
8 A: Wed, April 22
B: Thu, April 23
Hash Tables Review Trees & Binary Search Trees Due: Lists, Stacks & Queues
9 A: Mon, April 27
B: Tue, April 28
Binary Search Trees Review Tree Traversals N/A
10 A: Wed, April 29
B: Thu, April 30
Tree Traversals Review Lab Day Due: Hash Tables & Article Draft
11 A: Mon, May 4
B: Tue, May 5
N/A Sets Due: Trees & Tree Traversals
12 A: Wed, May 6
B: Thu, May 7
Sets Review Word Jumble Project Quiz: 3
13 A: Mon, May 11
B: Tue, May 12
Lab Day N/A Due: Sets & Set Operations
14 A: Wed, May 13
B: Thu, May 14
Lab Day N/A Due: Article & Word Jumble Project

Prerequisites

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

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

Assignments

Coding Challenges

Each lesson has an associated set of coding challenges with starter code and unit tests provided. Full details can be found in the "Challenges" section of each lesson linked in the schedule above. You will submit each coding challenge on Gradescope in its own repo.

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.

Submissions

Completion of coding challenges will be assessed according to the associated coding challenge rubrics.

To pass each submission, students must earn the required number of points or higher indicated on the associated rubric. Note that all points within one submission are fungible (that is, interchangeable) and so if one portion of work is below the "Met All Expectations" column of the rubric, another portion of work submitted can "Exceed Expectations" (generally by completing stretch challenges) to earn an extra point to make up for the missing one. Therefore, it's wise to complete stretch challenges as "insurance" in case some work does not meet expectations.

Another way to think of the submissions is a game where your goal is to earn enough points to pass in whatever way you see fit, with rubrics as the rules of the game that you can optimize against and "win" to pass the course.

The instructor or teaching assistants will review students' submissions, then share feedback with the student through Gradescope. Feedback will include their status on that submission (that is, whether their work is passing the rubric or the student needs to improve and resubmit their work to pass).

Submissions received after the due date will not be considered unless the instructor has approved an extension.

Evaluation

To pass this course, students must meet the following requirements:

  • Complete the required coding challenges (you must attempt all coding challenges but can drop one that isn't the final word jumble project)
  • Pass the coding challenges according to the associated coding challenge rubrics
  • Complete all coding challenges by the due dates above
  • Complete all lab deliverables by the end of class
  • Pass all quizzes
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

There will be a total of 3 quizzes. If you do not pass a quiz the first time you will be given some small assignments and a recommendation on what to study. You will be given a week to complete these and after you have completed them you can retake the quiz questions you missed to get your overall score up to passing for that quiz.

Make School Course Policies

cs-1.3-core-data-structures's People

Contributors

caocmai avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.