is313 today: projects!

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)

Upload: nola

Post on 22-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

IS313 Today: projects!. Project plans. AI?. VPool (Jonathan). I hope I'm involved!. Picobot! (Michael). Go (Charles). Dice (and RegDice!) (James). PyGame – Snake! (Mohammed Alateeq). PyGame – Tarot!! (Karen Sun). PyGame – Collector!!! (Baris A.). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: IS313 Today:   projects!

IS313 Today: projects!

AI?

UI?

Project plansI 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)

Page 2: IS313 Today:   projects!

Thanks to Kyle… !

Page 3: IS313 Today:   projects!

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 ...

Page 4: IS313 Today:   projects!

What does this mean?

1st of 3P's: Project preliminaries

Page 5: IS313 Today:   projects!

What does this mean?(1) Get your libraries working!

(2) preliminary programming

(0) Choose your libraries…

For Dec. 1st…

Page 6: IS313 Today:   projects!

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...

Page 7: IS313 Today:   projects!

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

Page 8: IS313 Today:   projects!

Example presentation

with running commentary !

feel free to use these slides as a starting point (but it's by no means required!)

Page 9: IS313 Today:   projects!

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!

Page 10: IS313 Today:   projects!

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

Page 11: IS313 Today:   projects!

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...

Page 12: IS313 Today:   projects!

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 ?!?

Page 13: IS313 Today:   projects!

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

Page 14: IS313 Today:   projects!

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 =

Page 15: IS313 Today:   projects!

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:

Page 16: IS313 Today:   projects!

DetailsHow did these checkerboard

patterns arise?

2d lists are used to create patterns of different color surfaces…

Look familiar?

Page 17: IS313 Today:   projects!

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?

Page 18: IS313 Today:   projects!

Snake motionIt'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!

Page 19: IS313 Today:   projects!

Snake controlIt'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!

Page 20: IS313 Today:   projects!

Key classIt'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…

Page 21: IS313 Today:   projects!

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!

Page 22: IS313 Today:   projects!

Still to go…What are you planning on

implementing before the final version?

Sound Need examples

AI modeI 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…

Page 23: IS313 Today:   projects!

Examples!

other resources

Page 24: IS313 Today:   projects!

Problems encountered? Aargh!

error messages

too much spam!

Page 25: IS313 Today:   projects!

Design question… That's me!

Which of these steps took the most time?

Page 26: IS313 Today:   projects!

End of example presentationPhew!

Page 27: IS313 Today:   projects!

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!

Page 28: IS313 Today:   projects!

because software designers aren't the main users…

User interfaces are more difficult than they might seem...

Page 29: IS313 Today:   projects!

User Inferfaces

No undo!

% ls

file1.txt file2.txt

file3.txt |

% rm *|

(long pause…)

Page 30: IS313 Today:   projects!

Design for software and beyond

0. Conceptual

models

1. Mapping

2. Visibility

3. Feedback

4. Affordances

Don Norman's key principles:

Page 31: IS313 Today:   projects!

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!

Page 32: IS313 Today:   projects!

Mapping

is matching expected (spatial) relationships

Where to plug in the keyboard and mouse?

?

Page 33: IS313 Today:   projects!

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

Page 34: IS313 Today:   projects!

Feedback

providing information back to the user

from the UI Hall of Shame

Microsoft Access

Microsoft Outlook

http://homepage.mac.com/bradster/iarchitect/shame.htmBut some of us graphics aren't so lazy!

Page 35: IS313 Today:   projects!

Affordances

are the functions that form suggests…

Opening the XO? Door handles

built-in user's manual

Page 36: IS313 Today:   projects!

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

Page 37: IS313 Today:   projects!

Lab / project …

preliminary.zip is due Dec. 1st!

Have a great Thankgiving weekend!

Remember: We do not meet on Mon., Nov. 29th...

Page 38: IS313 Today:   projects!

Thinking about User Interfaces

Command Line Tablet / Touch

Page 39: IS313 Today:   projects!

Ambient Information

Page 40: IS313 Today:   projects!

Display Walls

Page 41: IS313 Today:   projects!

Thinking about User Interfaces

What other types of human/computer interfaces can you think of?

#1 WI

MP

indowsconsenusointer

GUI

Page 42: IS313 Today:   projects!

Affordances~ physical and cultural expectations

0. Conceptual models 1. Mapping

Matching user expectations e.g., Directory structures

Visibility and Feedback

Banks of glass doorsSlide projector

Affordances The functions that form suggests! Phone settings

Page 43: IS313 Today:   projects!

Why is this a better design?

Page 44: IS313 Today:   projects!

Keypad numbers layout

• A case of external inconsistency

1 2 34 5 6

7 8 9

7 8 9

1 2 3

4 5 6

0 0

(a) phones, remote controls(b) calculators, computer keypads

Page 45: IS313 Today:   projects!

The project ideas…

Projects!

show text clouds !

local server…

Page 46: IS313 Today:   projects!

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)

Page 47: IS313 Today:   projects!

The project ideas…

Projects!

show text clouds !

local server…

Page 48: IS313 Today:   projects!

Physical Affordances

Page 49: IS313 Today:   projects!

Physical Affordances

What do the Zune wheel and the door handle have in common?

Page 50: IS313 Today:   projects!

Virtual AffordancesClick Me Click Me

Page 51: IS313 Today:   projects!

"Quiz"

Name(s):

Note the perceivedaffordances inthis interface.Are there anythat are missing?Misleading?

Page 52: IS313 Today:   projects!

For next Thursday…

Page 53: IS313 Today:   projects!

For Dec. 1st…

What does this mean?

(1) Get your libraries working!

(2) preliminary planning

(0) Choose your libraries…

Page 54: IS313 Today:   projects!

For Dec. 1st…

What does this mean?

(1) Get your libraries working!

(2) preliminary planning

(0) Choose your libraries…

Page 55: IS313 Today:   projects!

IS313 Today: projects!

AI?

UI?

Project plansI 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)

Page 56: IS313 Today:   projects!

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 ...

Page 57: IS313 Today:   projects!

What does this mean?(1) Get your libraries working!

(2) preliminary programming

(0) Choose your libraries…

For Dec. 1st…

Page 58: IS313 Today:   projects!

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...

Page 59: IS313 Today:   projects!

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

Page 60: IS313 Today:   projects!

Example presentation

with running commentary !

feel free to use these slides as a starting point (but it's by no means required!)

Page 61: IS313 Today:   projects!

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!

Page 62: IS313 Today:   projects!

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

Page 63: IS313 Today:   projects!

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...

Page 64: IS313 Today:   projects!

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 ?!?

Page 65: IS313 Today:   projects!

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

Page 66: IS313 Today:   projects!

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 =

Page 67: IS313 Today:   projects!

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:

Page 68: IS313 Today:   projects!

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?

Page 69: IS313 Today:   projects!

Key classIt'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…

Page 70: IS313 Today:   projects!

Still to go…What are you planning on

implementing before the final version?

Sound Need examples

AI modeI 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…

Page 71: IS313 Today:   projects!

Examples!

other resources

Page 72: IS313 Today:   projects!

Problems encountered? Aargh!

error messages

too much spam!

Page 73: IS313 Today:   projects!

End of example presentationPhew!

Page 74: IS313 Today:   projects!

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!

Page 75: IS313 Today:   projects!

because software designers aren't the main users…

User interfaces are more difficult than they might seem...

Page 76: IS313 Today:   projects!

Design for software and beyond

0. Conceptual

models

1. Mapping

2. Visibility

3. Feedback

4. Affordances

Don Norman's key principles:

Page 77: IS313 Today:   projects!

Mapping

is matching expected (spatial) relationships

Where to plug in the keyboard and mouse?

?

Page 78: IS313 Today:   projects!

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

Page 79: IS313 Today:   projects!

Feedback

providing information back to the user

from the UI Hall of Shame

Microsoft Access

Microsoft Outlook

http://homepage.mac.com/bradster/iarchitect/shame.htmBut some of us graphics aren't so lazy!

Page 80: IS313 Today:   projects!

Affordances

are the functions that form suggests…

Opening the XO? Door handles

built-in user's manual

Page 81: IS313 Today:   projects!

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

Page 82: IS313 Today:   projects!

Lab / project …

preliminary.zip is due Dec. 1st!

Have a great Thankgiving weekend!

Remember: We do not meet on Mon., Nov. 29th...