homework6:%% what%is%computer%science?%stejada/csci101/hw/hw6/hw6-whatiscs.pdf · human–computer...
TRANSCRIPT
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
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.
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
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.
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