homework6:%% what%is%computer%science?%stejada/csci101/hw/hw6/hw6-whatiscs.pdf · human–computer...

5
CS101 Spring Semester 2013 Prof Tejada Design Document due: 11:59pm Friday, April 5 Blackboard submission, report and website Due date: 11:59pm Friday, April 12 Demonstration: 14pm, Friday, April 12 in MHP 100 Homework 6: What is Computer Science? For this project, students will work in teams. Check here for your team: http://www bcf.usc.edu/~stejada/csci101/HW/HW6/HW6teams.pdf. Each member of the team will create their own demo of the CS topic chosen by the team. The goal of each project is to create an interactive program to educate a middle school student about your CS topic. This problem can be divided into two subproblems: 1) Designing a human computer interface and 2) Collecting and evaluating user interaction and interface performance. HUMAN INTERFACE DESIGN (Excerpt from From “Computer Science Unplugged” Bell, Witten, and Fellows, 1998) Human–computer interaction is about designing, evaluating, and implementing computer systems that allow people to carry out their activities productively and safely. In the old days, computers were for specialists and the users could be expected to be highly educated and specially trained in their use. But now computers are everyday tools that we all must use, and far greater attention must be paid to the human interface. Many disasters, some involving loss of life, have occurred because of inadequate interfaces: airplane crashes and even shoot-downs of civilian airplanes, freeway pile-ups because of errors in switching remotely-operated highway signs, nuclear power station disasters. On a smaller scale, most people experience frustration—often extreme “The only reason we allow him inside is because he’s the only one that can work the VCR.”

Upload: duongthien

Post on 29-Mar-2018

222 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Homework6:%% What%is%Computer%Science?%stejada/csci101/HW/HW6/HW6-WhatisCS.pdf · Human–computer interaction is about designing, evaluating, and implementing computer systems that

CS101  Spring  Semester  2013  Prof  Tejada  Design  Document  due:  11:59pm  Friday,  April  5  Blackboard  submission,  report  and  website    Due  date:  11:59pm  Friday,  April  12  Demonstration:    1-­‐4pm,  Friday,  April  12  in  MHP  100    

Homework  6:    What  is  Computer  Science?  For   this   project,   students  will  work   in   teams.   Check   here   for   your   team:   http://www-­‐bcf.usc.edu/~stejada/csci101/HW/HW6/HW6teams.pdf.  Each  member  of   the   team  will  create  their  own  demo  of  the  CS  topic  chosen  by  the  team.      The  goal  of  each  project  is  to   create   an   interactive   program   to   educate   a   middle   school   student   about   your   CS  topic.     This   problem   can   be   divided   into   two   sub-­‐problems:   1)   Designing   a   human-­‐computer   interface   and   2)   Collecting   and   evaluating   user   interaction   and   interface  performance.  

 HUMAN INTERFACE DESIGN

(Excerpt from From “Computer Science Unplugged” Bell, Witten, and Fellows, 1998)

Human–computer interaction is about designing, evaluating, and implementing computer systems that allow people to carry out their activities productively and safely. In the old days, computers were for specialists and the users could be expected to be highly educated and specially trained in their use. But now computers are everyday tools that we all must use, and far greater attention must be paid to the human interface.

Many disasters, some involving loss of life, have occurred because of inadequate interfaces: airplane crashes and even shoot-downs of civilian airplanes, freeway pile-ups because of errors in switching remotely-operated highway signs, nuclear power station disasters. On a smaller scale, most people experience frustration—often extreme

ACTIVITY 19. THE CHOCOLATE FACTORY—HUMAN INTERFACE DESIGN

“The only reason we allow him inside isbecause he’s the only one that can work the VCR.”

to account for these; bad design cannot be rectified by producing a detailed and complicated usermanual and expecting people to study it intensively and remember it forever. Also, humans arefallible and design needs to take this into consideration.

Interface evaluation is an essential part of the design process. The present activity hasinvolved some evaluation when the children tested their icon designs on others. Amore thoroughevaluation would test the design on real Oompa-Loompas (who may perceive icons differently)in a carefully-controlled psychology-style experiment.

Although the problems caused by technology—particularly VCRs!—form the butt of manyjokes, human interface design is by no means a laughing matter. Inadequate interfaces causeproblems ranging from individual job dissatisfaction to stock-market disasters, from loss ofself-esteem to loss of life.

Further reading

Don Norman’s book The design of everyday things is a delightful—and liberating—accountof the myriad design problems in everyday products. Jenny Preece’s encyclopedic Human–computer interaction is a very comprehensive account of this multidisciplinary field. We havedrawn extensively on both of these sources when preparing this activity.

Page 208

Page 2: Homework6:%% What%is%Computer%Science?%stejada/csci101/HW/HW6/HW6-WhatisCS.pdf · Human–computer interaction is about designing, evaluating, and implementing computer systems that

frustration (a police officer once fired bullets into his computer screen)—with computers and other high-tech devices every day in the workplace. And it is not just computers: what about those shrink-wrapped packages that you could only open if you had sharp claws or a hooked beak, doors that hurt your wrist as you try to push your way through, milk cartons that always splash you when you open them, elevators where you can’t see how you’re supposed to push the button, home entertainment systems whose advertisements claim to do everything, but make it almost impossible to do anything?

But many so-called human errors are actually errors in design. People have information-processing limitations and designers need to account for these. Also, humans are fallible and design needs to take this into consideration. Interface evaluation is an essential part of the design process.

1) Designing a human-computer interface

The challenge in this sub-problem is to use your C++ programming to develop a human-computer interface that will engage your user, as well as communicate information about your chosen CS topic.

2) Collecting and evaluating user interaction and interface performance

The challenge in this sub-problem is to use your C++ programming to collect and store information about how users interact with your program, then based on this information evaluate how effective is your interface at engaging the user and at communicating your CS topic.

This programming assignment should be written INDIVIDUALLY. Each student is responsible for writing their own code. You may re-use portions of code from previous examples and labs provided in this class, but any other copying of sections of code is prohibited. We will use software tools that check all students’ code and known Internet sources to find hidden similarities.

This  homework  is  an  opportunity  to:  

• Exercise  your  creativity  and  use  computing  to  bring  your  ideas  to  life  • Develop  an  application  that  addresses  a  need  • Apply  basics  concepts  of  programming    • Speak  intelligently  about  computing  and  how  to  develop  it  

What you will learn After completing this programming assignment you will:

1. Write a non-trivial C++ program from scratch by combining knowledge from previous examples and modifying them appropriately

2. Select appropriate control structures including for loops, while loops, conditionals / selection mechanisms (i.e. if statements) to solve a problem

3. Create your own functions. 4. Create your own class.

Page 3: Homework6:%% What%is%Computer%Science?%stejada/csci101/HW/HW6/HW6-WhatisCS.pdf · Human–computer interaction is about designing, evaluating, and implementing computer systems that

5. Incorporate user input into your program. 6. Assess the design and complexity of your algorithms. 7. Use arrays/vectors, pointers, and objects. 8. Design a human-computer interface 9. Evaluate a human-computer interface 10. Evaluate user performance 11. Evaluate teamwork skills 12. Combine and create the above skills.

Program  Requirements  Your  program  shall  meet  the  following  requirements  for  features  and  approach:  

1. You may NOT use global variables. You instead need to pass appropriate arguments either by value or by reference/pointer.

2. Use  control structures (if, for, and while), arrays, pointers, and objects.  3. Create at least 4 user-defined functions  4. Create at least 1 user-defined class  5. Create a human-computer interface  6. Use your robot to educate  7. Store user input into a output file(s)  8. Create evaluation report(s) and graph(s) of your program and user

performance    

Design  Document  Write  down  the  answer  to  the  following  questions  BEFORE  beginning.    You  MUST  do  this  BEFORE  you  begin  to  program  or  write  code,  due  Friday,  April  5.    

1. Write  a  description  of  your  CS  topic  that  you  are  trying  to  teach/demonstrate.  

2. Write  a  description  of  how  your  program  will  engage  the  user.  3. Describe  your  process  for  developing  your  human-­‐computer  interface  4. Describe  how  you  will  evaluate  your  human-­‐computer  interface.  5. Describe  how  you  will  evaluate  the  user’s  interaction.  6. Write  a  description  of  how  your  program  will  collect  user  interaction  

information  7. How  will  you  generate  an  evaluation  report  based  on  the  user  data  

collected?  

Final  project  demonstration  due  Friday,  April  12  1-­‐4pm  

For  the  HW6  project  demonstrations  students  will  present  their  demos  in  teams.    Each  team  should  have  one  team  poster  describing  their  CS  topic  and  each  of  the  team  demos.      After   the  demos  you  will   submit  your  evaluation  reports   for  your  

Page 4: Homework6:%% What%is%Computer%Science?%stejada/csci101/HW/HW6/HW6-WhatisCS.pdf · Human–computer interaction is about designing, evaluating, and implementing computer systems that

demo   and   fill   out   a   survey   critiquing   the   demos   and   giving   feedback   on   your  team’s  teamwork  skills.  

Report  Include  the  following  items  in  your  report.    Be  sure  to  have  your  name  and  USC  ID  on  the  first  page  at  the  top.  

1. Your  answers  from  the  design  document  (Due  Friday,  April  5,  11:59pm)  and  also  include  a  discussion  of  any  design  choices  you  made,  any  known  errors,   and   any   other   information   that   will   help   us   in   grading   your  assignment.  

2. Create  a  youtube  video  of  your  robot  demo.  3. A  printout  of  2  run-­‐throughs  of  your  program.  4. Place   your   .cpp   and   .h   files,   and   report   in   a   ZIPPED   folder   and   submit  

that   ZIP   file.     Failure   to   place   the   files   in   a   ZIP   file   will   lead   to   point  deductions.    Then  submit  the  ZIP  file  via  Blackboard.  

5. Blackboard  submission  (Due  Friday,  April  12,  11:59pm)    Homework Submission

• Report  and  video  on  your  website  (Due  Friday  April  12,  11:59pm)    

• Blackboard  submission  (Due  Friday  April  12,  11:59pm)  o Zip  your  report  and  ‘HCI-­‐YourUserName.cpp’  files  together  and  submit  

to  Blackboard.   Please also note that you must submit your code using the USC Blackboard System since the Blackboard System timestamps your submission. You should also verify what you have submitted is what you intended to submit. Please note that it is your responsibility to ensure that you have submitted valid submissions, meaning that your code must run on the provided Ubuntu image, which is the machine that it will be graded on.

Late Policy All homework must be turned in on time. Late submissions will receive severe penalties. If you submit within 24 hours after the grace period, you will receive 80% of your grade. If you submit within 48 hours after the grace period, you will receive 50% of your grade. If you are unable to complete a homework assignment due to illness or family emergency, please see the instructor as soon as possible to get an extension. A doctor's note is required as proof of illness or emergency. In general, when you get sick, it's best to see a doctor and get a note just in case you may need it later.

   

Page 5: Homework6:%% What%is%Computer%Science?%stejada/csci101/HW/HW6/HW6-WhatisCS.pdf · Human–computer interaction is about designing, evaluating, and implementing computer systems that

Homework  6:  Grading  Rubric   Name: ___________________________________ Score: ______ / 100

Req. / Guideline Wt. Score 10 (Excellent) 8 (Good) 5 (Poor) 2 (Deficient) (0) Failure

Design Document

1 Submitted Missing

Team Topic Presentation

1 Well-organized presentation and poster, detailed description of

algorithm, provides insight into your topic. Strong communication skills

Well-organized presentation and poster, detailed description of

algorithm, provides insight into your topic. Adequate communication

skills

Unorganized presentation and poster

or lacked detailed description of

algorithm or provides no insight into your

topic. Weak communication skills

Poster presented Missing

HCI 2 High complexity or engaging interface or high originality /creativity and

proper use of programming data and control structures

Moderately complex, engaging

interface or original/creative and proper use of programming data

and control structures

Simple or inaccurate interface and moderate originality and proper use of programming

data and control structures

Simple or inaccurate

interface and some originality

Trivial or missing interface

Collecting user statistics

1 Accurately collects and stores user interaction and

performance statistics using file IO

Accurately collects or stores user

interaction and performance

statistics using file IO

Incorrectly collects and stores user interaction and

performance statistics using file IO

Missing collection or storing of user interaction and performance

statistics using file IO

Missing

Evaluation report/graph of user statistics

1 Accurately reads file on user interaction and

performance statistics using file IO then creates a evaluation report/graph of

user performance

Accurately reads file on user

interaction and performance

statistics or creates a evaluation

report/graph of user performance

Inaccurately reads file on user interaction and performance statistics or creates a evaluation

report/graph of user performance

Missing reading in file on user

interaction and performance statistics or creation of evaluation

report/graph of user performance

Missing

Demo and poster presentation

2 High complexity or engaging presentation or

high originality /creativity

Moderately complex, engaging

presentation or original/creative

Simple or inaccurate presentation and

moderate originality

Simple or inaccurate presentation and some originality

Demo code does not compile or

run

Project Critiques/ Feedback

1 Completed Incomplete or Not Completed

Lab Report: Website/code & Code organization

1

Complete: website, design doc answers, code/ Well-organized code (indented/readable) AND commented

Incomplete: design doc answers, code/ Acceptable organization AND commented

Incomplete: missing some design doc answers or code / Poorly organized code OR comments were disorganized and provided little insight into implementation decisions.

Incomplete: missing some design doc answers and code/ Poorly organized code AND provided little insight into implementation decisions.

Missing or Completely unorganized

code and lacked helpful

comments.

Late submission of code

-20% after 1 day -50% after 2 days 0 pts after 3 days

TOTAL