You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/index.md
+60-56Lines changed: 60 additions & 56 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# From Zero to ICSP (Ines Course Starter - Python)
2
2
3
-
Course Starter python is a starter repo based on the course framework [Ines Montani](https://ines.io/) developed for her [online open-source spaCy course](https://course.spacy.io/). Since creating this framework in April 2019, it has since become a useful tool and platform for Data Scientists and Developers alike to implement their own courses in a manner similar to other popular online Data science educational platforms.
3
+
Course Starter python is a starter repo based on the course framework [Ines Montani](https://ines.io/) developed for her [online open-source spaCy course](https://course.spacy.io/). Since creating this framework in April 2019, it has since become a useful tool and platform for data scientists and developers alike to implement their courses in a manner similar to other popular online Data science educational platforms.
4
4
5
5
This course gives the developer the versatility of a lecture slide-type informational piece followed by multiple-choice questions and coding exercises equipped with verification of the students' submitted answers.
6
6
@@ -10,8 +10,9 @@ Ines Montani has created this framework using Gatsby and Reveal.js in the front-
10
10
This project is under active development and there are possibilities of changes. If you would like to contribute or point out corrections, please create a new issue addressing your concern, suggestions or contribution.
🔆Hot Tips: This symbol will be used in this guide for helpful tips/recomendations and suggestions when building your course.
14
-
⚠️ Warning: This symbol will give you preventative tips to avoid debugging or issues that I definitely ran into.
13
+
🔆 **Hot Tips:** This symbol will be used in this guide for helpful tips/recommendations and suggestions when building your course.
14
+
15
+
⚠️ **Warning:** This symbol will give you preventative tips to avoid debugging or issues that I ran into.
15
16
16
17
17
18
## What To Expect
@@ -25,18 +26,16 @@ let's get started.
25
26
26
27
## Setup using Docker Compose
27
28
28
-
Advantages and Disadvantages of not installing `node` and `Gatsby` on your local. Since this platform uses version 10 of `node`, you may find yourself unlinking and relinking updated versions often. In this case it may be in your best interest to use Docker compose. Unfortunate when you are updateing this course if you want to see changes you have made, you will have to push any changes to the repo and then wait to build the container again which as you will experience, quite lengthy. The difference with simply installing node 10 and ghatsby on your local is that as you make changes to your repository files and architecture, it is reflected on your local server instantly without the need to push your changes to the repo. Decide for yourself which one is more beneficial for your needs.
29
-
30
-
31
29
1. Clone this repo [starter course repo](https://github.com/UBC-MDS/course-starter-python)
32
30
and locate yourself to the root of the repo where the `Dockerfile` is located.
33
31
34
-
2. Run the following command. It should take 5-7 minutes to run.
32
+
2. Run the following command. It should take about 1 or 2 to run.
35
33
```
36
34
docker-compose up
37
35
```
36
+
You will know when it is done as it will tell you that you can `You can now view course-starter-python in the browser.`
38
37
39
-
3. Go to your favourite web browser and type this in the searchbar:
38
+
3. Go to your favourite web browser and type this in the search bar:
40
39
[http://0.0.0.0:8000/](http://0.0.0.0:8000/)
41
40
42
41
@@ -136,12 +135,12 @@ npm install -g gatsby-cli
136
135
137
136
There are 2 methods in which this step can be done.
138
137
139
-
a) Simply clone the [starter course repo](https://github.com/ines/course-starter-python)
138
+
a) Simply clone the [starter course repo](https://github.com/ines/course-starter-python)and initialize it as a [github repository](https://help.github.com/en/github/importing-your-projects-to-github/adding-an-existing-project-to-github-using-the-command-line)
140
139
b) [Import](https://github.com/new/import) and install this repo
141
140
142
141
Make sure that you ***merge all the changes on the other branches to the master one** if you do not create a pull request for `electron` and `feature/deep-links` branches your course will not successfully deploy.*
143
142
144
-
One you have done this you will need to locate yourself to the root of the repo.
143
+
Once you have done this you will need to locate yourself to the root of the repo.
145
144
146
145
## Running on local Server
147
146
@@ -172,14 +171,16 @@ You can now view course-starter-python in the browser.
This should be the begining of a functioning starter-course!
174
+
This should be the beginning of a functioning starter-course!
176
175
177
176
178
177
Now that you have a website that is deploying on your local server we can now begin the steps to customize it to your own taste.
179
178
179
+
180
+
180
181
## Repository Structure
181
182
182
-
See architechture below. Make sure to add this to your path when calling them in your md file. Some of these files will be explained in further detail depending on if customization or additions is required.
183
+
See the architecture below. Make sure to add this to your path when calling them in your `md` file. Some of these files will be explained in further detail depending on if customization or additions is required.
183
184
184
185
```
185
186
course-starter-python
@@ -193,7 +194,7 @@ course-starter-python
193
194
├── gatsby-config.js
194
195
├── gatsby-node.js
195
196
├── main.js
196
-
├── meta.json # Add neccasary customization such as descriptions bio and branch needed to make binder from
197
+
├── meta.json # Add necessary customization such as descriptions bio and branch needed to make binder from
197
198
├── package-lock.json
198
199
├── package.json
199
200
├── theme.sass # Can be customizable to change fonts style and size and website colours and font
@@ -273,13 +274,32 @@ course-starter-python
273
274
274
275
There is a lot of different areas to make your site unique but below we are going to edit the files systematically.
275
276
277
+
278
+
### Course Homepage Information
279
+
280
+
Here is where we will be changing all the homepage information including Course Name, "About This Course", "About Me", Website and Source. All of these factors are edited in the `meta.json` file located at the root of the repo. Ines has provided [a detailed discription](https://github.com/ines/course-starter-python#metajson) of what each component is responsible for. I am simply going to add some points that could be considered helpful when navigating in these documents
281
+
282
+
| Setting | Additional Notes: |
283
+
| -------------------- | ----------------- |
284
+
|`courseId`| Ines does not have this parameter in her spacy course, however, deleting this will not let the course function properly so not having this setting is not an option unless you want to explore what makes her spacy course repo different than her course-starter repo. This `courseId` is reflected once you compile your site and it reads `You can now view "courseId" in the browser.`|
285
+
|`slogan`| This will show up once you deploy your site and it will be shown in the image of the link that you send. |
286
+
|`juniper.repo`| Make sure you insert your GitHub repository path ex: Github-login/repository-name |
287
+
|`juniper.branch`| We will address this further when building a binder but note that the branch here specified is called binder. That means that we will need to edit the `requirements.txt` file and push it to the binder branch|
288
+
289
+
for guidance on the other settings refer to [Ines Montani's Documentation](https://github.com/ines/course-starter-python#metajson)
290
+
291
+
### `theme.sass`
292
+
293
+
This is where you can change certain design elements of the course including font size, style and colour, overall theme colour, button colour.
294
+
295
+
276
296
### Introduction on Homepage
277
297
278
298
_It's important to attribute Naome Ross and Julia Silge's courses for this section as they are responsible for the code pasted below_
279
299
280
300
Unlike Ines's [Spacy Course](https://course.spacy.io/), you may want an introduction similar to what [Julia Silge](https://supervised-ml-course.netlify.com/) and [Naome Ross](https://noamross.github.io/gams-in-r-course/) did for their courses.
281
301
282
-
They introduced their courses with a brief summary
302
+
They introduced their courses with a summary and course description.
@@ -289,7 +309,7 @@ This can be done by doing the following:
289
309
290
310
- Navigate into the `src/pages/` and open `index.js`
291
311
292
-
You will be adding a new `<section>` (Html code) under `<Layout isHome>` and inbetween the following two lines shown below : between
312
+
You will be adding a new `<section>` (Html code) under `<Layout isHome>` and between the following two lines shown below :
293
313
```
294
314
<Layout isHome>
295
315
<Logo className={classes.logo} aria-label={siteMetadata.title} /> # HERE
@@ -337,7 +357,7 @@ This can be done by doing the following:
337
357
338
358
- Navigate into the `src/pages/index.js`
339
359
340
-
You will be adding a new `<section>` (Html code) under `<Layout isHome>` and inbetween the following two lines shown below : between
360
+
You will be adding a new `<section>` (Html code) under `<Layout isHome>` and between the following two lines shown below:
341
361
```
342
362
<Layout isHome>
343
363
<Logo className={classes.logo} aria-label={siteMetadata.title} /> # HERE
@@ -381,28 +401,12 @@ you will need to paste the new classes as follows below into the document.
381
401
382
402
If you want to play with the measurements this is a welcomed opportunity to customize your course further.
383
403
384
-
### Course Homepage Information
385
-
386
-
Here is where we will be changing all the homepage information including Course Name, "About This Course", "About Me", Website and Source. All of these factors are edited in the `meta.json` file located at the root of the repo. Ines has provided [a detailed discription](https://github.com/ines/course-starter-python#metajson) of what each component is responsible for. I am simply going to add some points that could be considered helpful when navigating in this documents
387
-
388
-
| Setting | Additional Notes: |
389
-
| -------------------- | ----------------- |
390
-
|`courseId`| Ines does not have this parameter in her spacy course, however deleting this will not let the course function properly so not having this setting is not an option unless you want to explore what makes her spacy course repo different than her course-starter repo. This `courseId` is reflected once you compile your site and it reads `You can now view "courseId" in the browser.`|
391
-
|`slogan`| This will show up once you deploy your site and it will be show in the image of the link that you send. |
392
-
|`juniper.branch`| We will address this further when building a binder but note that the branch here specified is called binder. That means that we will need to edit the `requirements.txt` file and push it to the binder branch|
393
-
394
-
for guidance on the other settings refer to [Ines Montani's Documentation](https://github.com/ines/course-starter-python#metajson)
395
-
396
-
### `theme.sass`
397
-
398
-
This is where you can change certain design elements of the course including font size, style and colour, overall theme colour, button colour.
399
-
400
404
401
405
## Contents
402
406
403
-
This is where the meat and potatos of your course is.
407
+
This is where the majority of your course lies.
404
408
405
-
Ines Montani [discusses in detail each section](https://github.com/UBC-MDS/course-starter-python#%EF%B8%8F-content), however there are a few little details I want to emphesize that could help as you create this site.
409
+
Ines Montani [discusses in detail each section](https://github.com/UBC-MDS/course-starter-python#%EF%B8%8F-content), however, there are a few little details I want to emphasize that could help as you create this site.
406
410
407
411
### Chapters
408
412
@@ -413,7 +417,7 @@ These are the files that make up the topics of your course and will be displayed
413
417
414
418
<br>
415
419
416
-
each `chapter.md` file will need this yaml specification that Ines explains:
420
+
each `chapter.md` file will need this YAML specification that Ines explains:
417
421
418
422
```
419
423
---
@@ -429,7 +433,7 @@ Here are some additional comments:
429
433
430
434
1. Make sure each `id` is unique or you may have some issues with some modules not showing up.
431
435
2. Take care specifying the correct `prev` and `next` otherwise it could damage the flow of your material.
432
-
3. You don't need to have your website extension of your course labeled as "chapters" if you wish to have your link extensions named something other than chapter in the url, you can change the file names to `module`, `topic`, `lecture` or anything else followed by the number. Do not change the folder name and do not change the `type` in the yaml.
436
+
3. You don't need to have the website extension of your course labeled as "chapters" if you wish to have your link extensions named something other than "chapter" in the URL, you can change the file names to `module`, `topic`, `lecture` or anything else followed by the number. Do not change the folder name and do not change the `type` in the YAML.
433
437
434
438
Each `chapter.md` file will contain the code of what that chapter will look like. Specifically:
435
439
@@ -438,9 +442,9 @@ Each `chapter.md` file will contain the code of what that chapter will look like
438
442
439
443
<br>
440
444
441
-
Now that we have a chapter.md file with a completed yaml, lets add the course content.
445
+
Now that we have a chapter.md file with a completed YAML, let's add the course content.
442
446
443
-
Each numbered container dispayed in the image above corresponds to an `exercise`. Each exercise needs a unique id and specified with a title.
447
+
Each numbered container displayed in the image above corresponds to an `exercise`. Each exercise needs a unique id and specified with a title.
444
448
445
449
```
446
450
<exercise id="1" title="Title of the exercise">
@@ -452,8 +456,8 @@ something here
452
456
453
457
These exercises can in the form of different activities as well:
454
458
1. Slides: Lecture material and content
455
-
2. Multiple choice questions: : An opportunity for students to test themselves on the material they just learned.
456
-
3.Codeblock exercises: An opportunity for students to test their coding skills
459
+
2. Multiple choice questions: An opportunity for students to test themselves on the material they just learned.
460
+
3.Code block exercises: An opportunity for students to test their coding skills
457
461
458
462
459
463
### Slides
@@ -472,14 +476,14 @@ Notice that we specify slides using `type="slides` argument in the exercise cont
472
476
473
477
You'll also notice we are calling a source file to display our slides. These slides are stored in the `slides` folder.
474
478
475
-
[Ines explaines](https://github.com/ines/course-starter-python#slides) how your slide mardown document should be structured.
479
+
[Ines explaines](https://github.com/ines/course-starter-python#slides) how your slide markdown document should be structured.
476
480
477
481
***⚠️ Warning: Be wary of trailing spaces 😵😱!!
478
482
Although ```---``` may appear to be the same as ```--- ``` they are not and any information placed after the latter will break your slides.***
479
483
480
484
#### Enbedding Video and Audio
481
485
482
-
If you are hopeing to make your course particularly engaging, you may want to add videos or audio files to your slides (or questions even).
486
+
If you are hoping to make your course particularly engaging, you may want to add videos or audio files to your slides (or questions even).
483
487
This can be acheived with the following code:
484
488
485
489
**Video:**
@@ -542,7 +546,7 @@ Try again! This is incorrect.
542
546
543
547
The key to having several questions in one exercise container is to give `<choice>` an id.
544
548
```
545
-
exercise id="18" title= "Mutiple questions in one exercise">
549
+
exercise id="18" title= "Multiple questions in one exercise">
546
550
547
551
Question 1 here.
548
552
@@ -606,44 +610,44 @@ This is where things can get a bit tricky. Each coding exercise will require 3 f
606
610
607
611
-`exc_coding-question.py` -> The code displayed to the student that they will have to fill in
608
612
-`solution_coding-question.py` -> the expected coding solution
609
-
-`test_coding-question.py` -> Tests to see if the input done by the student were correct (output when student clicks "submit")
613
+
-`test_coding-question.py` -> Tests to see if the input done by the student were correct (output when the student clicks "submit")
610
614
611
615
These are all saved in the `exercises` folder.
612
616
613
617
When we want to specify this exercise in the `chapter.md` file in the exercise container, we must only write `id = coding-question`.
614
618
615
-
Ines has explain more of this [here](https://github.com/ines/course-starter-python#codeblock)
619
+
Ines has explained more of this [here](https://github.com/ines/course-starter-python#codeblock)
616
620
617
-
***🔆You can also have multiple codeblocks in a single exercise container***
621
+
***🔆You can also have multiple code blocks in a single exercise container***
618
622
619
-
Code is written in the same way that you would run normal python scripts, with importing packages and self made functions that can be stored stored and imported from the exercise folder.
623
+
Python code is written in regular scripts while importing packages per usual.
620
624
621
-
***🔆When you are calling files***
625
+
***🔆Remember that you are located at the root of the repo and you will have to reflect that in the path to the file. Eg. data from the data folder***
622
626
623
627
#### Let's talk about importing functions!
624
628
625
-
If you want to import a functions you made the script can be stored in the `exercises` folder. However, since you are running everything from the root of the directory it's crucial you locate yourself into the `exercises` folder. You can do this with the following code.
629
+
If you want to import a function you made, the script can be stored in the `exercises` folder. However, since you are running everything from the root of the directory you must locate yourself into the `exercises` folder. You can do this with the following code.
626
630
```
627
631
import sys
628
632
sys.path.insert(0, 'exercises/')
629
633
```
630
-
631
634
you can then import as normal.
632
635
633
-
634
-
635
-
636
636
#### `binder/requirements.txt`
637
637
638
+
Remember back in `meta.json` we discussed the argument `juniper.branch` briefly? Code block exercises are where this comes to play.
638
639
640
+
Any imported packages need to be added to `binder/requirements.txt` and since we specified in juniper `"branch": "binder"` this is the branch where we will need to push changes to this document.
641
+
- add your packages and if need be the versions to the `requirements.txt`
642
+
- build your [binder](https://mybinder.org/) and refer to [Ines's explanation](https://github.com/ines/spacy-course#setting-up-binder) for more.
643
+
- ⚠️ When you build your binder make sure you specify `Git branch, tag, or commit` as `binder` since that is the branch where you will be adjusting the `requirements.txt`
639
644
640
645
641
646
### `static` folder
642
-
If you have been following along here while you construct your course you may notice at this point that you have yet to change any graphics.
643
647
644
-
The `static` file is where any additional images, videos and audio files are store that you will need for the questions or slides part of your course.
648
+
The `static` file is where any additional images, videos and audio files need for the questions or slides part of your course are stored.
645
649
646
-
I find it particularly useful to create additional files in here to address the different chapters you will be making for added clarity and organization. aka I add a folder for each chapter/module and save the media files in it's corresponding folder.
650
+
I find it particularly useful to create additional files in here to address the different chapters you will be making for added clarity and organization. aka I add a folder for each chapter/module and save the media files in its corresponding folder.
0 commit comments