SlideShare a Scribd company logo
1 of 82
IS313 Today: projects!
AI?
UI?
Project plans
I hope I'm
involved!
Dice (and RegDice!) (James)
PyGame – Snake! (Mohammed Alateeq)
PyGame – Tarot!! (Karen Sun)
PyGame – Collector!!! (Baris A.)
PyGame – Pong!!!! (Sarah A.)
PyGame – PicoGirl!!!!! (Maria A.)
Go (Charles)
Restaurant rating/Django (Peter)
Tic-tac-toe player (Payal)
Scholarship survey (Zara, Roni, Joanne)
+map-based writing prompt
Picobot! (Michael)
Mystery (M. Alyami & Abdul A.)
VPool (Jonathan)
Kyle (Tea-file documentation)
Google event tracker (Joe)
SillyLibs! (Amin and Mohammad)
Binary object DB (Jeff w/Twitter + OCR)
Thanks to Kyle… !
IS313 Schedule
Monday, Nov. 29 - no class meeting...
Wednesday, Dec. 1 - preliminary.zip due ...
Monday, Dec. 6 - in-class project presentations...
Monday, Dec. 13 - no formal class meeting
Tuesday, Dec. 7 - intermediate.zip due ...
Friday, Dec. 17 - project.zip due ...
What does this mean?
1st of 3P's: Project preliminaries
What does this mean?
(1) Get your libraries working!
(2) preliminary programming
(0) Choose your libraries…
For Dec. 1st…
Getting started !
Feel free to use existing code...
www.cs.hmc.edu/twiki/bin/view/CS5/GoldRobots2010
VPython/VPool
starting code...
+ be sure to explain how
you've extended it, too...
What does this mean?
(1) An introduction and overview of your progress…
2nd of 3P's: Presentation
certainly no expectations that things are complete!
but they should be further along than preliminary
Example presentation
with running commentary !
feel free to use these slides as a starting point
(but it's by no means required!)
this does not
seem very
original!
inspired by the three projects using PyGame
(one of which are implementing a Snake game!)
Project:
PySnake!
I usually imagine about 1 slide per minute, but this
van vary considerably… Also, this will be longer than 10
minutes since there are so many parenthetical comments!
My goal is at
least one picture
per slide
PyGame: multi-platform (and means it!)
Libraries
Features: classes for 2d single-screen game support
Fun: supports sounds and game controllers, as well…
Resorting to unrelated
pictures only when
absolutely necessary…
but needs Python 2.6
No one writes
programs from
scratch!
Start with the example! (bouncing ball program)
Work Approach
Tinker: learning the library requires testing it out…
Planning: adjust this as you tinker…
You can
probably
leave this
slide out!
www.pygame.org/docs/tut/intro/intro.html
Your project: will need to extend any starter code...
Reading the FAQ
and other online
resources is a
great place to
start!
Suggestions?
Having a ball…
This is an interesting piece of
advice… who wrote this ?!?
To go from Bouncing Ball to Snake!
Game Plan
Data structures:
There is always a set of data
structures that represents your
application…
Describing these data structures
is the application design - or your
"game plan" - especially when the
application is a game!
Inspiration:
http://www.cs.hmc.edu/~cs60grad/Spampede/
http://www.cs.hmc.edu/~cs60grad/Spampede/Spring02/btagiku6
A 2d list of cells -
similar to the game
of life - each of
which might have
a wall
empty space
food!
[ [ 1, 1, 1, 1, 1, … ],
[ 1, 0, 0, 3, 4, … ],
[ 1, 0, 2, 0, 0, … ],
… ]
body and head
Design
Where possible, include details…
Challenge:
How to display a
gameboard cell?
Thus, the game knows what to color each cell
based on the gameboard's contents…
empty space is 0
[ [ 1, 1, 1, 1, 1, … ],
[ 1, 0, 0, 3, 4, … ],
[ 1, 0, 2, 0, 0, … ],
… ]
food is 2
gameboard =
Details
Something about the library that
required some work to figure out!
Challenge:
How about more than one!
To create a region of color, you blit an object of the Surface class
Result:
Details
How did these
checkerboard
patterns arise?
2d lists are used to create patterns of different color surfaces…
Look familiar?
Walls and the Snake
That snake looks like
it's in trouble!
The edges are set to be walls, and the snake is started in the upper left…
Problems?
Snake motion
It's always better
to use descriptive
variable names!
The snake has one
of five directions:
NORTH = ( -1, 0 )
something's missing…
SOUTH = ( +1, 0 )
WEST = ( 0, -1 )
EAST = ( 0, +1 )
STOPPED = ( 0, 0 ) This makes it easy
to go diagonally in
the future, if we
want to!
Snake control
It's always better
to use descriptive
variable names!
Need to use
the kbd
NORTH = ( -1, 0 )
Crash!
SOUTH = ( +1, 0 )
WEST = ( 0, -1 )
EAST = ( 0, +1 )
STOPPED = ( 0, 0 ) This makes it easy
to go diagonally in
the future, if we
want to!
Key class
It's always better
to use descriptive
variable names!
Need to use
the kbd
NORTH = ( -1, 0 )
SOUTH = ( +1, 0 )
WEST = ( 0, -1 )
EAST = ( 0, +1 )
STOPPED = ( 0, 0 )
Note that capital Q
is tricky to specify…
Key feature
Good variable names
make the code self-
documenting!
Response to food!
Snake = [ (1,1), (1,2) ]
A list keeps track of the
cells in the Snake.
Response to
walls and other
obstacles!
What should
happen here?
Demo!
Still to go…
What are you planning on
implementing before the
final version?
Sound Need examples
AI mode
I don't want to take time to play the game …
let's have the computer play it for me!
More than simple cells of color
BIGGER!
Done!
Not done…
Examples!
other resources
Problems encountered? Aargh!
error messages
too much spam!
Design question… That's me!
Which of these steps took the most time?
End of example presentation
Phew!
ePortfolios…
1.
Post your final
project on your
ePortfolio page
in a .zip file
2.
Include on the
page a text
description of
• What it does
• What software
prerequisites it needs
(libraries, Python)
• How to run it
• What you would add
if you had more time
about a paragraph each
The 3rd P!
because software designers aren't the main users…
User interfaces are more difficult than they might seem...
User Inferfaces
No undo!
% ls
file1.txt file2.txt
file3.txt |
% rm *|
(long pause…)
Design for software and beyond
0. Conceptual models
1. Mapping
2. Visibility
3. Feedback
4. Affordances
Don Norman's key principles:
Conceptual Models
Users always bring something "to the table"
these don't work!
Images from The Design of Everyday Things
Ony a human
would think of
these!
Mapping
is matching expected (spatial) relationships
Where to plug in the keyboard and mouse?
?
Visibility
is making functionality apparent
Shower?
Slide projector…
From: www.baddesigns.com
"I used to have that awful shower controller where you
pull down on the nozzle to turn it on. I had to tell every
guest how to do it, and when we sold our house, we got a
call from the new owners about 5 days later asking how
to turn on the shower. They had been taking baths for 5
days! Unbelievable." - BL
Feedback
providing information back to the user
from the UI Hall of Shame
Microsoft Access
Microsoft Outlook
http://homepage.mac.com/bradster/iarchitect/shame.htm
But some of us
graphics aren't
so lazy!
Affordances
are the functions that form suggests…
Opening the XO? Door handles
built-in user's manual
Where do these go wrong?
Mapping
How to open this gas cap?
Visibility Feedback Affordances
This handle unfastens
the seat from the floor. How to turn on this stove?
Set to 5
minutes?
Win NT Dialog
Lab / project …
preliminary.zip is due Dec. 1st!
Have a great
Thankgiving weekend!
Remember:
We do not meet on Mon., Nov. 29th...
Thinking about User Interfaces
Command Line Tablet / Touch
Ambient Information
Display Walls
Thinking about User Interfaces
What other types of human/computer
interfaces can you think of?
#1 W
I
M
P
indows
cons
enus
ointer
GUI
Affordances
~ physical and cultural expectations
0. Conceptual models
1. Mapping
Matching user expectations
e.g., Directory structures
Visibility and Feedback
Banks of glass doors
Slide projector
Affordances
The functions that form suggests!
Phone settings
Why is this a better design?
Keypad numbers layout
• A case of external inconsistency
1 2 3
4 5 6
7 8 9
7 8 9
1 2 3
4 5 6
0 0
(a) phones, remote controls (b) calculators, computer keypads
The project ideas…
Projects!
show text clouds !
local server…
Affordances: to give a clue
• Affordances: The perceived and actual
properties of an object that signal of the
object can be used (from The Design of
Everyday Things)
The project ideas…
Projects!
show text clouds !
local server…
Physical Affordances
Physical Affordances
What do the Zune wheel and the door handle
have in common?
Virtual Affordances
Click Me Click Me
"Quiz"
Name(s):
Note the perceived
affordances in
this interface.
Are there any
that are missing?
Misleading?
For next Thursday…
For Dec. 1st…
What does this mean?
(1) Get your libraries working!
(2) preliminary planning
(0) Choose your libraries…
For Dec. 1st…
What does this mean?
(1) Get your libraries working!
(2) preliminary planning
(0) Choose your libraries…
IS313 Today: projects!
AI?
UI?
Project plans
I hope I'm
involved!
Dice (and RegDice!) (James)
PyGame – Snake! (Mohammed Alateeq)
PyGame – Tarot!! (Karen Sun)
PyGame – Collector!!! (Baris A.)
PyGame – Pong!!!! (Sarah A.)
PyGame – PicoGirl!!!!! (Maria A.)
Go (Charles)
Restaurant rating/Django (Peter)
Tic-tac-toe player (Payal)
Scholarship survey (Zara, Roni, Joanne)
+map-based writing prompt
Picobot! (Michael)
Mystery (M. Alyami & Abdul A.)
VPool (Jonathan)
Kyle (Tea-file documentation)
Google event tracker (Joe)
SillyLibs! (Amin and Mohammad)
Binary object DB (Jeff w/Twitter + OCR)
IS313 Schedule
Monday, Nov. 29 - no class meeting...
Wednesday, Dec. 1 - preliminary.zip due ...
Monday, Dec. 6 - in-class project presentations...
Monday, Dec. 13 - no formal class meeting
Tuesday, Dec. 7 - intermediate.zip due ...
Friday, Dec. 17 - project.zip due ...
What does this mean?
(1) Get your libraries working!
(2) preliminary programming
(0) Choose your libraries…
For Dec. 1st…
Getting started !
Feel free to use existing code...
www.cs.hmc.edu/twiki/bin/view/CS5/GoldRobots2010
VPython/VPool
starting code...
+ be sure to explain how
you've extended it, too...
What does this mean?
(1) An introduction and overview of your progress…
2nd of 3P's: Presentation
certainly no expectations that things are complete!
but they should be further along than preliminary
Example presentation
with running commentary !
feel free to use these slides as a starting point
(but it's by no means required!)
this does not
seem very
original!
inspired by the three projects using PyGame
(one of which are implementing a Snake game!)
Project:
PySnake!
I usually imagine about 1 slide per minute, but this
van vary considerably… Also, this will be longer than 10
minutes since there are so many parenthetical comments!
My goal is at
least one picture
per slide
PyGame: multi-platform (and means it!)
Libraries
Features: classes for 2d single-screen game support
Fun: supports sounds and game controllers, as well…
Resorting to unrelated
pictures only when
absolutely necessary…
but needs Python 2.6
No one writes
programs from
scratch!
Start with the example! (bouncing ball program)
Work Approach
Tinker: learning the library requires testing it out…
Planning: adjust this as you tinker…
You can
probably
leave this
slide out!
www.pygame.org/docs/tut/intro/intro.html
Your project: will need to extend any starter code...
Reading the FAQ
and other online
resources is a
great place to
start!
Suggestions?
Having a ball…
This is an interesting piece of
advice… who wrote this ?!?
To go from Bouncing Ball to Snake!
Game Plan
Data structures:
There is always a set of data
structures that represents your
application…
Describing these data structures
is the application design - or your
"game plan" - especially when the
application is a game!
Inspiration:
http://www.cs.hmc.edu/~cs60grad/Spampede/
http://www.cs.hmc.edu/~cs60grad/Spampede/Spring02/btagiku6
A 2d list of cells -
similar to the game
of life - each of
which might have
a wall
empty space
food!
[ [ 1, 1, 1, 1, 1, … ],
[ 1, 0, 0, 3, 4, … ],
[ 1, 0, 2, 0, 0, … ],
… ]
body and head
Design
Where possible, include details…
Challenge:
How to display a
gameboard cell?
Thus, the game knows what to color each cell
based on the gameboard's contents…
empty space is 0
[ [ 1, 1, 1, 1, 1, … ],
[ 1, 0, 0, 3, 4, … ],
[ 1, 0, 2, 0, 0, … ],
… ]
food is 2
gameboard =
Details
Something about the library that
required some work to figure out!
Challenge:
How about more than one!
To create a region of color, you blit an object of the Surface class
Result:
Walls and the Snake
That snake looks like
it's in trouble!
The edges are set to be walls, and the snake is started in the upper left…
Problems?
Key class
It's always better
to use descriptive
variable names!
Need to use
the kbd
NORTH = ( -1, 0 )
SOUTH = ( +1, 0 )
WEST = ( 0, -1 )
EAST = ( 0, +1 )
STOPPED = ( 0, 0 )
Note that capital Q
is tricky to specify…
Still to go…
What are you planning on
implementing before the
final version?
Sound Need examples
AI mode
I don't want to take time to play the game …
let's have the computer play it for me!
More than simple cells of color
BIGGER!
Done!
Not done…
Examples!
other resources
Problems encountered? Aargh!
error messages
too much spam!
End of example presentation
Phew!
ePortfolios…
1.
Post your final
project on your
ePortfolio page
in a .zip file
2.
Include on the
page a text
description of
• What it does
• What software
prerequisites it needs
(libraries, Python)
• How to run it
• What you would add
if you had more time
about a paragraph each
The 3rd P!
because software designers aren't the main users…
User interfaces are more difficult than they might seem...
Design for software and beyond
0. Conceptual models
1. Mapping
2. Visibility
3. Feedback
4. Affordances
Don Norman's key principles:
Mapping
is matching expected (spatial) relationships
Where to plug in the keyboard and mouse?
?
Visibility
is making functionality apparent
Shower?
Slide projector…
From: www.baddesigns.com
"I used to have that awful shower controller where you
pull down on the nozzle to turn it on. I had to tell every
guest how to do it, and when we sold our house, we got a
call from the new owners about 5 days later asking how
to turn on the shower. They had been taking baths for 5
days! Unbelievable." - BL
Feedback
providing information back to the user
from the UI Hall of Shame
Microsoft Access
Microsoft Outlook
http://homepage.mac.com/bradster/iarchitect/shame.htm
But some of us
graphics aren't
so lazy!
Affordances
are the functions that form suggests…
Opening the XO? Door handles
built-in user's manual
Where do these go wrong?
Mapping
How to open this gas cap?
Visibility Feedback Affordances
This handle unfastens
the seat from the floor. How to turn on this stove?
Set to 5
minutes?
Win NT Dialog
Lab / project …
preliminary.zip is due Dec. 1st!
Have a great
Thankgiving weekend!
Remember:
We do not meet on Mon., Nov. 29th...

More Related Content

Similar to Lec11cgu_10.ppt

Lec1cgu13updated.ppt
Lec1cgu13updated.pptLec1cgu13updated.ppt
Lec1cgu13updated.pptAravind Reddy
 
Just the basics_strata_2013
Just the basics_strata_2013Just the basics_strata_2013
Just the basics_strata_2013Ken Mwai
 
Get connected with python
Get connected with pythonGet connected with python
Get connected with pythonJan Kroon
 
Data Tactics Analytics Brown Bag (November 2013)
Data Tactics Analytics Brown Bag (November 2013)Data Tactics Analytics Brown Bag (November 2013)
Data Tactics Analytics Brown Bag (November 2013)Rich Heimann
 
3. Final Project - Intro
3. Final Project - Intro3. Final Project - Intro
3. Final Project - IntroJoseph Murphy
 
Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1Abhishek Mishra
 
Introduction to programming - class 1
Introduction to programming - class 1Introduction to programming - class 1
Introduction to programming - class 1Paul Brebner
 
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the userVoxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the userVoxxed Athens
 
Computational Thinking - 101
Computational Thinking - 101Computational Thinking - 101
Computational Thinking - 101WhizThinkers
 
Mastering python lesson1
Mastering python lesson1Mastering python lesson1
Mastering python lesson1Ruth Marvin
 
Rock! Paper! iPad! Comparing UX Tools on the iPad to Traditional Methods
Rock! Paper! iPad! Comparing UX Tools on the iPad to Traditional MethodsRock! Paper! iPad! Comparing UX Tools on the iPad to Traditional Methods
Rock! Paper! iPad! Comparing UX Tools on the iPad to Traditional MethodsMichael Ryan
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?Colin Riley
 
Exploring the Internet of Things Using Ruby
Exploring the Internet of Things Using RubyExploring the Internet of Things Using Ruby
Exploring the Internet of Things Using RubyMike Hagedorn
 
Super Gun Kids: The Making Of by Iain Lobb
Super Gun Kids: The Making Of by Iain LobbSuper Gun Kids: The Making Of by Iain Lobb
Super Gun Kids: The Making Of by Iain Lobbmochimedia
 
UX STRAT Europe 2019: Zhaochang He, VMware
UX STRAT Europe 2019: Zhaochang He, VMwareUX STRAT Europe 2019: Zhaochang He, VMware
UX STRAT Europe 2019: Zhaochang He, VMwareUX STRAT
 
small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)ariannaschlegel
 
Eating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & AppsEating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & AppsRobotGrrl
 

Similar to Lec11cgu_10.ppt (20)

Lec1cgu13updated.ppt
Lec1cgu13updated.pptLec1cgu13updated.ppt
Lec1cgu13updated.ppt
 
Python: The Dynamic!
Python: The Dynamic!Python: The Dynamic!
Python: The Dynamic!
 
Just the basics_strata_2013
Just the basics_strata_2013Just the basics_strata_2013
Just the basics_strata_2013
 
Get connected with python
Get connected with pythonGet connected with python
Get connected with python
 
Data Tactics Analytics Brown Bag (November 2013)
Data Tactics Analytics Brown Bag (November 2013)Data Tactics Analytics Brown Bag (November 2013)
Data Tactics Analytics Brown Bag (November 2013)
 
3. Final Project - Intro
3. Final Project - Intro3. Final Project - Intro
3. Final Project - Intro
 
Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1Introduction to Game programming with PyGame Part 1
Introduction to Game programming with PyGame Part 1
 
Introduction to programming - class 1
Introduction to programming - class 1Introduction to programming - class 1
Introduction to programming - class 1
 
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the userVoxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
 
Computational Thinking - 101
Computational Thinking - 101Computational Thinking - 101
Computational Thinking - 101
 
Mastering python lesson1
Mastering python lesson1Mastering python lesson1
Mastering python lesson1
 
Rock! Paper! iPad! Comparing UX Tools on the iPad to Traditional Methods
Rock! Paper! iPad! Comparing UX Tools on the iPad to Traditional MethodsRock! Paper! iPad! Comparing UX Tools on the iPad to Traditional Methods
Rock! Paper! iPad! Comparing UX Tools on the iPad to Traditional Methods
 
Piedra, papel, ipad
Piedra, papel, ipadPiedra, papel, ipad
Piedra, papel, ipad
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
 
Exploring the Internet of Things Using Ruby
Exploring the Internet of Things Using RubyExploring the Internet of Things Using Ruby
Exploring the Internet of Things Using Ruby
 
Super Gun Kids: The Making Of by Iain Lobb
Super Gun Kids: The Making Of by Iain LobbSuper Gun Kids: The Making Of by Iain Lobb
Super Gun Kids: The Making Of by Iain Lobb
 
Conf orm - explain
Conf orm - explainConf orm - explain
Conf orm - explain
 
UX STRAT Europe 2019: Zhaochang He, VMware
UX STRAT Europe 2019: Zhaochang He, VMwareUX STRAT Europe 2019: Zhaochang He, VMware
UX STRAT Europe 2019: Zhaochang He, VMware
 
small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)
 
Eating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & AppsEating Fruit - Combining Robots & Apps
Eating Fruit - Combining Robots & Apps
 

More from Anjali127411

Presentstion polymorphism opp Java muet u
Presentstion polymorphism opp Java muet uPresentstion polymorphism opp Java muet u
Presentstion polymorphism opp Java muet uAnjali127411
 
Engineering management ,notes PPT slides
Engineering management ,notes PPT slidesEngineering management ,notes PPT slides
Engineering management ,notes PPT slidesAnjali127411
 
6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...
6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...
6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...Anjali127411
 
11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.ppt11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.pptAnjali127411
 
Presentation ethics
Presentation ethics Presentation ethics
Presentation ethics Anjali127411
 

More from Anjali127411 (6)

Presentstion polymorphism opp Java muet u
Presentstion polymorphism opp Java muet uPresentstion polymorphism opp Java muet u
Presentstion polymorphism opp Java muet u
 
Engineering management ,notes PPT slides
Engineering management ,notes PPT slidesEngineering management ,notes PPT slides
Engineering management ,notes PPT slides
 
6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...
6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...
6qh6iyoesuitvyv0exyn-signature-c0a664d80fc39ee9e26afe9aaa4fdd53cac2536d6a0ca7...
 
11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.ppt11-ScriptsAndConditionals.ppt
11-ScriptsAndConditionals.ppt
 
slides03.ppt
slides03.pptslides03.ppt
slides03.ppt
 
Presentation ethics
Presentation ethics Presentation ethics
Presentation ethics
 

Recently uploaded

18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitolTechU
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 

Recently uploaded (20)

18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 

Lec11cgu_10.ppt

  • 1. IS313 Today: projects! AI? UI? Project plans I hope I'm involved! Dice (and RegDice!) (James) PyGame – Snake! (Mohammed Alateeq) PyGame – Tarot!! (Karen Sun) PyGame – Collector!!! (Baris A.) PyGame – Pong!!!! (Sarah A.) PyGame – PicoGirl!!!!! (Maria A.) Go (Charles) Restaurant rating/Django (Peter) Tic-tac-toe player (Payal) Scholarship survey (Zara, Roni, Joanne) +map-based writing prompt Picobot! (Michael) Mystery (M. Alyami & Abdul A.) VPool (Jonathan) Kyle (Tea-file documentation) Google event tracker (Joe) SillyLibs! (Amin and Mohammad) Binary object DB (Jeff w/Twitter + OCR)
  • 3. IS313 Schedule Monday, Nov. 29 - no class meeting... Wednesday, Dec. 1 - preliminary.zip due ... Monday, Dec. 6 - in-class project presentations... Monday, Dec. 13 - no formal class meeting Tuesday, Dec. 7 - intermediate.zip due ... Friday, Dec. 17 - project.zip due ...
  • 4. What does this mean? 1st of 3P's: Project preliminaries
  • 5. What does this mean? (1) Get your libraries working! (2) preliminary programming (0) Choose your libraries… For Dec. 1st…
  • 6. Getting started ! Feel free to use existing code... www.cs.hmc.edu/twiki/bin/view/CS5/GoldRobots2010 VPython/VPool starting code... + be sure to explain how you've extended it, too...
  • 7. What does this mean? (1) An introduction and overview of your progress… 2nd of 3P's: Presentation certainly no expectations that things are complete! but they should be further along than preliminary
  • 8. Example presentation with running commentary ! feel free to use these slides as a starting point (but it's by no means required!)
  • 9. this does not seem very original! inspired by the three projects using PyGame (one of which are implementing a Snake game!) Project: PySnake! I usually imagine about 1 slide per minute, but this van vary considerably… Also, this will be longer than 10 minutes since there are so many parenthetical comments!
  • 10. My goal is at least one picture per slide PyGame: multi-platform (and means it!) Libraries Features: classes for 2d single-screen game support Fun: supports sounds and game controllers, as well… Resorting to unrelated pictures only when absolutely necessary… but needs Python 2.6
  • 11. No one writes programs from scratch! Start with the example! (bouncing ball program) Work Approach Tinker: learning the library requires testing it out… Planning: adjust this as you tinker… You can probably leave this slide out! www.pygame.org/docs/tut/intro/intro.html Your project: will need to extend any starter code...
  • 12. Reading the FAQ and other online resources is a great place to start! Suggestions? Having a ball… This is an interesting piece of advice… who wrote this ?!?
  • 13. To go from Bouncing Ball to Snake! Game Plan Data structures: There is always a set of data structures that represents your application… Describing these data structures is the application design - or your "game plan" - especially when the application is a game! Inspiration: http://www.cs.hmc.edu/~cs60grad/Spampede/ http://www.cs.hmc.edu/~cs60grad/Spampede/Spring02/btagiku6 A 2d list of cells - similar to the game of life - each of which might have a wall empty space food! [ [ 1, 1, 1, 1, 1, … ], [ 1, 0, 0, 3, 4, … ], [ 1, 0, 2, 0, 0, … ], … ] body and head
  • 14. Design Where possible, include details… Challenge: How to display a gameboard cell? Thus, the game knows what to color each cell based on the gameboard's contents… empty space is 0 [ [ 1, 1, 1, 1, 1, … ], [ 1, 0, 0, 3, 4, … ], [ 1, 0, 2, 0, 0, … ], … ] food is 2 gameboard =
  • 15. Details Something about the library that required some work to figure out! Challenge: How about more than one! To create a region of color, you blit an object of the Surface class Result:
  • 16. Details How did these checkerboard patterns arise? 2d lists are used to create patterns of different color surfaces… Look familiar?
  • 17. Walls and the Snake That snake looks like it's in trouble! The edges are set to be walls, and the snake is started in the upper left… Problems?
  • 18. Snake motion It's always better to use descriptive variable names! The snake has one of five directions: NORTH = ( -1, 0 ) something's missing… SOUTH = ( +1, 0 ) WEST = ( 0, -1 ) EAST = ( 0, +1 ) STOPPED = ( 0, 0 ) This makes it easy to go diagonally in the future, if we want to!
  • 19. Snake control It's always better to use descriptive variable names! Need to use the kbd NORTH = ( -1, 0 ) Crash! SOUTH = ( +1, 0 ) WEST = ( 0, -1 ) EAST = ( 0, +1 ) STOPPED = ( 0, 0 ) This makes it easy to go diagonally in the future, if we want to!
  • 20. Key class It's always better to use descriptive variable names! Need to use the kbd NORTH = ( -1, 0 ) SOUTH = ( +1, 0 ) WEST = ( 0, -1 ) EAST = ( 0, +1 ) STOPPED = ( 0, 0 ) Note that capital Q is tricky to specify…
  • 21. Key feature Good variable names make the code self- documenting! Response to food! Snake = [ (1,1), (1,2) ] A list keeps track of the cells in the Snake. Response to walls and other obstacles! What should happen here? Demo!
  • 22. Still to go… What are you planning on implementing before the final version? Sound Need examples AI mode I don't want to take time to play the game … let's have the computer play it for me! More than simple cells of color BIGGER! Done! Not done…
  • 24. Problems encountered? Aargh! error messages too much spam!
  • 25. Design question… That's me! Which of these steps took the most time?
  • 26. End of example presentation Phew!
  • 27. ePortfolios… 1. Post your final project on your ePortfolio page in a .zip file 2. Include on the page a text description of • What it does • What software prerequisites it needs (libraries, Python) • How to run it • What you would add if you had more time about a paragraph each The 3rd P!
  • 28. because software designers aren't the main users… User interfaces are more difficult than they might seem...
  • 29. User Inferfaces No undo! % ls file1.txt file2.txt file3.txt | % rm *| (long pause…)
  • 30. Design for software and beyond 0. Conceptual models 1. Mapping 2. Visibility 3. Feedback 4. Affordances Don Norman's key principles:
  • 31. Conceptual Models Users always bring something "to the table" these don't work! Images from The Design of Everyday Things Ony a human would think of these!
  • 32. Mapping is matching expected (spatial) relationships Where to plug in the keyboard and mouse? ?
  • 33. Visibility is making functionality apparent Shower? Slide projector… From: www.baddesigns.com "I used to have that awful shower controller where you pull down on the nozzle to turn it on. I had to tell every guest how to do it, and when we sold our house, we got a call from the new owners about 5 days later asking how to turn on the shower. They had been taking baths for 5 days! Unbelievable." - BL
  • 34. Feedback providing information back to the user from the UI Hall of Shame Microsoft Access Microsoft Outlook http://homepage.mac.com/bradster/iarchitect/shame.htm But some of us graphics aren't so lazy!
  • 35. Affordances are the functions that form suggests… Opening the XO? Door handles built-in user's manual
  • 36. Where do these go wrong? Mapping How to open this gas cap? Visibility Feedback Affordances This handle unfastens the seat from the floor. How to turn on this stove? Set to 5 minutes? Win NT Dialog
  • 37. Lab / project … preliminary.zip is due Dec. 1st! Have a great Thankgiving weekend! Remember: We do not meet on Mon., Nov. 29th...
  • 38. Thinking about User Interfaces Command Line Tablet / Touch
  • 41. Thinking about User Interfaces What other types of human/computer interfaces can you think of? #1 W I M P indows cons enus ointer GUI
  • 42. Affordances ~ physical and cultural expectations 0. Conceptual models 1. Mapping Matching user expectations e.g., Directory structures Visibility and Feedback Banks of glass doors Slide projector Affordances The functions that form suggests! Phone settings
  • 43. Why is this a better design?
  • 44. Keypad numbers layout • A case of external inconsistency 1 2 3 4 5 6 7 8 9 7 8 9 1 2 3 4 5 6 0 0 (a) phones, remote controls (b) calculators, computer keypads
  • 45. The project ideas… Projects! show text clouds ! local server…
  • 46. Affordances: to give a clue • Affordances: The perceived and actual properties of an object that signal of the object can be used (from The Design of Everyday Things)
  • 47. The project ideas… Projects! show text clouds ! local server…
  • 49. Physical Affordances What do the Zune wheel and the door handle have in common?
  • 51. "Quiz" Name(s): Note the perceived affordances in this interface. Are there any that are missing? Misleading?
  • 53. For Dec. 1st… What does this mean? (1) Get your libraries working! (2) preliminary planning (0) Choose your libraries…
  • 54. For Dec. 1st… What does this mean? (1) Get your libraries working! (2) preliminary planning (0) Choose your libraries…
  • 55. IS313 Today: projects! AI? UI? Project plans I hope I'm involved! Dice (and RegDice!) (James) PyGame – Snake! (Mohammed Alateeq) PyGame – Tarot!! (Karen Sun) PyGame – Collector!!! (Baris A.) PyGame – Pong!!!! (Sarah A.) PyGame – PicoGirl!!!!! (Maria A.) Go (Charles) Restaurant rating/Django (Peter) Tic-tac-toe player (Payal) Scholarship survey (Zara, Roni, Joanne) +map-based writing prompt Picobot! (Michael) Mystery (M. Alyami & Abdul A.) VPool (Jonathan) Kyle (Tea-file documentation) Google event tracker (Joe) SillyLibs! (Amin and Mohammad) Binary object DB (Jeff w/Twitter + OCR)
  • 56. IS313 Schedule Monday, Nov. 29 - no class meeting... Wednesday, Dec. 1 - preliminary.zip due ... Monday, Dec. 6 - in-class project presentations... Monday, Dec. 13 - no formal class meeting Tuesday, Dec. 7 - intermediate.zip due ... Friday, Dec. 17 - project.zip due ...
  • 57. What does this mean? (1) Get your libraries working! (2) preliminary programming (0) Choose your libraries… For Dec. 1st…
  • 58. Getting started ! Feel free to use existing code... www.cs.hmc.edu/twiki/bin/view/CS5/GoldRobots2010 VPython/VPool starting code... + be sure to explain how you've extended it, too...
  • 59. What does this mean? (1) An introduction and overview of your progress… 2nd of 3P's: Presentation certainly no expectations that things are complete! but they should be further along than preliminary
  • 60. Example presentation with running commentary ! feel free to use these slides as a starting point (but it's by no means required!)
  • 61. this does not seem very original! inspired by the three projects using PyGame (one of which are implementing a Snake game!) Project: PySnake! I usually imagine about 1 slide per minute, but this van vary considerably… Also, this will be longer than 10 minutes since there are so many parenthetical comments!
  • 62. My goal is at least one picture per slide PyGame: multi-platform (and means it!) Libraries Features: classes for 2d single-screen game support Fun: supports sounds and game controllers, as well… Resorting to unrelated pictures only when absolutely necessary… but needs Python 2.6
  • 63. No one writes programs from scratch! Start with the example! (bouncing ball program) Work Approach Tinker: learning the library requires testing it out… Planning: adjust this as you tinker… You can probably leave this slide out! www.pygame.org/docs/tut/intro/intro.html Your project: will need to extend any starter code...
  • 64. Reading the FAQ and other online resources is a great place to start! Suggestions? Having a ball… This is an interesting piece of advice… who wrote this ?!?
  • 65. To go from Bouncing Ball to Snake! Game Plan Data structures: There is always a set of data structures that represents your application… Describing these data structures is the application design - or your "game plan" - especially when the application is a game! Inspiration: http://www.cs.hmc.edu/~cs60grad/Spampede/ http://www.cs.hmc.edu/~cs60grad/Spampede/Spring02/btagiku6 A 2d list of cells - similar to the game of life - each of which might have a wall empty space food! [ [ 1, 1, 1, 1, 1, … ], [ 1, 0, 0, 3, 4, … ], [ 1, 0, 2, 0, 0, … ], … ] body and head
  • 66. Design Where possible, include details… Challenge: How to display a gameboard cell? Thus, the game knows what to color each cell based on the gameboard's contents… empty space is 0 [ [ 1, 1, 1, 1, 1, … ], [ 1, 0, 0, 3, 4, … ], [ 1, 0, 2, 0, 0, … ], … ] food is 2 gameboard =
  • 67. Details Something about the library that required some work to figure out! Challenge: How about more than one! To create a region of color, you blit an object of the Surface class Result:
  • 68. Walls and the Snake That snake looks like it's in trouble! The edges are set to be walls, and the snake is started in the upper left… Problems?
  • 69. Key class It's always better to use descriptive variable names! Need to use the kbd NORTH = ( -1, 0 ) SOUTH = ( +1, 0 ) WEST = ( 0, -1 ) EAST = ( 0, +1 ) STOPPED = ( 0, 0 ) Note that capital Q is tricky to specify…
  • 70. Still to go… What are you planning on implementing before the final version? Sound Need examples AI mode I don't want to take time to play the game … let's have the computer play it for me! More than simple cells of color BIGGER! Done! Not done…
  • 72. Problems encountered? Aargh! error messages too much spam!
  • 73. End of example presentation Phew!
  • 74. ePortfolios… 1. Post your final project on your ePortfolio page in a .zip file 2. Include on the page a text description of • What it does • What software prerequisites it needs (libraries, Python) • How to run it • What you would add if you had more time about a paragraph each The 3rd P!
  • 75. because software designers aren't the main users… User interfaces are more difficult than they might seem...
  • 76. Design for software and beyond 0. Conceptual models 1. Mapping 2. Visibility 3. Feedback 4. Affordances Don Norman's key principles:
  • 77. Mapping is matching expected (spatial) relationships Where to plug in the keyboard and mouse? ?
  • 78. Visibility is making functionality apparent Shower? Slide projector… From: www.baddesigns.com "I used to have that awful shower controller where you pull down on the nozzle to turn it on. I had to tell every guest how to do it, and when we sold our house, we got a call from the new owners about 5 days later asking how to turn on the shower. They had been taking baths for 5 days! Unbelievable." - BL
  • 79. Feedback providing information back to the user from the UI Hall of Shame Microsoft Access Microsoft Outlook http://homepage.mac.com/bradster/iarchitect/shame.htm But some of us graphics aren't so lazy!
  • 80. Affordances are the functions that form suggests… Opening the XO? Door handles built-in user's manual
  • 81. Where do these go wrong? Mapping How to open this gas cap? Visibility Feedback Affordances This handle unfastens the seat from the floor. How to turn on this stove? Set to 5 minutes? Win NT Dialog
  • 82. Lab / project … preliminary.zip is due Dec. 1st! Have a great Thankgiving weekend! Remember: We do not meet on Mon., Nov. 29th...