Spring2017.CSCI380 History

Hide minor edits - Show changes to output

Changed line 37 from:
# [[https://www.youtube.com/watch?v=Wl2LkzIkacM | User Centered Design]] by Donald Norman, for this 2006 Benjamin Franklin Medal award.
to:
# [[https://www.youtube.com/watch?v=Wl2LkzIkacM | User Centered Design]] by Donald Norman, for his 2006 Benjamin Franklin Medal award.
Changed line 37 from:
# [[https://www.youtube.com/watch?v=Wl2LkzIkacM | Intro to User Centered Design by Donald Norman, for this 2006 Benjamin Franklin Medal award.
to:
# [[https://www.youtube.com/watch?v=Wl2LkzIkacM | User Centered Design]] by Donald Norman, for this 2006 Benjamin Franklin Medal award.
Added lines 36-37:

# [[https://www.youtube.com/watch?v=Wl2LkzIkacM | Intro to User Centered Design by Donald Norman, for this 2006 Benjamin Franklin Medal award.
Changed lines 110-111 from:
# [[https://www.nngroup.com/articles/ux-goals-analytics/ | Translating UX Goals into Analytics Measurement]] - When determining what to measure on an ongoing basis, it is imperative to fully understand the ultimate goal of the design to be sure you choose an appropriate metric. If you don’t clearly define the goal, it is impossible to determine the best method to track performance or user experience.
to:
# Measuring Usabilty
**
[[https://www.nngroup.com/articles/ux-goals-analytics/ | Translating UX Goals into Analytics Measurement]] - When determining what to measure on an ongoing basis, it is imperative to fully understand the ultimate goal of the design to be sure you choose an appropriate metric. If you don’t clearly define the goal, it is impossible to determine the best method to track performance or user experience.
Added lines 109-110:

# [[https://www.nngroup.com/articles/ux-goals-analytics/ | Translating UX Goals into Analytics Measurement]] - When determining what to measure on an ongoing basis, it is imperative to fully understand the ultimate goal of the design to be sure you choose an appropriate metric. If you don’t clearly define the goal, it is impossible to determine the best method to track performance or user experience.
Changed line 27 from:
[[(Spring2017.CSCI380)Homework1(?action=print)]], [[(Spring2017.CSCI380)Homework2(?action=print)]], [[(Spring2017.CSCI380)Homework3(?action=print)]], [[(Spring2017.CSCI380)Homework4(?action=print)]], [[(Spring2017.CSCI380)Homework5(?action=print)]].
to:
[[(Spring2017.CSCI380)Homework1(?action=print)]], [[(Spring2017.CSCI380)Homework2(?action=print)]], [[(Spring2017.CSCI380)Homework3(?action=print)]], [[(Spring2017.CSCI380)Homework4(?action=print)]], [[(Spring2017.CSCI380)Homework5(?action=print)]], [[(Spring2017.CSCI380)FinalProject(?action=print)]].
Changed line 20 from:
* '''Test 2''': TBA
to:
* '''Test 2''': Wednesday, Apr. 26, 2017
Changed line 27 from:
[[(Spring2017.CSCI380)Homework1(?action=print)]], [[(Spring2017.CSCI380)Homework2(?action=print)]], [[(Spring2017.CSCI380)Homework3(?action=print)]], [[(Spring2017.CSCI380)Homework4(?action=print)]].
to:
[[(Spring2017.CSCI380)Homework1(?action=print)]], [[(Spring2017.CSCI380)Homework2(?action=print)]], [[(Spring2017.CSCI380)Homework3(?action=print)]], [[(Spring2017.CSCI380)Homework4(?action=print)]], [[(Spring2017.CSCI380)Homework5(?action=print)]].
Changed line 27 from:
[[(Spring2017.CSCI380)Homework1]], [[(Spring2017.CSCI380)Homework2]], [[(Spring2017.CSCI380)Homework3]], [[(Spring2017.CSCI380)Homework4]].
to:
[[(Spring2017.CSCI380)Homework1(?action=print)]], [[(Spring2017.CSCI380)Homework2(?action=print)]], [[(Spring2017.CSCI380)Homework3(?action=print)]], [[(Spring2017.CSCI380)Homework4(?action=print)]].
Changed line 27 from:
[[(Spring2017.CSCI380)Homework1]], [[(Spring2017.CSCI380)Homework2]], [[(Spring2017.CSCI380)Homework3]].
to:
[[(Spring2017.CSCI380)Homework1]], [[(Spring2017.CSCI380)Homework2]], [[(Spring2017.CSCI380)Homework3]], [[(Spring2017.CSCI380)Homework4]].
Added lines 80-84:
# Card Sorting
** [[https://en.wikipedia.org/wiki/Card_sorting | Card sorting]] is a relatively low-tech technique in UX design for using a group of subject experts or users to generate a taxonomy or hiearchical strucure of concepts or items. It is very useful for designing information architecture, workflows, menu structure, or website navigation paths.
** [[http://boxesandarrows.com/card-sorting-a-definitive-guide/ | Card sorting: a definitive guide]] - Card sorting is a technique that many information architects (and related professionals.) use as an input to the structure of a site or product.
** [[https://www.usability.gov/how-to-and-tools/methods/card-sorting.html | Card sorting]] is a method used to help design or evaluate the information architecture of a site. In a card sorting session, participants organize topics into categories that make sense to them. They may also help you label these groups. To conduct a card sort, you can use actual cards, pieces of paper (and possibly software).
Deleted lines 108-112:

# Card Sorting
** [[https://en.wikipedia.org/wiki/Card_sorting | Card sorting]] is a relatively low-tech technique in UX design for using a group of subject experts or users to generate a taxonomy or hiearchical strucure of concepts or items. It is very useful for designing information architecture, workflows, menu structure, or website navigation paths.
** [[http://boxesandarrows.com/card-sorting-a-definitive-guide/ | Card sorting: a definitive guide]] - Card sorting is a technique that many information architects (and related professionals.) use as an input to the structure of a site or product.
** [[https://www.usability.gov/how-to-and-tools/methods/card-sorting.html | Card sorting]] is a method used to help design or evaluate the information architecture of a site. In a card sorting session, participants organize topics into categories that make sense to them. They may also help you label these groups. To conduct a card sort, you can use actual cards, pieces of paper (and possibly software).
Changed line 78 from:
** # [[https://www.scrum.org/Portals/0/Documents/Collateral/ScrumFramework_17x11.pdf | Scrum]] is a development process which incorporates all other development processes. It is agile and revolves around a theme of identify, implement, evaluate. It cuts through complexity to focus on building software that meets needs incrementally and empirically. Also see [[http://www.scrumguides.org/scrum-guide.html | Scrum guide]] for term definitions (e.g., Sprint, Sprint Planning, Daily Scrum, Sprint Review, Product Backlog, etc.)
to:
** [[https://www.scrum.org/resources/what-is-scrum | Scrum]] is a development process which incorporates all other development processes. It is agile and revolves around a theme of identify, implement, evaluate. It cuts through complexity to focus on building software that meets needs incrementally and empirically. Also see [[http://www.scrumguides.org/scrum-guide.html | Scrum guide]] for term definitions (e.g., Sprint, Sprint Planning, Daily Scrum, Sprint Review, Product Backlog, etc.)
Added lines 66-74:

# Design Critique
** [[http://blog.teamtreehouse.com/the-art-of-the-design-critique | How to conduct design critiques]]. Important points/quotes:
** "Critical discussion around design is as important as the design process itself. If you work in a design team, feedback from your colleagues can keep you challenged, and can push you to improve."
** "Criticism should be honest, and constructive. Nobody wins if the discussion is simply an exchange of warm fuzzies. The goal of every critique is to discover how to make a design better…"
** "When you’re the recipient of a design critique, rule number one is listen. Your first impulse might be to defend each and every criticism, but that will kill conversation, and won’t give you the opportunity to really consider the suggestions offered."
** "Bring a notebook to the critique, and keep detailed notes on the suggestions you receive. Not only does this help you remember the direction you should take when you sit back down to work, but it also shows your colleagues that their input is valuable."
** "You will inevitably encounter points at which some feedback stings a bit, but that is okay. Fostering open communication in your team even when the feedback is hard to hear is, in the long term, a healthy thing."
** "You really can’t call yourself a designer if you can’t give and take criticism ... The sting you might feel from criticism of your work is just a growing pain as your mind expands. Embrace it, because it’s going to lead you to new heights in your career."
Added lines 63-65:

# Ideation
** [[https://www.youtube.com/watch?v=k3q0Zry7H2o | Ideation doesn't waste time, it saves time]] - improve your UI design solutions by considering many ideas before settling on any one of them.
Changed line 19 from:
* '''Test 1''': TBA
to:
* '''Test 1''': Wednesday, Mar. 1, 2017
Changed line 27 from:
[[(Spring2017.CSCI380)Homework1]], [[(Spring2017.CSCI380)Homework2]].
to:
[[(Spring2017.CSCI380)Homework1]], [[(Spring2017.CSCI380)Homework2]], [[(Spring2017.CSCI380)Homework3]].
Changed line 27 from:
[[(Spring2017.CSCI380)Homework1]].
to:
[[(Spring2017.CSCI380)Homework1]], [[(Spring2017.CSCI380)Homework2]].
Added lines 31-32:
# [[ https://www.youtube.com/watch?v=uGI00HV7Cfw | The evolution of the desk ]] - a thought-provoking, historically-accurate [-(almost)-] progression.
Deleted lines 42-43:

# [[ https://www.youtube.com/watch?v=uGI00HV7Cfw | The evolution of the desk ]] - a thought-provoking, historically-accurate [-(almost)-] progression.
Added lines 31-32:
# [[https://www.youtube.com/watch?v=Ml92QEqE-RQ | Silicon Valley HBO excerpt]] - the Pied Piper Platform Usability Test - "Totally Freaked Out" scene.
Deleted line 46:
** [[https://www.youtube.com/watch?v=Ml92QEqE-RQ | Silicon Valley HBO excerpt]] - the Pied Piper Platform Usability Test - "Totally Freaked Out" scene.
Changed line 27 from:
[[(Spring2017.CSCI380)Homework1]]
to:
[[(Spring2017.CSCI380)Homework1]].
Changed line 27 from:
TBA
to:
[[(Spring2017.CSCI380)Homework1]]
Added lines 1-114:
!CSCI 380 – User Interface Development

!!When/Where

MWF 2:30pm-3:20pm / HWE 334\\

!!Description

Introduction to human-computer interaction and user interface development. Topics include human factors of interactive software, interactive styles, design principles and considerations, development methods and tools, interface quality, and evaluation methods. Stresses the importance of good interfaces and the relationship of user interface design to human-computer interaction.

'''Prerequisites:'''
# CSCI 221 with a grade of C- or better.
# MATH 207 (co-requisite or prerequisite).

* [[Spring2017.CSCI380CourseSyllabus?action=print | Course syllabus]]

!!Test Dates

* '''Test 1''': TBA
* '''Test 2''': TBA
* '''Final''': 12:00pm - 3:00pm, Monday, May 1, 2017

!!Assignments

%comment% * [[(Fall2016.CSCI380)Homework1]], [[(Fall2016.CSCI380)Homework2]], [[(Fall2016.CSCI380)Homework3]], [[(Fall2016.CSCI380)Homework4]], [[(Fall2016.CSCI380)Homework5]], [[(Fall2016.CSCI380)FinalProject]]

TBA

!!Readings & References

# [[https://www.youtube.com/watch?v=gZeXyVJC-Jg | Designers are not users]] by Jakob Nielsen, principal of Nielsen Norman Group.

# Heuristic evaluation involves having a small set of evaluators examine the interface and judge its compliance with recognized usability principles (the "heuristics"). See [[https://www.interaction-design.org/literature/article/heuristic-evaluation-how-to-conduct-a-heuristic-evaluation | How to Conduct a Heuristic Evaluation]], Usability.gov's [[https://www.usability.gov/how-to-and-tools/methods/heuristic-evaluation.html | Heuristic Evaluations and Expert Reviews]], and Nielsen Norman Group's [[https://www.nngroup.com/articles/how-to-conduct-a-heuristic-evaluation/ | Heuristic Evaluation]].
** here are some of the most commonly used heuristics:
*** Jakob Nielsen's "[[https://www.nngroup.com/articles/ten-usability-heuristics/ | 10 Usability Heuristics for User Interface Design]]"
*** Arnie Lund's "[[http://www.simonwhatley.co.uk/lunds-expert-ratings-of-usability-maxims | Expert Ratings of Usability Maxims]]"
*** Bruce Tognazzini's "[[http://asktog.com/atc/principles-of-interaction-design/ | First Principles of Interaction Design]]"
*** Ben Shneiderman's "[[http://faculty.washington.edu/jtenenbg/courses/360/f04/sessions/schneidermanGoldenRules.html | Eight Golden Rules of Interface Design]]".

# [[ https://www.youtube.com/watch?v=uGI00HV7Cfw | The evolution of the desk ]] - a thought-provoking, historically-accurate [-(almost)-] progression.

# Jacob Nielsen's usability pointers
** [[http://www.useit.com/alertbox/20030825.html | Usability 101]] -- How to define ''usability''? How, when, and where can you improve it? Why should you care? This overview answers these basic questions.
** [[https://www.nngroup.com/articles/talking-to-users/ | How to talk to users]] during a usability test - "Echo. Boomerang. Columbo."
** [[https://www.youtube.com/watch?v=Ml92QEqE-RQ | Silicon Valley HBO excerpt]] - the Pied Piper Platform Usability Test - "Totally Freaked Out" scene.
** [[http://www.useit.com/papers/heuristic/heuristic_list.html | Ten Usability Heuristics]] -- Ten general principles for user interface design.
*** Also see [[http://designingwebinterfaces.com/6-tips-for-a-great-flex-ux-part-5 | tips for designing Web Interfaces]].
** [[http://www.useit.com/alertbox/progressive-disclosure.html | Progressive disclosure]] defers advanced or rarely used features to a secondary screen, making applications easier to learn and less error-prone, whereas ''staged disclosure'' provides a linear sequence of options, with a subset displayed at each step. Both are strategies to manage the profusion of features and options in modern user interfaces.

# [[https://vimeo.com/album/4066013/video/176703532 | NIME 2016 keynote lecture by Garth Paine]] - over the last two decades, the NIME community has seen an explosion of innovative and inspired ideas around the development of new musical interfaces. This lecture provides an overview of the field and important issues that emerge again and again, which may inform UI development in general.
** Also, here are [[https://goo.gl/photos/feH5Cp1xu4nJDirT6 | photos of the lecture slides]] (since the video is a little grainy).

# User personas
** [[https://youtu.be/khLWLtxmMGM | What are personas and why should I care?]] - a quick intro from the Nielsen Norman Group.
** [[https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed/personas | User personas]] - a user persona is a specific, imaginary example representing a set of real users - its an abstraction. As an abstraction, it focuses on the essentials, while abstracting away the unessentials.
** [[http://www.uxforthemasses.com/personas/ | Getting the most out of personas]] - personas are great, but they are all too often under utilized, or worse misused. Find out some tips for creating and using your personas, so that you can get the most out of them.
** [[http://www.webdesignerdepot.com/2015/03/personas-finding-imaginary-friends-for-web-designers/ | User personas]] - finding imaginary friends for UI designers.
** [[http://library.iasummit.org/podcasts/designing-for-failure-how-creating-negative-personas-and-failed-user-journeys-make-a-better-website/ | Creating negative personas]] - how to plan for failure and user frustration.

# Conceptual Models
** [[http://boxesandarrows.com/conceptual-models-in-a-nutshell/ | Conceptual models in a nutshell]] - explains conceptual models and describes why its best to develop the conceptual model of a system before its user interface.

# UI lifecycle
** Mayhew's [[https://twobenches.files.wordpress.com/2008/06/47-01.jpg | Usability Engineering Lifecycle]].
** # [[https://www.scrum.org/Portals/0/Documents/Collateral/ScrumFramework_17x11.pdf | Scrum]] is a development process which incorporates all other development processes. It is agile and revolves around a theme of identify, implement, evaluate. It cuts through complexity to focus on building software that meets needs incrementally and empirically. Also see [[http://www.scrumguides.org/scrum-guide.html | Scrum guide]] for term definitions (e.g., Sprint, Sprint Planning, Daily Scrum, Sprint Review, Product Backlog, etc.)

# User scenarios
** [[https://www.webdesignerdepot.com/2015/04/how-to-perfect-your-ux-with-persona-scenarios/ | User scenarios]] are the stories that your personas act out. Basically, user scenarios are thought exercises (though represented visually) in which you predict how certain types of users — represented by your personas — will interact with your UI in a given situation in order to complete a given goal.
** [[https://www.usability.gov/how-to-and-tools/methods/scenarios.html | Scenarios]] (from usability.gov).

# Use Cases
** [[https://www.usability.gov/how-to-and-tools/methods/use-cases.html | Use cases]] are written descriptions of how users will perform tasks on your system. Each use case outlines, from a user’s point of view, a system’s behavior as it responds to a request. Each use case is represented as a sequence of simple steps, beginning with a user's goal and ending when that goal is fulfilled.

# Paper prototypes
** Snyder, C. (2001) [[http://www.cs.cofc.edu/~manaris/spring05/cs672/Paper-prototyping.html | Paper prototyping]]. IBM developerWorks.
** Nielsen, J. (2003) [[http://www.useit.com/alertbox/20030414.html | Paper Prototyping: Getting User Data Before You Code]].
** [[http://usabilitygeek.com/paper-prototyping-as-a-usability-testing-technique/ | Paper Prototyping As A Usability Testing Technique]] - This article defines paper prototyping and explains how this technique can be used for usability testing. It is written mostly in bullet form to serve as a quick reference.
** [[http://www.userfocus.co.uk/articles/paperprototyping.html | 7 myths about paper prototyping]] - paper prototyping is probably the best tool we have to design great user experiences. It allows you to involve users early in the design process, shows you how people will use your system before you've written any code, and supports iterative design.
** Also see [[http://www.userfocus.co.uk/resources/prototype.html | Paper prototyping helper kit]].

# UX/UI Prototyping Tools
** [[https://blog.prototypr.io/the-7-best-prototyping-tools-for-ui-and-ux-designers-in-2016-701263ae65e8#.7swv6dis6 | The 7 Best Prototyping Tools for UI and UX Designers in 2016]] - choosing the right prototyping tool will maximize efficiency while minimizing effort (choosing the wrong tool will waste your time, in the long term). Get to know a tool, before selecting it. Things to consider are: '''learning curve''', '''type of UI''' (website, mobile app, desktop app, other, all), '''fidelity''' (low (sketch, wireframe), high (flow, interaction)), '''sharing''' (collaboration with teammates, users), '''skills required''' (easy, hard, programming required, visual design required), and '''cost''' (free, or how much).
** [[http://www.uxforthemasses.com/choose-ux-prototyping-tool/ | How to choose the right UX prototyping tool]] - important thoughts on choosing the right tool for rapid prototyping of UIs.

# GOMS and Keyboard-Level Model
** [[https://en.wikipedia.org/wiki/GOMS | GOMS]] and [[https://en.wikipedia.org/wiki/Keystroke-level_model | KLM]] on WIkipedia.
** [[http://www.cs.umd.edu/class/fall2002/cmsc838s/tichi/printer/goms.html | GOMS and Keyboard-Level Model (KLM)]] are modeling techniques used in interactive systems to analyze complexity in user interaction.
** [[http://www.cs.loyola.edu/~lawrie/CS774/S06/homework/klm.pdf | Using the Keystroke-Level Model]] to estimate execution times.
** A [[http://homepages.rpi.edu/~grayw/courses/psyc2965/fall02/downloads/wk04_GOMS.pdf | deeper introduction to GOMS]] with a psychology basis.
** An [[http://web.eecs.umich.edu/~kieras/docs/TA_Modeling/GOMSforTA.pdf | even deeper introduction to GOMS]] for quantitatively predicting human performance on an interface design - focuses on notation and how to construct them.

# Card Sorting
** [[https://en.wikipedia.org/wiki/Card_sorting | Card sorting]] is a relatively low-tech technique in UX design for using a group of subject experts or users to generate a taxonomy or hiearchical strucure of concepts or items. It is very useful for designing information architecture, workflows, menu structure, or website navigation paths.
** [[http://boxesandarrows.com/card-sorting-a-definitive-guide/ | Card sorting: a definitive guide]] - Card sorting is a technique that many information architects (and related professionals.) use as an input to the structure of a site or product.
** [[https://www.usability.gov/how-to-and-tools/methods/card-sorting.html | Card sorting]] is a method used to help design or evaluate the information architecture of a site. In a card sorting session, participants organize topics into categories that make sense to them. They may also help you label these groups. To conduct a card sort, you can use actual cards, pieces of paper (and possibly software).

# [[http://www.usability.gov | Usability.gov]] - the U.S. Department of Health & Human Services website on all-things related to building useable products.

# [[http://www.dezeen.com/2015/07/17/apple-watch-fails-excite-underwhelming-say-designers-yves-behar-gadi-amit-bethany-koby-clemens-weisshaar-smartwatch/ | Apple Watch "fails to excite" and is "a bit underwhelming" say designers]] - In April, Apple courted the design world by presenting the Apple Watch at a pavilion in Milan and holding a glamorous dinner for leading designers. So what do designers think of the product now – and why are so few of them wearing it?
** Also see [[http://www.dezeen.com/2015/09/09/apple-and-hermes-unveil-apple-watch-collection-with-handcrafted-leather-straps/ | Apple and Hermès unveil Apple Watch collection with handcrafted leather straps]] - The Apple Watch Hermès Collection marks the first time Apple has released a watch in partnership with another brand and reinforces Apple’s desire to position its smartwatch as a luxury product rather than a gadget.

# [[http://www.youtube.com/watch?v=rG_U12uqRhE | An introduction to pair programming]]. This 9-minute video describes what pair programming is, the do's and don'ts of effective pairing, and the pros and cons of pair programming.

# Lewis, C. and Rieman, J. (1994), [[http://www.hcibib.org/tcuid/ | Task-Centered User Interface Design - A Practical Introduction]].

# Critchley, S., "[[http://www.oreilly.com/digitalmedia/2004/12/29/flow_1204.html |Designing Musical Instruments for Flow]]", O'Reilly Digital Media, December 29, 2004. [-(If you ask musicians what they value most about making music, most of them will say — in some form or another — ''flow''. Flow is that wonderful sense of being lost in your work, when "work" becomes joy. Time disappears, and so do distraction, anxiety, and just about everything else, yielding to a pure unity of creator and creation. So wouldn't it be strange if many of today's musical instruments were ''designed to prevent or destroy flow''?)-]

# Intro to '''Python'''
** Magnus Lie Hetland, [[http://hetland.org/writing/instant-hacking.html | Instant Hacking in Python]] (for non-programmers) and [[http://hetland.org/writing/instant-python.html | Instant Python]] (for programmers).
** John Zelle, ''Teaching Computer Science with Python'' transparencies: [[http://www.cs.cofc.edu/~manaris/uploads/Fall2006/sigcse-slides.pdf | one slide per page]] and [[http://www.cs.cofc.edu/~manaris/uploads/Fall2006/sigcse-handout.pdf | four slides per page]] (PDF).

# [[http://jythonmusic.org | jythonMusic]] provides software for music-making and creative computing. It is a collection of Jython libraries for music, images, graphical user interfaces (GUIs), and connecting to external MIDI devices, smartphones, and tablets, among others.

# [[http://colorschemedesigner.com/ | Color Scheme Designer]] and [[adobe.ly/1lyAWi4 | Adobe Color Ruler]] for user interfaces.