Module 14
Human Computer Interaction / Usability
Outline Chapter 18
Chapter 18 Limitations of Computing
18.1 Hardware
Limits on Arithmetic
Limits on Components
Limits on Communications
18.2 Software
Complexity of Software
Current Approaches to Software Quality
Notorious Software Errors
18.3 Problems
Comparing Algorithms
Turing Machines
Halting Problem
Classification of Algorithms
Ethical Issues: Therac-25: Anatomy of a Disaster
Related FGCU Courses
http://icarus.fgcu.edu:8080/CourseDescriptions/
CEN 3073 Software Specifications
Covers the analysis of software requirements, and the study of requirements engineering tools and techniques. Includes requirements elicitation, gathering, formalizing, specification, and validation.
Lesson
Day One
Principles of good design
Intercultural Knowledge
Cultural issues related to web site design
Write a Caesar cipher in JavaScript
develop an algorithm
start simple, get something working then add to it
Stages of functionality
Get a script running ("Hello World")
Day Two
Caesar Cipher continued
Get the ASCII code for one character (charCodeAt)
Print a character from an ASCII code (String.fromCharCode)
Get the ASCII code for one character, shift it (like + 3), and then print it, for example: A + 3 = D
Get the ASCII code for each character in a 3 letter word, shift them, and print them (use +=)
Get the ASCII code for each character in a 3 letter word, shift them, and print them using a loop that repeats a fixed number of times (use a for loop)
Print the length of an assigned (non user input) string (use the String method)
Get the ASCII code for each character in a word of any length, shift them, and print them using a loop that repeats based on the length
Get the ASCII code for each character in a phrase of any length, shift the letters, do not shift the spaces, and print the characters using a loop that repeats based on the length (use if)
Shift should always result in a letter, for example: Z + 3 = C
Only shift letters, not special characters
Get user input instead of using a set phrase
Allow the shift amount to be set
Project Review
Classes
Project Preview
Portfolio - Usability
Human-Computer Interaction (HCI)
Human-computer interaction (HCI) is concerned with designing interactions between human activities and the computational systems that support them, and with constructing interfaces to afford those interactions. Interaction between users and computational artifacts occurs at an interface that includes both software and hardware. Thus interface design impacts the software life-cycle in that it should occur early; the design and implementation of core functionality can influence the user interface – for better or worse. Because it deals with people as well as computational systems, as a knowledge area HCI demands the consideration of cultural, social, organizational, cognitive and perceptual issues. Consequently it draws on a variety of disciplinary traditions, including psychology, ergonomics, computer science, graphic and product design, anthropology and engineering.
KA Topics:
Contexts for HCI (anything with a user interface, e.g., webpage, business applications, mobile applications, and games)
Processes for user-centered development, e.g., early focus on users, empirical testing, iterative design
Different measures for evaluation, e.g., utility, efficiency, learnability, user satisfaction
Usability heuristics and the principles of usability testing
Physical capabilities that inform interaction design, e.g., color perception, ergonomics
Cognitive models that inform interaction design, e.g., attention, perception and recognition, movement, and memory; gulfs of expectation and execution
Social models that inform interaction design, e.g., culture, communication, networks and organizations
Principles of good design and good designers; engineering tradeoffs
Accessibility, e.g., interfaces for differently-abled populations (e.g., blind, motion-impaired)
Interfaces for differently-aged population groups (e.g., children, 80+)
KA Learning Outcomes:
Discuss why human-centered software development is important. [Familiarity]
Summarize the basic precepts of psychological and social interaction. [Familiarity]
Develop and use a conceptual vocabulary for analyzing human interaction with software: affordance, conceptual model, feedback, and so forth. [Usage]
Define a user-centered design process that explicitly takes account of the fact that the user is not like the developer or their acquaintances. [Usage]
Create and conduct a simple usability test for an existing software application. [Assessment]