Skip to content

Latest commit

 

History

History
180 lines (133 loc) · 8.33 KB

README.md

File metadata and controls

180 lines (133 loc) · 8.33 KB

JetBrains Academy Python Course Template

official project License: MIT

Note

Click the Use this template button and clone it in IntelliJ IDEA.

JetBrains Academy Python course template is a repository that provides a pure template to make it easier to create a new Python course with the JetBrains Academy plugin (check out the Creating a repository from a template article).

The main goal of this template is to speed up the setup phase of Python course development for both new and experienced educators by preconfiguring the project scaffold and CI, linking to the proper documentation pages, and keeping everything organized.

If you're still not quite sure what this is all about, read our introduction: What is the JetBrains Academy plugin?

Note

Click the Watch button on the top to be notified about releases containing new features and fixes.

Table of contents

In this README, we will highlight the following elements of template-project creation:

Getting started

Before we dive into course development and everything related to it, it's worth mentioning the benefits of using GitHub Templates. By creating a new project with the current template, you start with no history or reference to this repository. This allows you to create a new repository easily, without copying and pasting previous content, cloning repositories, or clearing the history manually.

All you need to do is click the Use this template button (you must be logged in with your GitHub account).

Use this template

The most convenient way of getting your new project from GitHub is the Get from VCS action available on the Welcome Screen, where you can filter your GitHub repository by its name.

Get from version control

Course template structure

A generated JetBrains Academy Python Course Template repository contains the following content structure:

.
├── LICENSE
├── README.md                      README
├── common                         Course sources common for all sections
│   └── resources                  Resources - images, icons
├── course-info.yaml               Course info configuration file
└── course_section                 An example of the course section
    ├── course_guided_project      An example of the course guided project
    │   ├── lesson-info.yaml       Lesson config file
    │   ├── programming_task       Example of programming task
    │   │   ├── main.py
    │   │   ├── task-info.yaml     Task info
    │   │   ├── task.md            Task text content
    │   │   └── tests              Task tests
    │   │       └── test.py
    │   └── theory_task            Example of theory task
    │       ├── main.py
    │       ├── task-info.yaml
    │       └── task.md
    ├── course_lesson              An example of the course lesson
    │   ├── lesson-info.yaml  
    │   ├── multi_file_task        Multiple file task example
    │   │   ├── main.py
    │   │   ├── task-info.yaml
    │   │   ├── task.md
    │   │   ├── task.py
    │   │   └── tests
    │   └── quiz_task              Quiz task example
    │       ├── main.py
    │       ├── task-info.yaml
    │       └── task.md
    └── section-info.yaml          Section information

Course info configuration file

The course info configuration file is the course-info.yaml file located in the root directory. It provides general information about the course, like description, language, etc.

type: marketplace
title: JetBrains Academy Python course template
language: English
summary: Here you can put the course description. You can use HTML tags inside the
  description.
programming_language: Python
environment: unittest
content:
  - course_section

Course ignore file

The course ignore file is the .courseignore file located in the root directory. It provides the list of files or directories that will be ignored in the final course preview or archive.

README.md

You can find more information about the course preview in the Course preview section. Information about creating a course archive and uploading it to the marketplace is in the Course distribution section.

Sample code

The prepared template provides an example of a course with one section, two lessons (regular and guided), and five tasks in total.

Course structure in the course creator mode

Each course may have an unlimited number of sections, lessons, and tasks. Students will see almost the same course structure as the educator (course author):

Course structure in the course student mode

The main difference is in framework lessons, which display only task files, without intermediate steps.

You can read more about guided projects in the official documentation in the Guided Projects Creation section.

Note

Click Course Creator -> Create Course Preview in the context menu in the root of the repository to create a course preview.

The JetBrains Academy plugin provides five different types of tasks, and you can combine them inside one lesson (whether regular or guided). You can read more about tasks in the official documentation in the Task section.

Testing

To check the programming exercises for edu tasks, you need to write tests using unittest framework.

You can find little examples of programming tasks in the repository in the test.py files: in course lesson and course guided project.

Useful links