Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c95f300

Browse files
author
Noer Paanakker
committed
deciding on topics
1 parent 90b74a5 commit c95f300

File tree

8 files changed

+111
-135
lines changed

8 files changed

+111
-135
lines changed

README.md

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,61 @@
1-
> Please help us improve and share your feedback! If you find better tutorials
2-
or links, please share them by [opening a pull request](https://github.com/HackYourFuture/JavaScript2/pulls).
1+
> If you are following the HackYourFuture curriculum we recommend you to start with module 1: [HTML/CSS/GIT](https://github.com/HackYourFuture/HTML-CSS). To get a complete overview of the HackYourFuture curriculum first, click [here](https://github.com/HackYourFuture/curriculum).
32
4-
# HackYourFuture - JavaScript 2
3+
> Please help us improve and share your feedback! If you find better tutorials or links, please share them by [opening a pull request](https://github.com/HackYourFuture/JavaScript1/pulls).
54
6-
Here you can find course content and homework for the JavaScript2 module
5+
# Module #3 - JavaScript 2: DOM Manipulation (Frontend)
76

8-
|Week|Topic|Read|Homework|
9-
|----|-----|----|--------|
10-
|1.|• Capturing user input through forms <br>• [Events](http://javascript.info/introduction-browser-events)<br>• [Basic DOM manipulations](../../../fundamentals/blob/master/fundamentals/DOM_manipulation.md)<br>• [Code debugging using the browser](http://javascript.info/debugging-chrome) <br>• [Code commenting](../../../fundamentals/blob/master/fundamentals/code_commenting.md)<br>• Structuring code files<br>• [Code formatting](../../../fundamentals/blob/master/fundamentals/code_formatting.md)<br>• [Handing in homework via PR](../../..//fundamentals/blob/master/fundamentals/homework_pr.md) |[Reading Week 1](/Week1/README.md)|[Homework Week 1](/Week1/MAKEME.md)|
11-
|2.|• Functions + JSON/Arrays<br>• [Array Manipulations](../../../fundamentals/blob/master/fundamentals/array_manipulation.md)<br>• JSON<br>• [Map and filter](../../../fundamentals/blob/master/fundamentals/map_filter.md)<br>• Arrow functions |[Reading Week 2](/Week2/README.md)|[Homework Week 2](/Week2/MAKEME.md)|
12-
|3.|[Closures](../../../fundamentals/blob/master/fundamentals/scope_closures_this.md) <br>• Callbacks|[Reading Week 3](/Week3/README.md)|[Homework Week 3](/Week3/MAKEME.md)|
7+
![JavaScript2](./assets/javascript2.png)
8+
9+
If you were to ask a random person on the street the question "What is a browser?", you'll most likely get a variety of (incorrect) answers. For proof, check [this](https://www.youtube.com/watch?v=o4MwTvtyrUQ) out.
10+
11+
You might be one of those people right now, but after this module no more.
12+
13+
## Learning goals
14+
15+
In order to successfully complete this module you will need to master the following:
16+
17+
-
18+
19+
- Learn how to think like a programmer
20+
21+
## How to use this repository
22+
23+
This repository consists of 3 essential parts:
24+
25+
1. `Reading materials`: this document contains all the required theory you need to know _**while**_ you're coding. It's meant as both study material and as a reference to understand what you're doing.
26+
2. `Homework`: this document contains the instructions for each week's homework.
27+
3. `Lesson Plans`: this part is meant for teachers as a reference. However, as a student don't be shy to take a look at it as well!
28+
29+
After your first class you should start off with checking the `reading materials` for that week. At the beginning that would be the [Week 1 Reading](/Week1/README.md). Study all the concepts and try to get the gist of everything. After, you can get started with the `homework` for that week.
30+
31+
If you have any questions or if something is not entirely clear ¯\\\_(ツ)\_/¯, please ask/comment on Slack!
32+
33+
## Planning
34+
35+
| Week | Topic | Reading Materials | Homework | Lesson Plan |
36+
| ---- | --------------------------------------------- | ------------------------------ | ------------------------------- | ---------------------------------- |
37+
| 1. | Document-Object Model (DOM), DOM manipulation | [Reading W1](/Week1/README.md) | [Homework W1](/Week1/MAKEME.md) | [Lesson Plan W1](/Week1/MAKEME.md) |
38+
| 2. | , Cookies & Sessions | [Reading W2](/Week2/README.md) | [Homework W2](/Week2/MAKEME.md) | [Lesson Plan W2](/Week1/MAKEME.md) |
39+
| 3. | Callbacks, Closures & Scope | [Reading W3](/Week3/README.md) | [Homework W3](/Week3/MAKEME.md) | [Lesson Plan W3](/Week1/MAKEME.md) |
1340

1441
## Test
15-
At the end of this module you'll be doing a formative test. It will be done on **paper** and will consist of **4 exercises** that will test your JavaScript1 and JavaScript2 knowledge.
1642

17-
Why on paper, you might ask? Fundamental understanding should become intuitive. Only after having learned and mastered a concept deeply will you be able to use it creatively. If you rely too much on others, or Google, you'll make it very hard to cultivate the habit to think for yourself.
43+
At the end of this module you'll be doing a formative test. It will be done on **paper** and will consist of **4 exercises** that will test your JavaScript1 and JavaScript2 knowledge.
44+
45+
Why on paper, you might ask? Fundamental understanding should become intuitive. Only after having learned and mastered a concept deeply will you be able to use it creatively. If you rely too much on others, on Google or your code editor to do your thinking you'll make it very hard to cultivate the habit to think for yourself.
1846

1947
Also important to note: this test is done for 2 reasons only.
2048

21-
(1) **HackYourFuture wants to know** what skill level you are at.
49+
(1) **HackYourFuture wants to know** what skill level you are at.
2250

2351
(2) The test will **give you an indication** of what skill level you are at.
2452

53+
## Finished?
54+
55+
Did you finish the module? Good job! You're doing great!
2556

26-
### Overall
27-
A good understanding of all the above mentioned topics. Want to check your Knowledge? Go through the [JavaScript Fundamentals README](../../../fundamentals/blob/master/fundamentals/README.md) and research/ ask for help (Slack!) with the concepts that are not entirely clear.
57+
If you feel ready for the next challenge, click [here](https://www.github.com/HackYourFuture/JavaScript3) to go to JavaScript3!
2858

29-
*The HackYourFuture curriculum is subject to CC BY copyright. This means you can freely use our materials, but just make sure to give us credit for it :)*
59+
_The HackYourFuture curriculum is subject to CC BY copyright. This means you can freely use our materials, but just make sure to give us credit for it :)_
3060

3161
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.

Week1/LESSONPLAN.md

Whitespace-only changes.

Week1/README.md

Lines changed: 28 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,39 @@
1-
# Reading material for the first lecture:
1+
# Reading Material JavaScript2 Week 1
22

3-
```
4-
In week one we will discuss the following topics:
5-
• Capturing user input
6-
• Basic DOM manipulations[img src, innerHTML]
7-
• Code debugging using the browser
8-
• Events
9-
• Code commenting
10-
• Structuring code files
11-
• Code formatting
12-
• Handing in homework via PR
13-
```
3+
## Agenda
144

15-
## Software installation for the JavaScript 2 Module
5+
These are the topics for week 1:
166

17-
**_To save time, please do these preparations at home before coming to the first lecture._**
7+
1. What is a browser?
8+
- How a browser works
9+
- Different browsers
10+
2. What is the Document-Object Model (DOM)?
11+
- The DOM tree
12+
- JavaScript and the browser
13+
- Traversing the DOM
14+
3. What is DOM Manipulation?
15+
- Browser events
16+
- Event handlers
1817

19-
1. Install the following extensions in VSCode (you may have installed some of them already):
18+
[DOM Crash Course](https://www.youtube.com/playlist?list=PLillGF-RfqbYE6Ik_EuXA2iZFcE082B3s)
2019

21-
- Code Spell Checker
22-
- ESLint
23-
- Prettier - Code formatter
24-
- open in browser
25-
- Live Server
26-
- Bracket Pair Colorizer
20+
## 1. What is a browser?
2721

28-
2. Modify the VSCode User Settings to include the settings listed below. If a particular setting is already present in your User Settings, make sure that the setting value listed below is used and change it if necessary.
22+
A browser is software that allows you to access websites.
2923

30-
To open your user and workspace settings, use the following VS Code menu command:
24+
### How a browser works
3125

32-
- On Windows/Linux - **File** > **Preferences** > **Settings**
33-
- On macOS - **Code** > **Preferences** > **Settings**
26+
[How a web browser functions](https://www.youtube.com/watch?v=z0HN-fG6oT4)
3427

35-
Then, click on the `{ }` button in the top-right corner of the settings screen to access the settings in JSON format.
28+
## 2. What is the Document-Object Model (DOM)?
3629

37-
38-
```json
39-
/// Place your settings in this file to overwrite the default settings
40-
{
41-
"editor.detectIndentation": false,
42-
"editor.formatOnSave": true,
43-
"editor.minimap.enabled": false,
44-
"editor.renderIndentGuides": true,
45-
"editor.tabSize": 2,
46-
"editor.codeActionsOnSave": {
47-
"source.fixAll": true
48-
},
49-
"eslint.autoFixOnSave": true,
50-
"files.autoSave": "onFocusChange",
51-
"prettier.printWidth": 100,
52-
"prettier.singleQuote": true,
53-
"prettier.trailingComma": "all"
54-
}
55-
```
30+
### JavaScript and the browser
5631

57-
3. Install the ESLint CLI tool globally by issuing the following command from the command line:
32+
### Traversing the DOM
5833

59-
```
60-
npm install -g eslint-cli
61-
```
34+
- [Traversing the DOM with JavaScript](https://zellwk.com/blog/dom-traversals/)
6235

63-
4. Fork this repository (i.e., **JavaScript2**) and clone your fork to your laptop.
64-
65-
5. Open the `JavaScript2` folder from the cloned repository in VSCode.
66-
67-
6. Open a terminal window in VSCode and type the following command:
68-
69-
```
70-
npm install
71-
```
72-
73-
## Review of JavaScript1
74-
75-
As a refresher, go through the topics of JavaScript1:
76-
77-
### Week 2
78-
79-
- [Variables (var, let, const)](./../../../../fundamentals/blob/master/fundamentals/variables.md)
80-
- [Basic Data types (Strings, Numbers, Arrays, Booleans)](./../../../../fundamentals/blob/master/fundamentals/values.md)
81-
- [Operators](./../../../../fundamentals/blob/master/fundamentals/operators.md)
82-
- [Naming conventions](./../../../../fundamentals/blob/master/fundamentals/naming_conventions.md)
83-
84-
### Week 3
85-
86-
- [Advanced data types (objects)](./../../../../fundamentals/blob/master/fundamentals/objects.md)
87-
- [Conditional execution](./../../../../fundamentals/blob/master/fundamentals/conditional_execution.md) <br>
88-
- [Statements vs Expressions](./../../../../fundamentals/blob/master/fundamentals/statements_expressions.md)<br>
89-
- [Loops (for/while)](./../../../../fundamentals/blob/master/fundamentals/loops.md)
90-
- [Functions](./../../../../fundamentals/blob/master/fundamentals/functions.md)
91-
- [Scope](./../../../../fundamentals/blob/master/fundamentals/scope.md)
36+
## 3. What is DOM Manipulation?
9237

9338
## Required readings for the first lecture
9439

@@ -108,28 +53,18 @@ Extras:
10853
- [Strict mode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode)
10954
- [Chrome DevTools Debugging](https://developers.google.com/web/tools/chrome-devtools/)
11055

111-
### Recommended readings
56+
* Chapter 13: [JavaScript and the Browser](http://eloquentjavascript.net/13_browser.html)
11257

113-
These chapters from _Eloquent JavaScript_ give in-depth explanations of the topics that will be discussed during the lecture. Highly recommended (if time permits).
114-
115-
- Chapter 13: [JavaScript and the Browser](http://eloquentjavascript.net/13_browser.html)
116-
117-
- Chapter 14: [The Document Object Model](http://eloquentjavascript.net/14_dom.html)
58+
* Chapter 14: [The Document Object Model](http://eloquentjavascript.net/14_dom.html)
11859

11960
_You can skip the following sections:_
12061

12162
- Moving through the tree
12263

123-
- Chapter 15: [Handling Events](http://eloquentjavascript.net/15_event.html)
64+
* Chapter 15: [Handling Events](http://eloquentjavascript.net/15_event.html)
12465

12566
Notes: for the lectures and homework you only need to know about these events: `click`, `change`, `keyup` and `load`.
12667

127-
_You can skip the following sections (but come to these sections when doing the React module):_
128-
129-
- Touch events
130-
- Scroll events
131-
- Focus events
132-
- Events and the Event Loop
133-
- Debouncing
68+
## Finished?
13469

135-
_Please go through the material and come to class prepared!_
70+
Are you finished with going through the materials? High five! If you feel ready to get practical, click [here](./MAKEME.md).

Week2/LESSONPLAN.md

Whitespace-only changes.

Week2/README.md

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,51 @@
1-
### Reading Week 2
1+
# Reading Material JavaScript2 Week 3
22

3-
# Reading material for the second lecture:
3+
## Agenda
44

5-
```
6-
In week two we will discuss the following topics:
7-
• Functions + JSON/Arrays
8-
• Array Manipulations
9-
• JSON
10-
• Map and filter
11-
• Arrow functions
12-
```
5+
These are the topics for week 3:
136

14-
## Here are resources that we like you to read as a preparation for the coming lecture.
7+
1. What is a library?
8+
- Popular libraries
9+
- Library versus framework
10+
2. What is jQuery?
11+
- Difference between 'vanilla' JavaScript and jQuery
12+
- How jQuery works
13+
14+
## 1. What is a library?
15+
16+
## 2. What is jQuery?
17+
18+
## Finished?
19+
20+
Are you finished with going through the materials? High five! If you feel ready to get practical, click [here](./MAKEME.md).
21+
22+
## Here are resources that we like you to read as a preparation for the coming lecture.
1523

1624
### JSON
25+
1726
- [JSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) (MDN)
1827

1928
### Map and Filter
29+
2030
- :dizzy: [Fun fun functional](https://www.youtube.com/playlist?list=PL0zVEGEvSaeEd9hlmCXrk5yUyqUag-n84) :dizzy: Check the first 3-4 videos.
2131

2232
### Code conventions
33+
2334
- Code conventions: http://crockford.com/javascript/code.html
2435

2536
### Array cardio
37+
2638
- Wes Bos' awesome free tutorials. Just make a free account and do Array Cardio #1 [here](https://javascript30.com/)
2739

2840
### From _Eloquent JavaScript_
2941

3042
- Objects continued: http://eloquentjavascript.net/06_object.html
3143

32-
3344
## Recommended readings
3445

3546
This chapter from _Eloquent JavaScript_ gives in-depth explanations of the topics that will be discussed during the lecture. Highly recommended (if time permits).
3647

3748
- Chapter 3 - [Functions](http://eloquentjavascript.net/03_functions.html)
3849
- Chapter 5 - [Higher-Order Functions](http://eloquentjavascript.net/05_higher_order.html)
3950

40-
_Please go through the material and come to class prepared!_
51+
_Please go through the material and come to class prepared!_

Week3/LESSONPLAN.md

Whitespace-only changes.

Week3/README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
# Reading material for the third lecture:
1+
# Reading Material JavaScript2 Week 2
22

3-
```
4-
In week three we will discuss the following topics:
5-
• Closures
6-
• Scope
7-
• Callbacks
8-
```
3+
## Agenda
94

10-
## Here are resources that we like you to read as a preparation for the coming lecture:
5+
These are the topics for week 2:
116

12-
### Closures
7+
1. Callbacks
8+
- sfsdf
9+
- sdf
10+
2. Scope
11+
- sdfsd
12+
- asdas
13+
3. Closures
1314

14-
- [Closures](http://javascriptissexy.com/understand-javascript-closures-with-ease/)
15-
- [MDN Closures](https://developer.mozilla.org/en/docs/Web/JavaScript/Closures)
15+
## 1. What is a library?
1616

17-
### Design patterns
17+
## 2. What is jQuery?
1818

19-
- [Learning JavaScript Design Patterns](https://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailnamespacing) up to and including chapter 3
19+
## Finished?
2020

21-
_Please go through the material and come to class prepared!_
21+
Are you finished with going through the materials? High five! If you feel ready to get practical, click [here](./MAKEME.md).

assets/javascript2.png

83.3 KB
Loading

0 commit comments

Comments
 (0)