COMP6080

Web Front-End Programming

Week 1

Outline

What is a front-end developer?

Someone who writes code that is executed client-side, typically part of a end-user facing product.

 

In most cases, they write code for web browsers. This is a course about helping you make web browsers do things.

 

They largely use HTML to structure pages, CSS to style them, and Javascript to make them dynamic.

 

They build things for people to use.

Why COMP6080?

Web is exploding.

 

How did we get to this point?

The progress in web

1. HTML Static Pages

HTML released 1993

Beginning of websites

2. Basic CSS / Javascript

JS released 1995, CSS released 1996

Now things don't like terrible

The progress in web

3. AJAX and background requests

AJAX appeared 2000~

A whole new class of websites, without the need to refresh

The progress in web

4. NodeJS & Typescript

NodeJS released 2009, TS released 2012

Type checking and common codebases - the beginning of heavy JS infrastructure

The progress in web

5. Hybrid Apps, Electron

Electron, Apache Cordova

Type checking and common codebases - the beginning of heavy JS infrastructure

The progress in web

6. Declarative Frameworks

AngularJS released 2010, ReactJS released 2013, VueJS released 2014

Building of complex applications rapidly and in a scalable way. A web approach finally optimised for apps, rather than pages.

The progress in web

In the vast majority of cases, your native desktop applications, native mobile applications, and web-apps or websites, can be built on a web-based, javascript based stack.

The progress in web

Course Overview

This is a new course, and we appreciate your understanding as we figure things out together.

 

  • Assumed Knowledge
  • Learning Outcomes
  • Teaching approach

Assumed Knowledge

  • Basics of GIT (checkout git-basics)
  • Basics of HTTP & Web Browsers
  • High level understanding of scripting languages

 

This course has no other assumed knowledge. Experienced web developers will likely find this course slow.

Learning Outcomes

Summarised

  1. Fundamentals of Javascript to design, construct, test, debug code
  2. Understanding HTML, CSS, DOM, to construct web pages
  3. Modern Javascript & CSS frameworks, to build componentised apps
  4. Understanding of asynchronous programming in the context of JS
  5. Basic knowledge of front-end security
  6. Awareness of UI/UX design, including accessibility

Approach to teaching front-end

A number of topics won't be included in the course. You can read more about those specific topics in our FAQ.

 

Teaching front-end comes with it's challenges, including:

  • Rapidly developing tool sets
  • The need to understand modern tools & fundamental knowledge
  • The breadth of the tech stack on which web is built

The Team

We have a team of staff from UNSW, Canva, and Google assisting with the course.

 

The Team

UNSW Team

  • Hayden Smith
  • Anto Lepejian
  • Clarence Feng
  • Emily Luxa
  • Kaiqi Liang
  • Marina Reshetnikova
  • Mariya Shmalko
  • Melanie So
  • Ravija Maheshwari
  • Simon Haddad
  • Soorria Saruva
  • Lavanya Sood
  • Jamie Domingo
  • Yasmin Akhtar

Zain Afzal

Google

The Team

The Team

Assessment Structure

There is no direct assessment associated with Lectures or Tutorials

 

Item Due Weighting
Assignments Due weeks 4, 7, 10 75%
Exam Exam Period 25%

Start assignment 2 early.

Teaching Methods

Lectures:

  • Avg 2 hours of pre-recorded per week (tightly broken up)
  • Avg 2 hours live lectures (Mon & Wed 6pm-8pm) (often to reinforce)

 

Tutorials:

  • Chance to further elaborate on content from lectures and discuss topics
  • 1 hour per week with your tutor

 

 

 

Teaching Methods

Exercises / Help Sessions:

  • Chance to talk to tutors and get help on matters to do with tutorials, exercises, and assignments
  • Each week we provide you with a copy of exercises to complete. At the end of each week we will release solutions.
  • Chance to practice skills discussed in lectures and tutes in breadth
  • Help sessions will contain 1-3 tutors who will be split between assisting students with questions, and marking labs off

 

Assignments:

  • A chance to practice skills in depth
  • Ass1: Static HTML/CSS + Intro to DOM
  • Ass2: Building an app with HTML/CSS/VanillaJS
  • Ass3: Building and testing an app with ReactJS

 

 

Getting Help

If you need help with something, go here:

  1. EdStem (sidebar on Webcms3)
  2. Help Sessions
  3. cs6080@cse.unsw.edu.au

Getting Setup

 

Running your code:

  • In this course you'll need to use: NodeJS, NPM, Web Browser, HTML, CSS, ReactJS, and more.
  • All of these tools can be easily run on your local machine (recommended) for OSX, Linux, or Windows.
  • If you aren't comfortable with local installs, you can complete the course using gitlab (we have installed all relevant programs there).

Gitlab

 

 

Resources

  • Web is a very well-resourced set of tools on the internet. Self-guided research will generally be adequate.
  • The biggest issue will be finding the appropriate resources.
  • Lectures may include resources on slides, and we also have a course-wide resources page here.

Style Guide

Information about style guides for particular languages can be found on the style guides page.

Feedback

Throughout term, you can leave anonymous feedback by clicking on the link in the Webcms3 sidebar "Feedback"

Getting Along

  • Understand the expectations around student conduct.
  • Create an inclusive learning environment.
  • Let's all treat each other with respect and understanding.

 

A taste: "Making web browsers do things"

  • Most things we do in this course are various combinations of:
    • HTML: Page structure
    • CSS: Page aesthetics
    • Javascript: Page dynamics
  • Other topics we discuss are not about technology, but rather how to use it effectively:
    • Accessibility, product design, UI/UX, testing
  • Let's do a short demo to explore what is coming up in the first weeks

Assignment 1

Let's take a look at assignment 1 together

 

Your own personal copy of this repository has been deployed to your gitlab space.

Feedback

COMP6080 21T3 - Live - 1.1 - Outline

By haydensmith

COMP6080 21T3 - Live - 1.1 - Outline

  • 987