Skip to content
This repository has been archived by the owner on Jul 21, 2020. It is now read-only.
/ pt-course-19-20 Public archive

🎓 Project Tech · 2019-2020 · Curriculum and Syllabus

License

Notifications You must be signed in to change notification settings

cmda-bt/pt-course-19-20

Repository files navigation

Project Tech - 2019-2020

Project Tech is a first stepping stone for you to become a web developer.

Table of Contents

Synopsis

Project Tech is a @cmda project given in 2020 between either February 3 and April 3 or April 14 and June 18. You will become a well-rounded (but novice) web developer on a team

Description

Project Tech is a first stepping stone for you to become a well-rounded web developer (or a designer with knowledge of how things are made). You'll build a dynamic prototype of a web application. This project continues where earlier courses left off with topics such as HTML, CSS, JS, research, design, and project management.

We’ll focus on what it means to be a web dev, the current landscape of that space, and topics such as privacy, security, diversity, inclusion, accessibility, communication and team work.

You’ll learn about those “softer” skills and “harder” essentials such as how to use the command line, a text editor, version control, build tools, and code quality.

Communication

Goals

Main goals

The main goals in this project are:

  1. You can design a part of a dynamic web application
  2. You can research current topics in web development (such as code standards, code style, version control, local development setup)
  3. You can collaborate with other developers (do version control with github, use code standards and code style, document your project)
  4. You can recognise good quality code and review other people's code.
Subgoals

In practice you will:

  • Version control with Git (lab 1)
  • Write docs in Markdown (lab 1)
  • Navigate the command line (lab 2)
  • Set up a Github repository (lab 2)
  • Understand the current landscape of web dev (lab 4)
  • Value a consistent code style and adhere to code standards (lab 4)
  • Customize your local machine (lab 4)
  • Collaborate on GitHub (lab 5)
  • Review code (lab 5)
  • Think about privacy and security issues (lab 7)

Calendar

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 Date BT 4 Date BT 5
Kickoff feb 3rd feb 3rd feb 3rd apr 20th apr 20th
Lab 1 feb 7th feb 7th feb 7th apr 23th apr 24th
Lab 2 feb 14th feb 14th feb 14th may 8th may 8th
Present static prototype feb 28th feb 28th feb 28th may 14th may 15th
Lab 4 mar 6th mar 6th mar 6th may 19th may 19th
Lab 5 mar 13th mar 10th mar 13th may 28th may 29th
Present indiv. assignment mar 20th mar 20th mar 20th may 5th may 5th
Lab 7 mar 27th mar 27th mar 27th jun 11th jun 12th
Lab 8 apr 3rd apr 3rd apr 3rd jun 18th jun 19th
Assessment apr 9th apr 9th apr 8th jun 24th jun 24th
Assessment resit jun 22nd jun 25th jun 26th jun 23rd jun 23rd

Effort

Per activity

This table breaks down expected time needed to complete activities.

Activity Effort
Kickoff 1:40h
Lab (3 × 1:45h, 3 × 3:30h) 15:45h
Lecture (3 × 1:45h) 5:15h
Coaching (2 × 0:30h) 1:00h
Work on project (8 × 11:30h) 92:00h
Assessment 1:00h
Total 116:40h

Assignment

For this project you will build a dynamic and working prototype of a dating application made with Node.js, a database (Mongo?), HTML, CSS, and client-side JS. This means that people can actually sign up and add things. Not that it is a finished project that is fast, beautiful, secure, scalable, or ready to be used right away.

The first part of the project you will work individually on a job story. You will do research on existing dating apps and come up with a job story. You then start sketching and designing the components within your job story. You end with a working prototype of your job story using knowledge and skills acquired in backend and frontend

In the second part of the project, you will create a team of 3 students and combine your job stories into one complete dating app. It is important that your team makes decisions together based on consensus. And that everyone applies knowledge and skills acquired in backend and frontend. To illustrate, this means every team member works with templates. Not that one person does CSS and the person with pre-existing knowledge the whole backend. So split work per feature (such as liking) instead of per area (such as templating).

Progress would look something like this:

  • Week 1: Kickoff
  • Week 2: Benchmark creation, style guides, job story
  • Week 3: Wireflow, wireframes, static site, github setup
  • Week 4: Readme, routes, templates, render
  • Week 5: Database, create, update, delete
  • Week 6: Progressive enhancement, complete job story done (individual assignment)
  • Week 7: Create and design team project, github setup
  • Week 8: Finish up (team assignment)

Of course, it’s expected that progress in practice is more chaotic and iterative.

It’s often relatively easy to come up with a complex idea. It’s typically hard to make a complex idea into reality. Keep your concept as basic as possible (while meeting this project’s criteria). Focus on essentials first and add bells and whistles later.

Grade

This project consists of two parts: first an individual assignment (60%), then a team assignment (40%). Both assignments get a grade (1-10) and both assignments have different weights in the calculation of the final grade of the project (60% for a1 individual, 40% for a2 team). The two assignments can compensate each other.

Grades for this project follow standard academic grading of the Netherlands. The scale ranges from 1 (very poor) to 10 (outstanding). We use marks to one decimal place (such as 7.2). The lowest pass mark is 5.5.

Attendance

This project is highly participatory. You are expected to contribute to discussions and give feedback to peers. Attendance to class is not compulsory. 80% of success is showing up though, so show up.

This project includes team work. Everybody hates that one team mate that doesn’t do anything. Don’t be that team mate. Participation in team work is compulsory and part of your grade.

This project does not have office hours. Use Slack and show up in class instead.

Bugs

If you have questions:

Health

Please take care of yourself. Eat well, exercise, get enough sleep. A healthy lifestyle helps to cope with study stress and improves your chances of succeeding this period. Study stress includes for example concentration problems, exam stress, failure anxiety, or procrastination.

If you are experiencing difficulties, know that help is available. Please contact your student counsellor for help with study stress, dyslexia, disabilities, chronic illness, personal problems, etc. The UvA psychologist’s office also offers various types of support, such as workshops, training sessions, and consultation. As a AUAS student you can get support and do not need a referral.

Conduct

This project has a code of conduct. Anyone interacting with this repository, organization, or community is bound by it.

Staff and students of AUAS (HvA) are additionally bound by the regulation undesirable conduct (regeling ongewenst gedrag).

Privacy

GDPR and our university’s privacy statement ensure the confidentiality of student records.

An important part of the experience of becoming a web developer is to exit the walled garden that is formal education. To participate, collaborate, and join the conversation happening around you on the internet. Which is what we’ll do in this project. And why we asked you to sign a waiver to join this project.

Students are sometimes reluctant to share work online as they are afraid of negative feedback. Typically though, poor quality work is ignored rather than ridiculed (in fact, most work is ignored). Good work in a project like this is instead used by students to land job offers in the future. And the experience of collaborating online often provides a positive transformative experience.

If you are afraid of stalkers, don’t want your family finding out what you work on, or for other reasons want to stay anonymous in the online parts of our project, you may use an anonymous username, email address, and avatar.

Academic integrity

See our university’s sections on copyright and acknowledging sources and our program’s teaching and examination regulations (available in Dutch as onderwijs- en examenregeling) for information on academic integrity. To summarize our stance: Credit awarded to a person should represent the work of that person. Therefore, we expect that students produce their own original work. Collaboration or assistance with work is not permitted unless explicitly authorized by instructor(s).

It is required to cite all sources. If collaboration or assistance is permitted by instructor(s), any collaboration or assistance must be clearly acknowledged. Failure to cite or acknowledge is grounds for a charge of cheating or plagiarism.

Our program’s teaching and examination regulations § 4, specifically ¶ 4.4, gives a definition of plagiarism, of which we paraphrased a couple here:

b. presenting the structure or central ideas developed by someone else as your own work or ideas, even when a reference to other authors has been included;

[…]

e. copying (parts of) media files or other sources, software source codes, models and other diagrams of other people without acknowledgement and allowing it to be held as your own work;

Help

In this project, we require you to collaborate with team members. We also strongly urge you to help your class mates. Please refrain from doing their work for them. You can often tell when you cross that line. Don’t cross it. And always acknowledge when someone helped you.

Free and open source software

We strongly urge you to use free and open source software in the form of libraries and require you to use Node. If you find a project on GitHub (or similar platforms), that doesn’t mean that you are allowed to use it. Projects must have a license that explicitly lets you use it. Acknowledge the authors of these works by citing their name and linking to their projects.

Program

This project 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.

The first three semesters at @cmda are a joint program that provides the fundamental knowledge to design and build digital products. In the fourth semester students can express individual interest as they take electives courses that specialize in certain fields. One of these electives is project tech (this project), which is chosen along with backend and frontend, forming cluster block tech. Together, this cluster provides essential knowledge needed to specialize in building the web. To continue with web development, choose tech track in semester 5 and minor everything web in semester 6.

License

Unless stated otherwise, code is MIT © Titus Wormer, docs and images are CC-BY-4.0 © Titus Wormer.