Code Monkey home page Code Monkey logo

tweet-generator's Introduction

CS 1.2: Intro to Data Structures

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.

Repository Setup

⚠️ Important: Please follow these instructions exactly to set up your clone of this course repository.

Schedule

Course Dates: Monday, October 21 – Wednesday, December 11, 2019 (7.5 weeks)

Class Times: Monday & Wednesday at 1:30-3:20pm (section A) or 3:30–5:20pm (section B)

Class Date Topics
1 Mon, Oct 21 Strings & Random Numbers
2 Wed, Oct 23 Histogram Data Structures
3 Mon, Oct 28 Probability & Sampling
4 Wed, Oct 30 Flask Web App Development
5 Mon, Nov 4 Application Architecture
6 Wed, Nov 6 Generating Sentences
7 Mon, Nov 11 Arrays & Linked Lists
8 Wed, Nov 13 Linked List Algorithm Analysis
9 Mon, Nov 18 Hash Tables
10 Wed, Nov 20 Hash Table Algorithm Analysis
11 Mon, Nov 25 Project Lab Day
Wed, Nov 27 No Class (Thanksgiving Break)
12 Mon, Dec 2 Higher Order Markov Chains
13 Wed, Dec 4 Regular Expressions
14 Mon, Dec 9 Time to Tweet & Launch Day!
15 Wed, Dec 11 Activity To Be Determined

Prerequisites

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

Learning Objectives

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

  1. Create Python programs that read and write text files and manipulate strings
  2. Build web apps with the Flask framework and deploy to the web
  3. Construct and sample probability distributions based on observed word frequencies
  4. Create Markov language models and use them to generate new sentences
  5. Use unit tests that assert correct behavior of functions and classes
  6. Implement core data structures including singly linked lists and hash tables
  7. Analyze the complexity of iterative algorithms and data structures with visual loop counting

Project Tutorial

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

Evaluation

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

  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences
  • Complete the required project tutorial
  • Pass the project according to the associated project rubric
  • Pass the summative assessment (final exam)

Attendance

Just like any job, attendance at Make School is required and a key component of your success. Attendance is being onsite from 9:30am to 5:30pm each day, attending all scheduled sessions including classes, huddles, coaching and school meetings, and working in the study labs when not in a scheduled session. Working onsite allows you to learn with your peers, have access to support from TAs, instructors and others, and is vital to your learning.

Attendance requirements for scheduled sessions are:

  • No more than two unexcused absences ("no-call-no-shows") per term in any scheduled session.
  • No more than four excused absences (communicated in advance) per term in any scheduled session.

Failure to meet these requirements will result in a Participation Improvement Plan (PIP). Failure to improve after the PIP is cause for not being allowed to continue at Make School.

Make School Policies

tweet-generator's People

Contributors

neptunius avatar kevin-meyers avatar droxey avatar ibirnam avatar

Watchers

James Cloos avatar  avatar

tweet-generator's Issues

Code Review of Hashtables

  • I encourage you to add run time analysis of each method to push your understanding of hash tables.
  • Great job completing stretch challenges, especially adding the useful subscript-able methods. I recommend trying alternative collision resolution strategies such as linear probing to push your understanding of the how this data structure works!

Tweet Generator Final Project Submission

  • If you clean your source text from symbols and use regex effectively you will have much better accuracy when generating sentences.
  • frequency() method in listogram.py file supposed to return 0 if word not found but you are rasing value error which causing the test failing.
  • Also, there might be issue in your or add_count() method. so test_entries test is failing
  • One of your import files doesn't exist in the folder so I could not run your markov chain locally but seems like it is working on the web. This is the import line
    from data_struct_algo.queues.circular_buffer import CircularBuffer
  • But great work on building nth order markov chain

Code Review of Tweet Generator Submission 2

  • All tests pass with no errors, great job!
  • Replace does not work. This is due to using == instead of assigning a new value to current.data. Additionally, you do not break out of the loop and return, so it will always get to the end of the linked list, see that current is None, and raise an error.
  • Correct for all annotations
  • Great job completing stretch challenges!

Tweet Generator Project Check in

Random dictionary words:

  • It would be better to use calculating the length of the dictionary instead of using a fixed number
  • If you add if statement in your main function to check the args in the terminal

Histogram:

  • I don't think you need a Node class to create Histogram class
  • Dont forget to add comments for complex lines of code or docstring for the function

Sample words by frequency:

  • I couldn’t run the file, make sure to include the
  • Add docstrings to your functions some of them seems too complicated to understand

Web application

  • Make sure you are using right syntax when you call an external function from other files

Markov chain

  • Add docstrings to your functions some of them seems too complicated to understand
  • Add comments to explain the complex lines e.g. line 29 in your Markov chain class
    self._word_pointers = KeyDefaultDict(lambda x: self._new_word(x))
  • Don't forget to close the file in your read_file() function on line 40, don't forget to have return statement for your list of words

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.