Giter Site home page Giter Site logo

cs-1.2-how-data-structures-work's Introduction

CS 1.2: How Data Structures Work

Course Description

A project based course that looks under the hood at data structures and algorithms to see how they work. In addition to implementing these structures in an application; students will build them from scratch, analyze their complexity, and benchmark their performance to gain an understanding of their tradeoffs and when to use them in practice. 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 natural language processing techniques.

Schedule

Term 2 Course Dates: Monday, October 22 โ€“ Friday, December 14, 2018 (7 weeks)

Class Times: Tuesday & Thursday 1:30-3:20pm or 3:30โ€“5:20pm (14 class sessions)

Class Date Topics
1 Tuesday, October 23 Strings & Random Numbers
2 Thursday, October 25 Histogram Data Structures
3 Tuesday, October 30 Probability & Sampling
4 Thursday, November 1 Flask Web App Development
5 Tuesday, November 6 Application Architecture
6 Thursday, November 8 Generating Sentences
7 Tuesday, November 13 Arrays & Linked Lists
8 Thursday, November 15 Hash Tables
9 Tuesday, November 27 Algorithm Analysis
10 Thursday, November 29 Higher Order Markov Chains
11 Tuesday, December 4 Regular Expressions
12 Thursday, December 6 Parsing & Tokenization
13 Tuesday, December 11 Summative Assessment (Final Exam)
14 Thursday, December 13 TBD

Course Specifics

  • Weeks to Completion: 7
  • Total Seat Hours: 37.5 hours
  • Total Out-of-Class Hours: 75 hours
  • Total Hours: 112.5 hours
  • Units: 3 units
  • Delivery Method: Residential
  • Class Sessions: 13 classes, 7 labs

Prerequisites

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

  • CS 1.1: Programming Fundamentals

Learning Outcomes (Competencies)

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

  • write Python programs that can be run as scripts and imported as modules
  • read and write text files stored on disk, manipulate strings, and parse into words
  • build web apps with the Flask framework and deploy to the web using Heroku
  • construct and sample probability distributions based on observed word frequencies
  • create Markov language models and use them to generate new sentences
  • write library code organized into separate independent modules with low coupling
  • run unit tests that assert functions and classes exhibit the correct behavior
  • implement core data structures including singly linked list and hash table
  • analyze complexity of iterative algorithms and data structures with visual loop counting
  • benchmark data structure and algorithm performance to understand tradeoffs
  • use regular expressions to parse and clean up text and tokenize words and sentences

Project Tutorial

Students will complete the following guided project tutorial in this course:

Evaluation

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

  • No more than two unexcused absences ("no-call-no-shows")
  • No more than four excused absences (communicated in advance)
  • Make up all classwork from all absences
  • Finish all required tutorials and projects
  • Pass the summative assessment (final exam)

Make School Policies

Repository Setup

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

cs-1.2-how-data-structures-work's People

Contributors

neptunius 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.