Giter Site home page Giter Site 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 apply and test data structures like lists, stacks, queues, sets, maps, and trees in real-world problems such as phone call routing. Students will also write technical blog articles about these topics in order to deepen their understanding and gain valuable 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!

Prerequisites:

Learning Outcomes

Students by the end of the course will be able to ...

  1. Compare and contrast iterative and recursive algorithms
  2. Analyze the complexity of an algorithm to determine its runtime
  3. Implement various data structures such as stacks, queues, sets, maps, and trees
  4. Implement iterative and recursive sorting algorithms
  5. Build out different types of tree traversals
  6. Practice writing technical articles

Schedule

Course Dates: Wednesday, May 29 – Wednesday, July 3, 2019 (6 weeks)

Class Times: Monday & Wednesday at 3:30–5:20pm (11 class sessions)

Class Date Review of Prior Topic New Topic & Challenges
1 Wed, May 29 Number Bases
2 Mon, June 3 Number Bases Review Recursion & Search Algorithms
3 Wed, June 5 Search Algorithms Review String Algorithms
4 Mon, June 10 String Algorithms Review Arrays & Linked Lists
5 Wed, June 12 Linked Lists Review Lists, Stacks & Queues
6 Mon, June 17 Stacks & Queues Review Maps & Hash Tables
7 Wed, June 19 Maps & Hash Tables Review Trees & Binary Search Trees
8 Mon, June 24 Binary Search Trees Review Tree Traversals
9 Wed, June 26 Tree Traversals Review Sets & Circular Buffers
10 Mon, July 1 Sets Review Technical Article Peer Review
11 Wed, July 3 Word Jumble Challenge

Repository Setup Instructions

Please follow these instructions exactly to set up your fork of this repository.

Class Assignments

Projects

Evaluation

To pass this course you must meet the following requirements:

  • Complete all required tutorials
  • Pass all projects according to the associated project rubric
  • Pass the final summative assessment >=75%
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

Make School Course Policies

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

Contributors

aespaldi avatar avery246813579 avatar dalnk avatar ibirnam avatar neptunius avatar olyve avatar thecodingsophist avatar

Watchers

 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.