Note: This course is done. Next year will be a new, changed, curriculum. Here are a few results of this year though:
@theonejonahgold |
@MonikaaS |
@Denniswegereef |
@olli208 |
- Synopsis
- Description
- Communication
- Goals
- Grade
- Calendar
- Effort
- Materials
- Bugs
- Programme
- Conduct
- License
The course Backend is given at @CMDA in 2018 between 5 February and 12 April.
- Course: Backend
- Coordinator: Titus Wormer
- Lecturers: Titus Wormer (@wooorm) (BT 1 and BT 3) and Laurens Aarnoudse (@razpudding) (BT 2)
- SIS: Backend Development
- Credit: 3 ECTS
- Academic year: 2017-2018
- Period: Quarter 3 (spring)
- Programme: Communication and Multimedia Design (full time bachelor)
- Language: Dutch instructions and English resources
- Entry requirements: N/A
In Backend 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 SQL and NoSQL. Additionally, you’ll navigate the command line, version control with Git, and deploy your app. 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.
Backend 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 Frontend 1. This course is chosen alongside Frontend 2 and Project Tech, together making up Block Tech. In Project Tech you’ll apply your newfound backend skills.
If you’d like to continue with web development after this course, do a tech internship next quarter (Q4), choose Information Design (includes Frontend Apps, Functional Programming, and Frontend Data) for the fall semester next year, and pick Minor Everything Web in the spring semester after that.
- GitHub — Main source of information, assignments, important dates, and more
- Examples — Example code from slides
- Slack — General chatter and Q&A
- Moodle — Schedulers
The 2 main goals in this course are that you’re able to:
- Build web apps with Node
- Store data in a database
In practice you’ll learn to:
- Navigate the command line (week 1)
- Version control with Git (week 1)
- Collaborate on GitHub (week 1 and week 2)
- Write docs in Markdown (week 1 and week 2)
- Understand Node principles (week 2 and later weeks)
- Use packages from npm (week 2)
- Communicate over HTTP (week 3 and week 4)
- Use web frameworks like express (week 4 and week 5)
- Render data server-side (week 4)
- Upload data and files to servers (week 4)
- Request data from clients (week 4)
- Respond with data from a server (week 4)
- Use SQL and NoSQL databases like MySQL and MongoDB (week 5)
- Let users sign up, log in, be logged in, and log out (week 6)
Task | Weight |
---|---|
Participation | 10% |
Assessment 1※ (digital test) | 40% |
Assessment 2※ (oral test) | 50% |
Total | 100% |
※ passing both tests (min 5.5) is required
if (!participation && !a1 && !a2) {
grade = 'GR'
} else if (a1 < 5.5 || a2 < 5.5) {
grade = 1
} else {
grade = (participation * 0.1) + (a1 * 0.4) + (a2 * 0.5)
}
Dates are indicative. Check rooster.hva.nl
for info on actual
date, time, and place.
Class | Date BT 1 | Date BT 2 | Date BT 3 |
---|---|---|---|
Lecture 1 | 05-02 | 05-02 | 05-02 |
Lab 1 | 08-02 | 06-02 | 06-02 |
Lecture 2 | 12-02 | 12-02 | 12-02 |
Lab 2 | 15-02 | 13-02 | 13-02 |
Lecture 3 | 19-02 | 19-02 | 19-02 |
Lab 3 | 22-02 | 20-02 | 20-02 |
Lecture 4 | 05-03 | 05-03 | 05-03 |
Lab 4 | 06-03 | 06-03 | 06-03 |
Lecture 5 | 12-03 | 12-03 | 12-03 |
Lab 5 | 13-03 | 13-03 | 13-03 |
Lecture 6 | 19-03 | 19-03 | 19-03 |
Lab 6 | 22-03 | 20-03 | 20-03 |
Assessment 1 | 26-03 | 26-03 | 26-03 |
Lab 7 | 27-03 | 27-03 | 27-03 |
Lab 8 | 03-04 | 03-04 | 03-04 |
Assessment 2 | 09-04 or 10-04 | 09-04 or 10-04 | 09-04 or 12-04 |
Assessment 1 resit | 29-06 | 29-06 | 29-06 |
Assessment 2 resit | 28-06 | 25-06 | 25-06 |
The below table breaks down the general time needed to complete activities.
Activity | Effort |
---|---|
Lecture (6 × 1:40h) | 10:00h |
Lab (8 × 1:40h) | 13:20h |
Assignments (5 × 6:00h) | 30:00h |
Assessment 1 | 10:00h |
Assessment 2 | 20:40h |
Total | 84:00h |
The below table breaks down the general time needed per week.
Week | Effort | Topic | Activities |
---|---|---|---|
1 | 9:20h | command line | lab, lecture, assignments |
2 | 9:20h | node | lab, lecture, assignments |
3 | 9:20h | http | lab, lecture, assignments |
4 | 9:20h | express | lab, lecture, assignments |
5 | 9:20h | database | lab, lecture, assignments |
6 | 13:20h | users | lab, lecture, learn for assessment 1 |
7 | 12:00h | style, review | lab, assessment 1, work on assessment 2 |
8 | 12:00h | deploy | lab, work on assessment 2 |
9 | assessment 2 |
- 🆓 Young, Alex, and Mike Cantelon. Node.js in Action. Manning, 2017 (optional※)
- 🆓 Hahn, Evan. Express in Action. Manning, 2016 (optional※)
※ free for AUAS students through Safari Books
- 🆓 Codecademy (course) — Intro to JavaScript: Learn to code interactively
- 🆓 Re-introduction to JavaScript (article) — Short re-introduction to JavaScript
- 🆓 JavaScript Essentials (course) — Learn JavaScript on Lynda (free for AUAS students through our portal)
- 🆓 JavaScript For Cats (book) — Intro to JavaScript for new programmers
- 🆓 JavaScript 30 (course) — 30 day vanilla JavaScript coding challenge
- 🆓 Eloquent JavaScript (book) — Modern intro to programming
- 🆓 Programming 101: Learn English (video)
- Duckett, Jon. HTML & CSS. John Wiley & Sons, 2015 (internetstandaarden)
- Howe, Shay. Learn to Code HTML & CSS. New Riders, 2014 (internetstandaarden)
- Duckett, Jon. JavaScript & jQuery. John Wiley & Sons, 2015 (inleiding programmeren)
- Simpson, Kyle. YDKJS: Up & Going. O’Reilly Media, 2015
- Simpson, Kyle. YDKJS: Scope & Closures. O’Reilly Media, 2015
- Simpson, Kyle. YDKJS: this & Object Prototypes. O’Reilly Media, 2015
- Simpson, Kyle. YDKJS: Types & Grammar. O’Reilly Media, 2015
- Simpson, Kyle. YDKJS: Async & Performance. O’Reilly Media, 2015
- Simpson, Kyle. YDKJS: ES6 & Beyond. O’Reilly Media, 2016
If you have questions:
- Read the manual for the technology in question (Git, GitHub, Node, npm, express, MySQL, MongoDB)
- Browse examples
- Search StackOverflow
- Use a search engine like DuckDuckGo
- Ask questions on Slack
- Contact a lecturer
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.
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).
Unless stated otherwise, code is MIT © Titus Wormer, docs and images are CC-BY-4.0.