Skip to content
This repository has been archived by the owner on Jun 25, 2021. It is now read-only.
/ be-course-20-21 Public archive

🎓 Backend · 2020-2021 · Curriculum and Syllabus

License

Notifications You must be signed in to change notification settings

cmda-bt/be-course-20-21

Repository files navigation

Backend - Course 2020-2021

Note: Back-end has concluded for 2020/2021. Next year will be a new, changed, curriculum. Have a look at the /examples folder to see some results from this year. A big thank you to our all our students, student assistants and teachers!

Table of Content

Synopsis

The course Back-end is given at @CMDA in 2021 between February 3 and June 26.

Description

In Back-end we peek behind the curtains and inspect what’s behind the web. You build web apps with Node.js, communicate with HTTP, and store data in a database with MongoDB. In this course you’ll advance your web dev skills. You’ll learn to use computers to actually make what you design work: people can actually fill in forms, like things, and upload files.

Back-end is an elective course given in Quarter 3 (spring) after the core curriculum of our programme, building further on knowledge acquired in Internetstandaarden, Inleiding Programmeren, and Blok Web. This course is chosen alongside Frontend 2 and Project Tech, together making up Block Tech.

If you’d like to continue with web development after this course, do a tech internship, choose the Tech Track for the fall semester next year, and pick Minor Everything Web in the spring semester after that. Just a quick check if anyone actually reads this: if you see this, please send your teacher a picture of your favorite animal.

Back-end is part of the CMD Amsterdam design & build space (technical course) that focusses on Conceptualizing (2), Imagining and creating (3), Multidisciplinary collaboration (5) & Research (9) competences.

Communication

  • GitHub — Main source of information, slides, assignments and more
  • Microsoft Teams — General chatter and Q&A
  • Brightspace — Schedulers, rubrics and grading

If you have questions:

This course doesn't have office hours. Teachers have limited time to help you outside of class. Attendance to class is not compulsory. 80% of success in this course is showing up, so show up and come prepared with your questions. Don't hesitate to ask questions or feedback during class.

Goals

Main goals

The main goals in this course:

  • You can build web apps with Node and use packages from NPM
  • You can communicate over HTTP and understand the client / server flow
  • You can render data server-side with a templating engine
  • You can store data in a database and update that data
  • You can write documentation that other developers understand
  • You can explain your code and the cohesion (flow) of your application

Sub goals

In practice you’ll learn to:

  • Understand Node principles (week 1)
  • Use packages from npm (week 1)
  • Use web frameworks like express (week 2)
  • Communicate over HTTP (week 2)
  • Render data server-side with templating (week 2)
  • Upload data and files to servers (week 3)
  • Request data from clients (week 3)
  • Store and update data in a MongoDB database (week 4)
  • Use localStorage to store data client-side (week 4)
  • Pick your own topic to work on (deploy, security etc.) (week 5+)

The below table breaks down the general time needed per week.

Week Effort Topic Activities
0 NaN getting started getting started
1 9:20h node & express lab, lecture, assignments
2 9:20h query & template lab, lecture, assignments
3 9:20h http lab, lecture, assignments
4 9:20h database lab, lecture, assignments
5 NaN assessment 1 a1 (oral test)
6 13:20h topic lab, work on prototype
7 13:20h topic lab, work on prototype
8 NaN assessment 2 a2 (oral test)

Check rooster.hva.nl for exact class dates

Grade

Task Weight
Assessment 1 (individual) 60%
Assessment 2 (team) 40%
Total 100%
if (!a1 && !a2) {
  grade = 'GR'
} else if (a1 < 5.5 || a2 < 5.5) {
  grade = 1
} else {
  grade = (a1 * 0.6) + (a2 * 0.4)
}

Programme

This course is given at Communication and Multimedia Design, a design bachelor focused on interactive digital products and services. CMD is part of the Faculty of Digital Media and Creative Industries at the Amsterdam University of Applied Sciences.

Our curriculum and course material are publicly available on the Block Tech (github.com/cmda-bt) GitHub organization. We follow the global trend to make teaching materials accessible to everyone inspired by the Open Education Global.

Conduct

This course has a Code of Conduct. Anyone interacting with this repository, organisation, or community is bound by it. Staff and students of the Amsterdam University of Applied Sciences (Hogeschool van Amsterdam) are additionally bound by the Regulation Undesirable Conduct (Regeling Ongewenst Gedrag).

Statements

We are dedicated to provide you with a learning environment that is rigorous, respectful and supportive so you can engage in the free exchange of ideas and commit yourself fully to the study of your discipline. To that end we are committed to enforce important AUAS policies. You can find our policies and statements (e.g. accessibility, health, plagiarism) in the docs folder.

License

MIT © Danny de Vries, docs and images are CC-BY-4.0.