Client side programming

Course Introduction

 

slides.com/jkohlin/js1

What this course is about

  • Learning the fundamentals of programming
  • ...using the JavaScript language
  • "Hacking" HTML, CSS, the browser and your phone
  • Use that knowledge to create web apps

Why learn programming?

I already know HTML & CSS

  • A web page without JavaScript
    is like a car without an engine
  • The world needs programmers
  • You need a job
  • It really is fun, like proper fun.

fall 2019

10 lectures/workshops

5 lab assignments (2,5 credits)

1 exam (5 credits)

 

spring 2020

10 lectures/workshops

3 lab assignments (2,5 credits)

1 project (5 credits)

Course structure

Course documents - CANVAS

Lectures

Johan Kohlin

Jesper Sundén

Antonia

Emilio

Gintaré

Yordan

Course manager

office: E3410

email: kojo@ju.se

Tutors

Chief of labs

jesper@redcapesit.se

Josiana Greenaway

Extra Lab examinator

Labs

Course developers

?

?

Meeting after 2 weeks

Lab groups

L1

L2

L3

First come, first served

join a group in Canvas/People/TKPK18 -Lab groups

Schedule

L1

L2

L3

L2

L1

L3

Examination Schedule

Exam

present labs

Don't wait till the end!

understand

  • display knowledge and understanding of basic concepts of programming like variables, data types, iterations, conditional statements and functions
  • display knowledge of core concepts of object orientation
  • show familiarity with the possibilities, limitations and current uses of JavaScript
  • demonstrate comprehension of different design principles in the development of JavaScript applications
  • demonstrate comprehension of the relationship between JavaScript, HTML and CSS

do

  • demonstrate the ability to troubleshoot and identify basic programming errors
  • demonstrate the ability to autonomously solve a given problem and choose a suitable method
  • demonstrate skills in creating web applications with a graphical user interface
  • demonstrate the ability to apply existing JavaScript libraries and frameworks
  • demonstrate skills in communicating with modern browser APIs, like geolocation and device orientation, to improve the user experience

Learning outcomes

LABS

exam

project

}

YOUR GRADE

LABS

Mandatory

  • Present 5 labs for fall 2019
  • Present 3 labs for spring 2020

exam

Dec 17 2019 14:00 - 17.00

28 points

+1p for correct answer

-0,5p for wrong answer

No help

Part 1:  Multiple choice

Part 2: coding

27 points

No minus points

Automatic testing

Help/Reference:

developer.mozilla.org

w3schools.com

25 points to pass

project

web app

nmd.ju.se/student-work/

project

web app

  • What's your favorite game - arcade game, board game, sports game? Could you make a simplified, digital version of that? Could you mix it up a bit, like give it a different theme or main characters?

  • What are your other favorite academic fields? If you love art, could you make an
    art-making program? If you love history, how about an interactive timeline? If you love science, how about a scientific simulation? 

  • What's your favorite movie or TV show? Could you make a digital version of a scene or character from it? Maybe make a game based on it?

  • What's a real-life gadget that you love? Could you make a simulation of it?

Is it ok to copy code?

NO!

  1. On your private projects
  2. At work* and you reference the author:
/* The following 7 lines code was adapted from a post at: 
http://stackoverflow.com/questions/31456273/calculate-my-speed. 
Accessed: 2016-09-20 */ 

function calculateSpeed(t1, lat1, lng1, t2, lat2, lng2) {
  if (typeof(Number.prototype.toRad) === "undefined") {
    Number.prototype.toRad = function() {
      return this * Math.PI / 180;
    }
  } 
} 
// more examples on Pingpong/documents/general information.

* There might be legal issues though. Check the licence properly.

What happens if you do?

You will become a case for the 

Disciplinary and Expulsion Committee

😳 

how do we avoid it?

presentations

face to face

with Jesper or Josianna

Course Literature

Head first JavaScript programming.

Freeman, E. & Robson, E. (2014).

O'Reilly. 702 p

 

-Read one chapter per week*

-Do all exercises.

* With some exceptions

Course Literature

Start with Chapter 1 this week.

Save the parts regarding loops

programming is hard.

I can only teach you. You need to learn!

  • Start reading the book as soon as possible
  • Do all the exercises in the book
  • Redo lab assignments until you know them by heart
  • Spend at least 20 minutes/day on writing code
  • ASK QUESTIONS ALL THE TIME

Client side programming 2019

By Johan Kohlin

Client side programming 2019

Course introduction

  • 701