Skip to content

ivchicano/2019-VSCode4Teaching

 
 

Repository files navigation

2019-VSCode4Teaching

Build Status Extension version Extension installs
VSCode extension for teaching.
Bring the programming exercises of a course directly to the student’s editor, so that the teacher of that course can check the progress of the students and help them.
Visit this Medium blog for updates on the development of this project.

Table of Contents

Common use case

  1. Teacher runs the server, learning how to do it from this link
  2. Teacher installs the VSCode 4 Teaching extension from the marketplace:
    Teacher downloads extension from Marketplace
  3. Teacher signs up from superuser account and logs in:
    Teacher signs up using superuser account
  4. Teacher creates a course and an exercise in that course:
    Teacher creates course and exercise
  5. Teachers gets the code for sharing that course to his/her students:
    Teacher gets sharing code for course
  6. Students install the extension and sign up:
    Student signs up
  7. Students use the code from the teacher to access the course:
    Student downloads course and exercise
  8. Students start solving the exercise:
    Students solving exercise
  9. Meanwhile the teacher checks the students' progress:
    Teacher checks progress
  10. When they finish the exercise, they mark it as finished:
    Student marks exercise as finished
  11. Teacher starts checking on the students' solutions and adding comments:
    Teacher checks student solution and adds comment
  12. Student checks the comments and responds to them:
    Student replies to comment

Introduction

The main features are:

  • Teachers can create courses and exercises for the students.
  • Students can download these exercises and upload their updated files.
  • Teachers can download the students’ exercises to see their progress.

The release comes with 2 artifacts: a server backend and the extension. In the backend all the information is saved: courses, exercises, files… . The server is implemented as a REST API.

The extension is a frontend to interact with the server API.

There are 2 user roles: Teacher and Student.

  • Teachers are capable of creating, editing, deleting, adding and removing users from courses. These courses have exercises, which have an associated template (files that serve as the base of the exercise) and each student’s files. Teachers can also download the students’ files to review them.
  • Students can see these courses and exercises, download the templates and automatically upload their files to the server so that the teachers can see them.

Animations showing the features: In the first animation we see the teacher creating a course and then creating an exercise (and selecting the files that will be set as the template of the exercise):
Teacher creates exercise In the next animation, we see the student downloading this new exercise:
Student downloads exercise On the next animation the student edits one of the files and saves it, triggering the automatic file upload so that the teacher can see it (notice the lower part of the screen how a message pops up indicating this upload):
Student edits files On the next animation, we can see how the teacher selects the exercise previously created and downloads the edited files of the student that previously modified them:
Teacher sees student files A teacher can check differences between a students exercise and the original template:
Teacher sees differences A teacher puts a comment in a student file:
Teacher puts comment The student sees the comment and responds:
Student sees comment and responds Student finishes his exercise: Student finishes exercise Teacher checks progress of all students in his dashboard: Teacher checks his dashboard

Running, installing and development

For information about the server click HERE.
For information about the extension click HERE.

General Roadmap

  • Students can download course exercises and upload his files to the server.
  • Teachers can see a student's exercise.
  • Teachers can see the differences between student files and the original templates.
  • File uploads and downloads should account for .gitignore rules.
  • Teachers can comment on a student's exercise.
  • Make easier for students to access exercises (No need to log in or have a user).
  • Students can mark exercises as finished.
  • Teachers have a dashboard to check students progress

Note: This roadmap is subject to changes as requirements change.
Check Issues and Project for more specific information about development of these milestones.

About

VSCode extension for teaching

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 90.5%
  • CSS 6.0%
  • TypeScript 2.1%
  • Java 1.0%
  • HTML 0.4%
  • Dockerfile 0.0%