|
5 | 5 | Welkom bij de module over javascript. Javascript is de meestgebruikte programmeertaal in 2023. Waarom dat zo is? |
6 | 6 | Javascript is ingebouwd in elke webbrowser. Sommige PC apps worden gemaakt in Javascript. Het is onderdeel van veel mobiele apps. Het wordt gebruikt in de back-end "de cloud", om verzoeken van webbrowsers en apps af te handelen. |
7 | 7 |
|
8 | | -Je docent is Merijn Vogel, als docent een eetje een noob, maar zeer ervaren als software ontwikkelaar. |
| 8 | +Je docent is Merijn Vogel, als docent een beetje een noob, maar zeer ervaren als software ontwikkelaar. |
9 | 9 |
|
10 | 10 | # Kennismaken met javascript |
11 | 11 |
|
@@ -43,9 +43,9 @@ Bestanden: |
43 | 43 | - `style.css` is voor de styling van de HTML (als je de module *HTML en CSS* hebt gedaan komt dit je waarschijnlijk bekend voor). |
44 | 44 |
|
45 | 45 | Bewerken van dit soort bestanden doe je met een code-editor (en zeker niet met Word!). |
46 | | -Bijvoorbeeld `notepad++` of een "echte" programmeeromgeving zoals Visual Studio Code (en die is zelf geschreven in ... Javascript). |
| 46 | +Bijvoorbeeld `notepad++` . Gebruik voor deze module liever geen "echte" programmeeromgeving zoals Visual Studio Code. Een dergelijke programmeeromgeving is zo erg behulpzaam dat het lastig wordt. |
47 | 47 |
|
48 | | -HTML: |
| 48 | +Voorbeeld HTML: |
49 | 49 | ```html |
50 | 50 | <!DOCTYPE html> |
51 | 51 | <html lang="en"> |
|
70 | 70 | </html> |
71 | 71 | ``` |
72 | 72 |
|
73 | | -CSS: |
| 73 | +Voorbeeld CSS: |
74 | 74 | ```css |
75 | 75 | :root { |
76 | 76 | /* (almost) all elements display a sans-serif font */ |
|
82 | 82 | } |
83 | 83 | ``` |
84 | 84 |
|
85 | | -#### NodeJS: de moderne manier van Javascript (ook geschikt voor niet-web toepassingen) |
86 | | - |
87 | | -Installatie: https://nodejs.dev/en/learn/how-to-install-nodejs/ |
88 | | -Leren via: https://nodejs.dev/en/learn/ |
89 | | - |
90 | | -NodeJS is een generieke programmeeromgeving met Javascript. Net zoals bij python kun je een bestand maken en uitvoeren met NodeJS. |
91 | | - |
92 | | -Bewerken van bestanden met computer code doe je met een code-editor (en zeker niet met Word!). Bijvoorbeeld `notepad++` of een volledige programmeeromgeving zoals Visual Studio Code (en die is zelf geschreven in ... Javascript). |
93 | | - |
94 | 85 | #### Anders, namelijk... |
95 | 86 |
|
96 | 87 | Zoals altijd bij Q-highschool mag je het "beter weten" / iets anders doen... wij zijn er voor jou! |
@@ -249,20 +240,143 @@ Dit kan bijvoorbeeld iets zijn als: de invoer van namen of teams en daaruit een |
249 | 240 |
|
250 | 241 | Natuurlijk is het internet een goede hulpbron; maar je maakt je werk wel zelf. Als je een tutorial volgt, geef duidelijk aan welke tutorial dat is. Dat maakt het mogelijk om bij het nakijken te zien wat je eigen inbreng is. De reden dat we willen dat je het _persoonlijk_ maakt, heeft hiermee ook te maken. |
251 | 242 |
|
| 243 | +Dat geldt ook voor het gebruik van chat-bots. Je kunt ChatGPT heel veel laten doen voor je, maar dan leer je het zelf niet! Natuurlijk werkt jullie docent dagelijks met chatbots samen, maar dat is wel na 20+ jaar alles zelf doen! |
| 244 | + |
| 245 | +Dus als je een chatbot gebruikt, houdt dan ajb bij wat je vraag was, wat de reactie was en _waarom_ dat een goed idee is (of juist niet). |
| 246 | + |
| 247 | +## Wat ga je maken |
| 248 | + |
| 249 | +Maak een digitaal huisdiertje. Zorg ervoor dat het bij jou past, of bij jullie docent. Of misschien juist een monstertje is! |
| 250 | + |
| 251 | +- Je diertje heeft minimaal 4 stats, zoals hoe blij die is, hoe moe, etc. |
| 252 | +- Je kunt die stats beinvloeden met acties |
| 253 | +- Er mag iets van willekeur in zitten bij die acties om het spannender te maken |
| 254 | + |
| 255 | +## Startpakket (ja, met dank aan ChatGPT) |
| 256 | + |
| 257 | +Let op dat dit startpakket natuurlijk niet volledig is! |
| 258 | +Personaliseer het dier naar hartelust! |
| 259 | + |
| 260 | +```html |
| 261 | +<!DOCTYPE html> |
| 262 | +<html lang="en"> |
| 263 | +<head> |
| 264 | + <meta charset="UTF-8"> |
| 265 | + <meta name="viewport" content="width=device-width, initial-scale=1"> |
| 266 | + <title>My Digital Pet</title> |
| 267 | + <link rel="stylesheet" href="style.css"> |
| 268 | +</head> |
| 269 | +<body> |
| 270 | + <div class="container"> |
| 271 | + <h1>My Digital Pet</h1> |
| 272 | + |
| 273 | + <div class="pet-area"> |
| 274 | + <img src="pet-happy.png" alt="Digital Pet" id="pet-image"> |
| 275 | + <p id="pet-message">I'm feeling great!</p> |
| 276 | + </div> |
| 277 | + |
| 278 | + <div class="stats"> |
| 279 | + <div>Hunger: <span id="hunger">5</span></div> |
| 280 | + <div>Happiness: <span id="happiness">5</span></div> |
| 281 | + <div>Energy: <span id="energy">5</span></div> |
| 282 | + </div> |
| 283 | + |
| 284 | + <div class="actions"> |
| 285 | + <button id="feed-btn">🍕 Feed</button> |
| 286 | + <button id="play-btn">🎾 Play</button> |
| 287 | + <button id="sleep-btn">💤 Sleep</button> |
| 288 | + </div> |
| 289 | + </div> |
| 290 | + |
| 291 | + <script src="script.js"></script> |
| 292 | +</body> |
| 293 | +</html> |
| 294 | + |
| 295 | + |
| 296 | +```css |
| 297 | +body { |
| 298 | + font-family: 'Arial', sans-serif; |
| 299 | + background: #f0f8ff; |
| 300 | + color: #333; |
| 301 | + display: flex; |
| 302 | + justify-content: center; |
| 303 | + align-items: center; |
| 304 | + min-height: 100vh; |
| 305 | + margin: 0; |
| 306 | +} |
| 307 | + |
| 308 | +.container { |
| 309 | + text-align: center; |
| 310 | + background: white; |
| 311 | + padding: 2rem; |
| 312 | + border-radius: 12px; |
| 313 | + box-shadow: 0 4px 10px rgba(0,0,0,0.1); |
| 314 | + width: 90%; |
| 315 | + max-width: 400px; |
| 316 | +} |
| 317 | + |
| 318 | +.pet-area { |
| 319 | + margin: 1.5rem 0; |
| 320 | +} |
| 321 | + |
| 322 | +.pet-area img { |
| 323 | + width: 150px; |
| 324 | + height: auto; |
| 325 | +} |
| 326 | + |
| 327 | +.stats { |
| 328 | + margin: 1rem 0; |
| 329 | + font-size: 1.1rem; |
| 330 | +} |
| 331 | + |
| 332 | +.stats div { |
| 333 | + margin: 0.5rem 0; |
| 334 | +} |
| 335 | + |
| 336 | +.actions button { |
| 337 | + font-size: 1.1rem; |
| 338 | + margin: 0.5rem; |
| 339 | + padding: 0.5rem 1rem; |
| 340 | + border: none; |
| 341 | + background-color: #87cefa; |
| 342 | + color: white; |
| 343 | + border-radius: 6px; |
| 344 | + cursor: pointer; |
| 345 | + transition: background 0.2s; |
| 346 | +} |
| 347 | + |
| 348 | +.actions button:hover { |
| 349 | + background-color: #4682b4; |
| 350 | +} |
| 351 | + |
| 352 | +``` |
| 353 | + |
| 354 | +Het bestand `script.js` maak je zelf, dat is namelijk waar jij in actie komt! |
| 355 | + |
| 356 | +Veel plezier |
| 357 | + |
252 | 358 |
|
253 | 359 | ## Inleveren |
254 | 360 |
|
| 361 | +- Maak een map met je naam erin als naam. |
| 362 | +- Maak van die map een zip-bestandje |
| 363 | +- Lever het in via https://app.q-highschool.nl/ |
| 364 | + |
255 | 365 |
|
256 | 366 | ## Beoordeling |
257 | 367 |
|
258 | 368 | Het gaat om de Javascript en niet zozeer om de HTML en CSS. Een leuk uiterlijk is prettig en kan bonus opleveren maar is niet noodzakelijk om een hoog cijfer te halen. |
259 | 369 |
|
260 | 370 | * Werk netjes, dus evenveel inspringen overal, gebruik code conventies of in elk geval doe steeds hetzelfde |
261 | 371 | * Geef functies en variabelen duidelijke namen. |
262 | | -* Voorkom herhalingen; schrijf je 2x hetzelfde of copy/paste, |
| 372 | +* Voorkom herhalingen; schrijf je niet meerdere keren hetzelfde of copy/paste, maar gebruikt loops en functies. |
263 | 373 | * Probeer grote stukken programma op te breken in kleinere stukken door functies te gebruiken. Wat "groot" is verschilt soms. |
264 | 374 |
|
265 | 375 |
|
| 376 | +Op "deadline-donderdag" plan ik gesprekjes met jullie in. Dat kan de deadline-donderdag zelf zijn, of de uitstel-deadline-donderdag. |
| 377 | +In een kort gesprekje kun je uitleggen wat je hebt gemaakt en waarom je bepaalde keuzes hebt gemaakt. Komen die dagen je niet uit, dan kunnen we in overleg een andere dag afspreken, zolang dat maar voor de deadline ligt! |
| 378 | + |
| 379 | + |
266 | 380 | # Enkele vreemde dingen in Javascript |
267 | 381 |
|
268 | 382 | ## Twee (of meer!) manieren om hetzelfde te bereiken |
|
0 commit comments