Coder Social home page Coder Social logo

mollyfeldman / p2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from programmingprogressions/p2

0.0 2.0 0.0 425 KB

Arrange programs in an order that is maximally useful for learning

License: MIT License

Makefile 3.46% Python 62.94% Shell 0.22% JavaScript 27.27% HTML 3.98% CSS 2.15%

p2's Introduction

This is a fork of Sharadh Kirshnamurthy's MEng project advised by Erik Andersen at Cornell's Educational Technology Lab.

P2: Programming Progressions

Introduction

Mission

To help educators and learners understand the progression of skills involved in transitioning from beginner to expert for any given programming problem set.

Components

  1. scr/cli.py: Entry point for the various sub-components. Exposes a number of sub-commands. To see them, type:
. ./venv/bin/activate
cd src
python cli.py --help

To see the usage of any subcommand, (e.g the order task) type:

python cli.py order --help

Documentation specific to how each subcommand works can be seen in the appropriate submodules. 2. src/visalize/app.py: Minimal Flask-app that serves the static files, as well as generated graph, snippets, etc.

Partial Ordering

See the order module for details on the partial ordering.

Getting Started

Prerequisites

We use GNU Make for... well, Makefile stuff. The code runs on Python 2.7, and the Makefile assumes virtualenv is installed. The Makefile uses UNIX-like paths: this may cause compatibility issues with certain Windows environments.

Installing

Clone the repository, and run make

git clone [email protected]:Sharadh/prog-square.git
make run

This will create the venv, install required packages (hat-tip to pip-tools for dependency compiling and management), and compute the partial ordering graph for the default dataset.

To start a web-server that lets you visualize the partial ordering generated:

make serve

This starts a web-server at localhost:5000 by default. Navigate to http://localhost:5000/home.

There is also a convenience endpoint that bundles the two above steps

make visualize

To run on a different dataset, just modify the SOURCE environment variable inline with the make command

SOURCE=data/hello make

The default dataset is the practice-python dataset of ~20 problems and their solutions.

Running on StackOverflow posts

The repository also exposes make targets to retrieve the most recent StackOverflow posts tagged python. To run the ordering analysis on these tasks, first pull the code snippets (into the data/so_temp directory), and then visualize this source.

make pull_so_recent
SOURCE=data/so_temp make visualize

Tests

There's no easy way to say this... tests are not up yet. Stay tuned (or better still, contribute some unit-tests!)

Currently, the only tests that are run are from the make lint endpoint: this runs the pep8 and flake8 linters against the *.py files in the src directory.

License

This project is licensed under the MIT license - see the LICENSE.md file for details

Contributors

p2's People

Contributors

mollyfeldman avatar sharadh 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.