SlideShare a Scribd company logo
Untangling the web
Class 6: user research, build tools, more javascript, and putting a website up
Agenda
 Homework discussion
 UX and collaboration
 Build tools
 More JavaScript
 Integrating JS into a web page
 functions
 Scope and context
 JS exercises and project 1 group discussions
 Homework 5
Homework 4
 Folks had a harder time with this than previous homeworks
 As we get into the programming assignments, more time will be required and
more work on your own
 Resources:
 The computer science assistance centre, ECS 251,
https://connex.csc.uvic.ca/portal/site/cscassist
 For this initial exercise: http://www.teaching-materials.org/javascript/
 Ask for help on the slack channel
 Start early in case you get stuck!
 If you copy code from online, reference where you got it!
Homework 4
 Concepts:
 Arrays
 Functions
 Looping
 Printing (one form, console.log)
Homework 4 – Arrays and functions
 var wordLetters = ['G', 'O', 'A', 'T'];
 var guessedLetters = ['_', '_', '_', '_'];
 Function guessLetter(letter) { do stuff…}
 guessLetter('G');
 guessLetter('I');
 guessLetter('O');
 guessLetter('A');
 guessLetter('T');
Homework 4 – looping and printing
function guessLetter(letter) {
var goodGuess = false;
var moreToGuess = false;
for (var i = 0; i <
wordLetters.length; i++) {
if (wordLetters[i] == letter) {
guessedLetters[i] = letter;
goodGuess = true;
}
if (guessedLetters[i] == '_') {
moreToGuess = true;
}
}
if (goodGuess) {
console.log('Yay, you found a
letter!');
console.log(guessedLetters.join(''));
if (!moreToGuess) {
console.log('YOU WON!');
}
} else {
console.log('Oh noes, thats not
right!');
}
}
Additional topics on the homework
 Limit number of wrong guesses
 Displaying on web pages rather than the REPL
UX and collaboration
 I’m giving this section incredibly short shrift
 There is a third year HCI course entirely devoted to this topic, when I taught it we
spent 4 classes just on the material shoved into the next 20 minutes
 I wanted to give a flavour of it, though, because in a well executed project 1 there
will be some user research, even if only from secondary sources
UX research
 Primary sources
 Interviewing users
 Doing prototype usability studies
 Naturalistic observation of user behaviour
 User comments on your software (if it’s released)
 Secondary sources
 Web research
 User comments on forums about similar software
 Primary sources are best, but secondary sources are fine for early stage
User stories and Personas
 Often before you have real users, you need imaginary users
 The more concrete these users are the better, build a back-story!
 These are personas
 These personas interact with your software in multiple ways
 These are user stories
 User stories are an important explanatory technique for your project
 User personas are an important tool to make those stories real and to prioritize
features
Team roles
Collaboration strategies
 Hackathons
 Agile development
 Sprints
 Scrums
 Waterfall development
Back to Git
 Each person develops in a branch
 Those branches are merged onto the master branch
 The master branch is tested to make sure the merged code behaves as expected
Testing strategies
 Individual code is tested before merging as well
 This is likely to be ad-hoc testing in this class
 In more rigorous environments Test Driven Development (TDD) is practiced
 In this model, the developer writes test cases before writing the code
 Then the tests are automated to see if the code is meeting all the cases
 It is a really good practice to get into!
Build tools
 This is getting back to class 4
 I’m not going to spend too much more time on a local build environment, but it is
essential to doing time-effective development
 We’ll go through one of my environments to illustrate
 I won’t enforce that you set up an efficient dev environment, but I certainly suggest
it. Meaning:
 Understand the command line
 Understand a local editor (I suggest VS Code, but sublime or atom are fine too)
 Use a local build tool to run a local web server with hot reloading and linting
Build tools
Build tools reading assigment
 Basic version
 http://blog.modulus.io/introduction-to-grunt
 Advanced version
 https://github.com/verekia/js-stack-from-
scratch?utm_campaign=React%2BNewsletter&utm_medium=email&utm_source=
React_Newsletter_47
More JS – integrating JS into a web page
 Basic version
 https://jsfiddle.net/
 Just save the fiddle and submit the homework as a link
 Advanced version (you’ll need to get to this one eventually, but not necessarily this
week)
 Set up and run a local build environment
 Copy the project up to a server (ie. nitrous.io or the generated version to github pages)
More JS – Functions and scope
 You wrote a function in the last homework
 Another function could go into that same file
 Would it share the same variables? Will this work?
Var variable1 = “foo ”
Function hello(name) {
Var compliment = “nice”;
Console.log(“hello “+compliment+name);
}
Function goodbye(name) {
Console.log(“bye “+compliment+name);
}
More JS - scope
 What about this?
Var variable1 = “foo ”
Function hello(name) {
Var compliment = “nice”;
Console.log(“hello “+compliment+name);
}
Function goodbye(name) {
Console.log(“bye “+variable1+name);
}
More JS – execution context
 The “this” pointer
 Scope is about variables, execution context is about objects
 New keyword
 Another reading assignment
 http://ryanmorr.com/understanding-scope-and-context-in-javascript/
JS exercises
 http://www.w3resource.com/javascript-exercises/
 (we’ll spend a couple minutes looking at these as a group and then there will be
time to work on your own or work in your project groups)
Homework 5
 Create a web page that asks for pizza toppings and creates your order
 Display a list of toppings and their associated prices, include at least 5 items in the
list
 Pizza toppings should be typed in by the user in a comma delimited list in a single
text box. When all the toppings are entered, the user presses a “prepare order”
button
 The program should take the toppings and present the toppings with a total price.
When the user presses the “place order” button present a pop-up dialog that says
“thanks!”. Use CSS to make the thanks message large and red.
 (if you have a problem with the pop-up, you can just display the thanks message
underneath the button, but try to figure out the pop up!)

More Related Content

What's hot

Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
Derek Jacoby
 
Untangling8
Untangling8Untangling8
Untangling8
Derek Jacoby
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
Derek Jacoby
 
Untangling spring week9
Untangling spring week9Untangling spring week9
Untangling spring week9
Derek Jacoby
 
Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10
Derek Jacoby
 
Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2
Derek Jacoby
 
Untangling the web week1
Untangling the web week1Untangling the web week1
Untangling the web week1
Derek Jacoby
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1
Derek Jacoby
 
Untangling - fall2017 - week6
Untangling - fall2017 - week6Untangling - fall2017 - week6
Untangling - fall2017 - week6
Derek Jacoby
 
Untangling - fall2017 - week5
Untangling - fall2017 - week5Untangling - fall2017 - week5
Untangling - fall2017 - week5
Derek Jacoby
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
Susan Winters
 
Untangling11
Untangling11Untangling11
Untangling11
Derek Jacoby
 
Untangling the web week 2 - SEO
Untangling the web week 2 - SEOUntangling the web week 2 - SEO
Untangling the web week 2 - SEO
Derek Jacoby
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9
Derek Jacoby
 
Untangling - fall2017 - week 10
Untangling - fall2017 - week 10Untangling - fall2017 - week 10
Untangling - fall2017 - week 10
Derek Jacoby
 
Don't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsDon't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web Applications
Stoyan Stefanov
 
The What & Why of Pattern Lab
The What & Why of Pattern LabThe What & Why of Pattern Lab
The What & Why of Pattern Lab
Dave Olsen
 
JavaScript : A trending scripting language
JavaScript : A trending scripting languageJavaScript : A trending scripting language
JavaScript : A trending scripting language
AbhayDhupar
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
Alex S
 
Drupal Flyover, CMS Expo
Drupal Flyover, CMS ExpoDrupal Flyover, CMS Expo
Drupal Flyover, CMS Expo
Emma Jane Hogbin Westby
 

What's hot (20)

Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
 
Untangling8
Untangling8Untangling8
Untangling8
 
Untangling spring week5
Untangling spring week5Untangling spring week5
Untangling spring week5
 
Untangling spring week9
Untangling spring week9Untangling spring week9
Untangling spring week9
 
Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10
 
Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2
 
Untangling the web week1
Untangling the web week1Untangling the web week1
Untangling the web week1
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1
 
Untangling - fall2017 - week6
Untangling - fall2017 - week6Untangling - fall2017 - week6
Untangling - fall2017 - week6
 
Untangling - fall2017 - week5
Untangling - fall2017 - week5Untangling - fall2017 - week5
Untangling - fall2017 - week5
 
What is HTML 5?
What is HTML 5?What is HTML 5?
What is HTML 5?
 
Untangling11
Untangling11Untangling11
Untangling11
 
Untangling the web week 2 - SEO
Untangling the web week 2 - SEOUntangling the web week 2 - SEO
Untangling the web week 2 - SEO
 
Untangling - fall2017 - week 9
Untangling - fall2017 - week 9Untangling - fall2017 - week 9
Untangling - fall2017 - week 9
 
Untangling - fall2017 - week 10
Untangling - fall2017 - week 10Untangling - fall2017 - week 10
Untangling - fall2017 - week 10
 
Don't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web ApplicationsDon't make me wait! or Building High-Performance Web Applications
Don't make me wait! or Building High-Performance Web Applications
 
The What & Why of Pattern Lab
The What & Why of Pattern LabThe What & Why of Pattern Lab
The What & Why of Pattern Lab
 
JavaScript : A trending scripting language
JavaScript : A trending scripting languageJavaScript : A trending scripting language
JavaScript : A trending scripting language
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
 
Drupal Flyover, CMS Expo
Drupal Flyover, CMS ExpoDrupal Flyover, CMS Expo
Drupal Flyover, CMS Expo
 

Viewers also liked

Untangling the web - week 3
Untangling the web - week 3Untangling the web - week 3
Untangling the web - week 3
Derek Jacoby
 
Untangling spring week3
Untangling spring week3Untangling spring week3
Untangling spring week3
Derek Jacoby
 
Biohacking
BiohackingBiohacking
Biohacking
Derek Jacoby
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6
Derek Jacoby
 
Beyond the Gig Economy
Beyond the Gig EconomyBeyond the Gig Economy
Beyond the Gig Economy
Jon Lieber
 
Recovery: Job Growth and Education Requirements Through 2020
Recovery: Job Growth and Education Requirements Through 2020Recovery: Job Growth and Education Requirements Through 2020
Recovery: Job Growth and Education Requirements Through 2020
CEW Georgetown
 
3 hard facts shaping higher education thinking and behavior
3 hard facts shaping higher education thinking and behavior3 hard facts shaping higher education thinking and behavior
3 hard facts shaping higher education thinking and behavior
Grant Thornton LLP
 
African Americans: College Majors and Earnings
African Americans: College Majors and Earnings African Americans: College Majors and Earnings
African Americans: College Majors and Earnings
CEW Georgetown
 
The Online College Labor Market
The Online College Labor MarketThe Online College Labor Market
The Online College Labor Market
CEW Georgetown
 
Game Based Learning for Language Learners
Game Based Learning for Language LearnersGame Based Learning for Language Learners
Game Based Learning for Language Learners
Shelly Sanchez Terrell
 

Viewers also liked (10)

Untangling the web - week 3
Untangling the web - week 3Untangling the web - week 3
Untangling the web - week 3
 
Untangling spring week3
Untangling spring week3Untangling spring week3
Untangling spring week3
 
Biohacking
BiohackingBiohacking
Biohacking
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6
 
Beyond the Gig Economy
Beyond the Gig EconomyBeyond the Gig Economy
Beyond the Gig Economy
 
Recovery: Job Growth and Education Requirements Through 2020
Recovery: Job Growth and Education Requirements Through 2020Recovery: Job Growth and Education Requirements Through 2020
Recovery: Job Growth and Education Requirements Through 2020
 
3 hard facts shaping higher education thinking and behavior
3 hard facts shaping higher education thinking and behavior3 hard facts shaping higher education thinking and behavior
3 hard facts shaping higher education thinking and behavior
 
African Americans: College Majors and Earnings
African Americans: College Majors and Earnings African Americans: College Majors and Earnings
African Americans: College Majors and Earnings
 
The Online College Labor Market
The Online College Labor MarketThe Online College Labor Market
The Online College Labor Market
 
Game Based Learning for Language Learners
Game Based Learning for Language LearnersGame Based Learning for Language Learners
Game Based Learning for Language Learners
 

Similar to Untangling6

WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
Evan Mullins
 
Learn How To Develop With CakePHP
Learn How To Develop With CakePHPLearn How To Develop With CakePHP
Learn How To Develop With CakePHP
Michael Bourque
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
Evan Mullins
 
01.intro
01.intro01.intro
01.intro
Philip Johnson
 
Chapter15-Presentation.pptx
Chapter15-Presentation.pptxChapter15-Presentation.pptx
Chapter15-Presentation.pptx
GFRomano
 
Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)
Johannes Brodwall
 
UserTesting 2016 webinar: Research to inform product design in Agile environm...
UserTesting 2016 webinar: Research to inform product design in Agile environm...UserTesting 2016 webinar: Research to inform product design in Agile environm...
UserTesting 2016 webinar: Research to inform product design in Agile environm...
Steve Fadden
 
How To Navigate And Extend The Flex Infrastructure
How To Navigate And Extend The Flex InfrastructureHow To Navigate And Extend The Flex Infrastructure
How To Navigate And Extend The Flex Infrastructure
michael.labriola
 
Css tools and methodologies
Css tools and methodologiesCss tools and methodologies
Css tools and methodologies
Isatu Conteh
 
Hci techniques from idea to deployment
Hci techniques from idea to deploymentHci techniques from idea to deployment
Hci techniques from idea to deployment
John Thomas
 
Publishing strategies for API documentation
Publishing strategies for API documentationPublishing strategies for API documentation
Publishing strategies for API documentation
Tom Johnson
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
Evan Mullins
 
Rapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPressRapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPress
Nathaniel Taintor
 
Instagram filters (8 24)
Instagram filters (8 24)Instagram filters (8 24)
Instagram filters (8 24)
Ivy Rueb
 
We continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShellWe continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShell
PVS-Studio
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
Padma Channal
 
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
QAFest
 
Building a developer friendly plugin - WordCamp Chicago 2017
Building a developer friendly plugin - WordCamp Chicago 2017Building a developer friendly plugin - WordCamp Chicago 2017
Building a developer friendly plugin - WordCamp Chicago 2017
Mike Hale
 
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Dakiry
 
Buzzword, How'd They Build That?
Buzzword, How'd They Build That?Buzzword, How'd They Build That?
Buzzword, How'd They Build That?
dcoletta
 

Similar to Untangling6 (20)

WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
Learn How To Develop With CakePHP
Learn How To Develop With CakePHPLearn How To Develop With CakePHP
Learn How To Develop With CakePHP
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
 
01.intro
01.intro01.intro
01.intro
 
Chapter15-Presentation.pptx
Chapter15-Presentation.pptxChapter15-Presentation.pptx
Chapter15-Presentation.pptx
 
Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)Getting your project off the ground (BuildStuffLt)
Getting your project off the ground (BuildStuffLt)
 
UserTesting 2016 webinar: Research to inform product design in Agile environm...
UserTesting 2016 webinar: Research to inform product design in Agile environm...UserTesting 2016 webinar: Research to inform product design in Agile environm...
UserTesting 2016 webinar: Research to inform product design in Agile environm...
 
How To Navigate And Extend The Flex Infrastructure
How To Navigate And Extend The Flex InfrastructureHow To Navigate And Extend The Flex Infrastructure
How To Navigate And Extend The Flex Infrastructure
 
Css tools and methodologies
Css tools and methodologiesCss tools and methodologies
Css tools and methodologies
 
Hci techniques from idea to deployment
Hci techniques from idea to deploymentHci techniques from idea to deployment
Hci techniques from idea to deployment
 
Publishing strategies for API documentation
Publishing strategies for API documentationPublishing strategies for API documentation
Publishing strategies for API documentation
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
 
Rapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPressRapidly prototyping web applications using BackPress
Rapidly prototyping web applications using BackPress
 
Instagram filters (8 24)
Instagram filters (8 24)Instagram filters (8 24)
Instagram filters (8 24)
 
We continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShellWe continue checking Microsoft projects: analysis of PowerShell
We continue checking Microsoft projects: analysis of PowerShell
 
Summer-17 Internship at Spreetail
Summer-17 Internship at SpreetailSummer-17 Internship at Spreetail
Summer-17 Internship at Spreetail
 
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
 
Building a developer friendly plugin - WordCamp Chicago 2017
Building a developer friendly plugin - WordCamp Chicago 2017Building a developer friendly plugin - WordCamp Chicago 2017
Building a developer friendly plugin - WordCamp Chicago 2017
 
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
Олександр Хотемський “ProtractorJS як інструмент браузерної автоматизації для...
 
Buzzword, How'd They Build That?
Buzzword, How'd They Build That?Buzzword, How'd They Build That?
Buzzword, How'd They Build That?
 

More from Derek Jacoby

Untangling - fall2017 - week 8
Untangling - fall2017 - week 8Untangling - fall2017 - week 8
Untangling - fall2017 - week 8
Derek Jacoby
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7
Derek Jacoby
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
Derek Jacoby
 
Untangling the web fall2017 class 3
Untangling the web fall2017 class 3Untangling the web fall2017 class 3
Untangling the web fall2017 class 3
Derek Jacoby
 
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
Derek Jacoby
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
Derek Jacoby
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12
Derek Jacoby
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11
Derek Jacoby
 

More from Derek Jacoby (8)

Untangling - fall2017 - week 8
Untangling - fall2017 - week 8Untangling - fall2017 - week 8
Untangling - fall2017 - week 8
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
 
Untangling the web fall2017 class 3
Untangling the web fall2017 class 3Untangling the web fall2017 class 3
Untangling the web fall2017 class 3
 
Untangling fall2017 week2_try2
Untangling fall2017 week2_try2Untangling fall2017 week2_try2
Untangling fall2017 week2_try2
 
Untangling fall2017 week2
Untangling fall2017 week2Untangling fall2017 week2
Untangling fall2017 week2
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11
 

Recently uploaded

Solutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptxSolutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptx
spdendr
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
EduSkills OECD
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
ssuser13ffe4
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
iammrhaywood
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Denish Jangid
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
Himanshu Rai
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
imrankhan141184
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
Nguyen Thanh Tu Collection
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
PECB
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Leena Ghag-Sakpal
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
haiqairshad
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
Celine George
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
Amin Marwan
 
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching AptitudeUGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
S. Raj Kumar
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
BoudhayanBhattachari
 

Recently uploaded (20)

Solutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptxSolutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptx
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
math operations ued in python and all used
math operations ued in python and all usedmath operations ued in python and all used
math operations ued in python and all used
 
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptxNEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
NEWSPAPERS - QUESTION 1 - REVISION POWERPOINT.pptx
 
Chapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptxChapter wise All Notes of First year Basic Civil Engineering.pptx
Chapter wise All Notes of First year Basic Civil Engineering.pptx
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem studentsRHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
RHEOLOGY Physical pharmaceutics-II notes for B.pharm 4th sem students
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
ISO/IEC 27001, ISO/IEC 42001, and GDPR: Best Practices for Implementation and...
 
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
Bed Making ( Introduction, Purpose, Types, Articles, Scientific principles, N...
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
 
How to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 InventoryHow to Setup Warehouse & Location in Odoo 17 Inventory
How to Setup Warehouse & Location in Odoo 17 Inventory
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
 
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching AptitudeUGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
 
B. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdfB. Ed Syllabus for babasaheb ambedkar education university.pdf
B. Ed Syllabus for babasaheb ambedkar education university.pdf
 

Untangling6

  • 1. Untangling the web Class 6: user research, build tools, more javascript, and putting a website up
  • 2. Agenda  Homework discussion  UX and collaboration  Build tools  More JavaScript  Integrating JS into a web page  functions  Scope and context  JS exercises and project 1 group discussions  Homework 5
  • 3. Homework 4  Folks had a harder time with this than previous homeworks  As we get into the programming assignments, more time will be required and more work on your own  Resources:  The computer science assistance centre, ECS 251, https://connex.csc.uvic.ca/portal/site/cscassist  For this initial exercise: http://www.teaching-materials.org/javascript/  Ask for help on the slack channel  Start early in case you get stuck!  If you copy code from online, reference where you got it!
  • 4. Homework 4  Concepts:  Arrays  Functions  Looping  Printing (one form, console.log)
  • 5. Homework 4 – Arrays and functions  var wordLetters = ['G', 'O', 'A', 'T'];  var guessedLetters = ['_', '_', '_', '_'];  Function guessLetter(letter) { do stuff…}  guessLetter('G');  guessLetter('I');  guessLetter('O');  guessLetter('A');  guessLetter('T');
  • 6. Homework 4 – looping and printing function guessLetter(letter) { var goodGuess = false; var moreToGuess = false; for (var i = 0; i < wordLetters.length; i++) { if (wordLetters[i] == letter) { guessedLetters[i] = letter; goodGuess = true; } if (guessedLetters[i] == '_') { moreToGuess = true; } } if (goodGuess) { console.log('Yay, you found a letter!'); console.log(guessedLetters.join('')); if (!moreToGuess) { console.log('YOU WON!'); } } else { console.log('Oh noes, thats not right!'); } }
  • 7. Additional topics on the homework  Limit number of wrong guesses  Displaying on web pages rather than the REPL
  • 8. UX and collaboration  I’m giving this section incredibly short shrift  There is a third year HCI course entirely devoted to this topic, when I taught it we spent 4 classes just on the material shoved into the next 20 minutes  I wanted to give a flavour of it, though, because in a well executed project 1 there will be some user research, even if only from secondary sources
  • 9. UX research  Primary sources  Interviewing users  Doing prototype usability studies  Naturalistic observation of user behaviour  User comments on your software (if it’s released)  Secondary sources  Web research  User comments on forums about similar software  Primary sources are best, but secondary sources are fine for early stage
  • 10. User stories and Personas  Often before you have real users, you need imaginary users  The more concrete these users are the better, build a back-story!  These are personas  These personas interact with your software in multiple ways  These are user stories  User stories are an important explanatory technique for your project  User personas are an important tool to make those stories real and to prioritize features
  • 12. Collaboration strategies  Hackathons  Agile development  Sprints  Scrums  Waterfall development
  • 13. Back to Git  Each person develops in a branch  Those branches are merged onto the master branch  The master branch is tested to make sure the merged code behaves as expected
  • 14. Testing strategies  Individual code is tested before merging as well  This is likely to be ad-hoc testing in this class  In more rigorous environments Test Driven Development (TDD) is practiced  In this model, the developer writes test cases before writing the code  Then the tests are automated to see if the code is meeting all the cases  It is a really good practice to get into!
  • 15. Build tools  This is getting back to class 4  I’m not going to spend too much more time on a local build environment, but it is essential to doing time-effective development  We’ll go through one of my environments to illustrate  I won’t enforce that you set up an efficient dev environment, but I certainly suggest it. Meaning:  Understand the command line  Understand a local editor (I suggest VS Code, but sublime or atom are fine too)  Use a local build tool to run a local web server with hot reloading and linting
  • 17. Build tools reading assigment  Basic version  http://blog.modulus.io/introduction-to-grunt  Advanced version  https://github.com/verekia/js-stack-from- scratch?utm_campaign=React%2BNewsletter&utm_medium=email&utm_source= React_Newsletter_47
  • 18. More JS – integrating JS into a web page  Basic version  https://jsfiddle.net/  Just save the fiddle and submit the homework as a link  Advanced version (you’ll need to get to this one eventually, but not necessarily this week)  Set up and run a local build environment  Copy the project up to a server (ie. nitrous.io or the generated version to github pages)
  • 19. More JS – Functions and scope  You wrote a function in the last homework  Another function could go into that same file  Would it share the same variables? Will this work? Var variable1 = “foo ” Function hello(name) { Var compliment = “nice”; Console.log(“hello “+compliment+name); } Function goodbye(name) { Console.log(“bye “+compliment+name); }
  • 20. More JS - scope  What about this? Var variable1 = “foo ” Function hello(name) { Var compliment = “nice”; Console.log(“hello “+compliment+name); } Function goodbye(name) { Console.log(“bye “+variable1+name); }
  • 21. More JS – execution context  The “this” pointer  Scope is about variables, execution context is about objects  New keyword  Another reading assignment  http://ryanmorr.com/understanding-scope-and-context-in-javascript/
  • 22. JS exercises  http://www.w3resource.com/javascript-exercises/  (we’ll spend a couple minutes looking at these as a group and then there will be time to work on your own or work in your project groups)
  • 23. Homework 5  Create a web page that asks for pizza toppings and creates your order  Display a list of toppings and their associated prices, include at least 5 items in the list  Pizza toppings should be typed in by the user in a comma delimited list in a single text box. When all the toppings are entered, the user presses a “prepare order” button  The program should take the toppings and present the toppings with a total price. When the user presses the “place order” button present a pop-up dialog that says “thanks!”. Use CSS to make the thanks message large and red.  (if you have a problem with the pop-up, you can just display the thanks message underneath the button, but try to figure out the pop up!)