All Projects → alexmojaki → Futurecoder

alexmojaki / Futurecoder

Licence: mit
A platform for beginners to learn programming in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Futurecoder

Ziglearn
Repo for https://ziglearn.org content. Get up to speed with Zig quickly.
Stars: ✭ 135 (-62.81%)
Mutual labels:  learning, education, learning-by-doing
Tutorials
All of the code for my Medium articles
Stars: ✭ 92 (-74.66%)
Mutual labels:  learning, education, learning-by-doing
Teaching App Dev Swift
DEPRECATED. Instructor lesson plans that accompany Xcode projects, for guiding in-class experiential learning.
Stars: ✭ 699 (+92.56%)
Mutual labels:  learning, education, learning-by-doing
Carmel
The Open Digital Innovation Marketplace
Stars: ✭ 136 (-62.53%)
Mutual labels:  learning, education, learning-by-doing
udacity-iOS-nanodegrees
List of iOS Udacity Nanodegree programs with links to the free courses in their curricula
Stars: ✭ 52 (-85.67%)
Mutual labels:  learning, education
Blog
刘博文(Berwin),花名“玖五”,畅销书《深入浅出Vue.js》作者、Speaker、阿里巴巴集团前端技术专家,天猫双11大促会场消防员、现负责包含天猫双11在内的超大型营销活动的终端渲染架构与专项PM。
Stars: ✭ 3,773 (+939.39%)
Mutual labels:  learning, education
Web Dev For Beginners
24 Lessons, 12 Weeks, Get Started as a Web Developer
Stars: ✭ 39,380 (+10748.48%)
Mutual labels:  learning, education
Free Courses
A collection of free courses about programming 📖
Stars: ✭ 281 (-22.59%)
Mutual labels:  learning, education
Mnemosyne
Mnemosyne: efficient learning with powerful digital flash-cards.
Stars: ✭ 243 (-33.06%)
Mutual labels:  learning, education
-meta
📗 For goals, architecture of the program, and how-tos.
Stars: ✭ 26 (-92.84%)
Mutual labels:  learning, education
R
All Algorithms implemented in R
Stars: ✭ 294 (-19.01%)
Mutual labels:  learning, education
antares
Digital circuit learning platform
Stars: ✭ 15 (-95.87%)
Mutual labels:  learning, education
Guilds
Guilds de OSW
Stars: ✭ 38 (-89.53%)
Mutual labels:  learning, learning-by-doing
awesome-physics
🏄 A list of awesome resources I used to study Physics.
Stars: ✭ 27 (-92.56%)
Mutual labels:  learning, education
P5.js
p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. http://twitter.com/p5xjs —
Stars: ✭ 16,542 (+4457.02%)
Mutual labels:  learning, education
swift-algorithms-data-structs
📒 Algorithms and Data Structures in Swift. The used approach attempts to fully utilize the Swift Standard Library and Protocol-Oriented paradigm.
Stars: ✭ 42 (-88.43%)
Mutual labels:  learning, education
50 Projects For React And The Static Web
⚛ 50 project ideas to learn by doing complete with project briefs, layout ideas, and resources!
Stars: ✭ 319 (-12.12%)
Mutual labels:  learning, learning-by-doing
Oppia
A free, online learning platform to make quality education accessible for all.
Stars: ✭ 4,361 (+1101.38%)
Mutual labels:  learning, education
Anki Android
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
Stars: ✭ 4,425 (+1119.01%)
Mutual labels:  learning, education
Learn Something Every Day
📝 A compilation of everything that I learn; Computer Science, Software Development, Engineering, Math, and Coding in General. Read the rendered results here ->
Stars: ✭ 362 (-0.28%)
Mutual labels:  learning, education

logo

futurecoder

This is a free platform/course for people to teach themselves programming in Python, especially complete beginners at programming. It is carefully designed to reduce frustration and guide the user while still ensuring that they learn how to solve problems. The goal is for as many people as possible to learn programming.

You can try it out here: https://futurecoder.io/

Currently this is a work in progress. While most of the groundwork is in place, there is a lot to do to make this a complete course ready for users. All kinds of help are needed and greatly appreciated - please consider contributing or donating!

Alternatively, come have a chat on slack.

Features

For a fuller demonstration and explanation, watch this video.

The course is a fully interactive 'book' which requires the user to run code in the provided editor or shell to advance:

full

This requires a mixture of solving problems or simply typing and running provided code. In the latter case, the user is often kept engaged by being asked to predict the output in a simple multiple choice question: The code at each step is checked automatically. If needed, the student can get small hints to gradually guide them to the solution:

predict_output

hints

If they're still really stuck, they can reveal the solution bit by bit:

Or in some cases solve a Parsons problem instead, where they have to put a shuffled solution in the correct order:

solution

parsons

Tracebacks are more helpful than usual, with several enhancements:
  • Highlighting the exact operation that failed, not just the line, using executing
  • Tables of local variables and simple expressions evaluated by pure_eval
  • Suggestions for fixes provided by DidYouMean
  • Beginner friendly explanations provided by friendly-traceback (shown when hovering over the little i icon)
  • Showing multiline statements in full thanks to stack_data without showing unnecessary extra lines
Common mistakes can be caught and pointed out to the student. This includes specific checks in some steps as well as linting tailored for beginners.

traceback

executing

Several debuggers are provided, including snoop...

...birdseye...

snoop

birdseye

...and Python Tutor

pythontutor

Running locally

  1. Fork the repository, and clone your fork.

  2. If you want to run the system using Docker, which may be easier and will more closely resemble the production environment:

    1. Ensure you have docker and docker-compose installed.
    2. Create an empty file called .env in the repo root.
    3. Run docker-compose up.
    4. Skip the following two steps, everything should be running now.
  3. In the backend folder:

    1. Ensure the python command points to Python 3.9.

    2. If you are on Linux/OSX, run ./setup.sh.

      If you are on Windows: (in a Powershell window with "Run as Administrator")

      1. Run Set-ExecutionPolicy -ExecutionPolicy Bypass to enable running scripts in Powershell.
      2. Run .\setup.ps1.

      This will:

      • Install poetry if needed.
      • Create a virtualenv and install Python dependencies.
      • Create a sqlite database, run migrations, and create a user.
    3. Activate the virtualenv with poetry shell.

    4. Run the backend development server with python manage.py runserver.

      • If you get ModuleNotFoundError: No module named 'resource' then set the environment variable SET_LIMITS to 0.
  4. In the frontend folder:

    1. Ensure you have version 14.15.4 (lts/fermium) of node and version 7.5.2 of npm.

      If you are on Windows: (in a Powershell window with "Run as Administrator")

      • Run npm install --global windows-build-tools.
    2. Run npm ci to download dependencies.

    3. Run npm start to start the frontend development server.

  5. Go to http://localhost:3000/accounts/login/ and login with the email "[email protected]" and the password "admin".

  6. You should be redirected to http://localhost:3000/toc/ and see the Table of Contents.

To learn more about the system, see the contributing guide.

Controls

To explore the course more freely:

  1. Click the hamburger menu icon in the top left.
  2. Click Settings.
  3. Turn Developer mode on.
  4. This should give you two red buttons floating at the bottom of the screen. They change the currently active step, so you can move forward without having to complete exercises or backwards to test a step again.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].