intro-modeling-Spring-2008
Download
Report
Transcript intro-modeling-Spring-2008
Introduction to Modeling
CS1316: Representing
Structure and Behavior
Today’s story
What’s the point of this course?
What’s a model?
What are data structures?
Why Java?
Details on the course
Getting set up for the course
The Point of this Course
Real computer-based media developers
rarely work in terms of pixels and
samples
• Computer musicians deal in terms of notes,
•
instruments, patches, and other structures.
Computer animators deal in terms of
characters, movement, scenes, and other
structures
Bottom-line: They structure their media.
Driving Questions of the Course
How did the wildebeest’s charge over
the ridge in The Lion King?
How did the villages wave in The
Hunchback of Notre Dame?
The Wildebeests in
The Lion King
The Villagers in The Hunchback
of Notre Dame
The answer: Modeling and
Simulation
These are two of the (rare) times that Disney
stepped away from their traditional drawn cel
animation.
Instead they:
•
•
•
Modeled the structure of wildebeests and villagers,
Modeled the behavior of wildebeests (how they
stampede) and villagers (how they wave),
Then started a computer simulation that executed the
models…and basically filmed the screen.
What’s “modeling”?
Describing things in the world in terms of their
structure and behavior.
•
•
F=ma (Force=mass * acceleration) is part of a model
of the world that describes what happens when one
thing hits another.
Maps model physical spaces and their physical
relationships
On a computer, we can execute these models:
Make them work, plug values into equations,
move things in space, see what happens.
•
That’s simulation: Executing a model
What’s a data structure?
A way of organizing information.
Different physical structures organize
space differently.
• Skyscrapers vs. ranch homes.
• Trees vs. snail shells
Data structures organize the information
we use in our programs in different
ways.
Data structures you know
Matt
Age
Eye
Color
13
Brown
Jenny 7
Blue
Data structures that you’ll come
to know
Note in Kitchen
Note in Living
Room
Note in Study
Note in Bedroom
Data structures have different
properties
Arrays and tables keep things organized
right next to one another.
• Makes it easy to find something in the array or
•
table
But if you want to insert something new, you
have to move everything over.
Linked lists and trees keep track of
relationships with links (or edges)
• Easier to insert new things
Thought experiment:
Adding a second of silence into a
sound
Assuming that there’s room for another second
in the sound…
We copy samples from the insertion point to
the end of sound down one second:
setSampleValueAt(sound,soundIndex+oneSec,
getSampleValueAt(sound,soundIndex))
Then we can insert oneSec’s worth of 0’s into
the insertion point
How that looks visually
Here is some sound
Here is some sound
One second
000000000000000Here is some sound
One second
Inserting into a table
Age
1
Eye
Color
Age
Eye
Color
Matt
13
Brown
Matt
13
Brown
Jenny
7
Blue
Jenny
7
Blue
Age
Eye
Color
Age
Eye
Color
Katie
9
Brown
3
Matt
13
Brown
Matt
13
Brown
Jenny
7
Blue
Jenny
7
Blue
2
4
Inserting into a linked list
Note in Kitchen
Note in Living
Room
Note in Study
Note in Bedroom
Inserting into a linked list
Note in Kitchen
Note in Living
Room
Note in Study
Note in Bedroom
Note in Kitchen
Note in Den
Note in Living
Room
Note in Study
Note in Bedroom
Modeling and Simulations are
about data structures
The visual structure of villagers and
wildebeests (e.g., how legs and arms attach to
bodies) is a tree or graph.
Tracking which villager does something next is
a queue.
All of the wildebeests to stampede are stored
in a list.
The images to be used in making the villagers
wave or wildebeests run are usually stored in a
list.
Learning objectives in the
course
Computer Science Learning Objectives
Students will be able to program Java classes and methods based on
modification.
Students will learn how to use and manipulate several core data
structures: Arrays, linked lists, trees, stacks, and queues.
Media Learning Objectives
Students will be able to explain the role of data structures in structuring
and manipulating data, especially multimedia.
Students will be able to explain key issues of modern animations, such as
sound synchronization and moving objects in layers.
Students will be able to discuss the properties, strengths, and weaknesses
of the different structuring approaches for media.
Students will be able to design, define, and implement some simulations.
Students will be able to explain the value of computation for modeling and
simulation.
Why are we using Java?
(Why aren’t we using Python or
MATLAB?)
Java is faster than Python
•
Java is more well-known than Python or
Matlab.
•
We can do more operations in less time, so we can do
more complicated media in less time.
So there’s more “resume value” than Python.
If you take more CS, it’ll probably be in Java.
•
More CS classes are being taught now in Java than in
other programming languages.
General flow of course
Introduction to Java
•
•
Manipulation of pictures and sounds (as in CS1315)
Manipulating music and turtles
Using arrays, linked lists, and trees
•
•
•
With music, pictures, and sounds
Creating animations using arrays, lists, and trees
Generalized linked lists and trees
Creating simulations
•
•
•
•
Predator/prey, disease propagation models, movement of
people
Different kinds of random
•
Sorting our events
Simulations with resources
•
Resource queues
Creating animations with simulations
Class website (Class CoWeb)
http://coweb.cc.gatech.edu/cs1316
• Links to other on-line materials you’ll need
• Syllabus and all slides
• Homework assignments
• We’ll use t-Square for turnin and grades
Reaching me
Office hours off Web page,
http://www.cc.gatech.edu/fac/David.Smith
[email protected]
College of Computing CCB 121
Office phone: (404) 385-0026 (never
answered)
Recitations
WE WILL HAVE RECITATIONS IN THE
FIRST WEEK!
• It’ll be help on installing DrJava and other
files.
Always feel free to bring your laptop
computer to recitation for help!
Course text
Course notes
Available in Engineer’s Bookstore and
also on website
Reading the text is required.
• You get to choose your medium.
Grading policy
20% for four in-class quizzes.
30% for nine homeworks
50% for three exams
No curve. 90, 80, 70, 60 cutoffs
• Pre-quiz on-line, not graded nor turned in.
• Top three grades will count for you
• Two midterms worth 25% (12.5% each)
• One final worth 25%
Homework
Collaborative, but you should do it on-your-own as
much as you can.
•
•
(1) You’ll want to create your own media.
(2) You’ll learn the coding better on your own, so you’ll do
better on exams.
First homework is due Wed January 16th (check on tsquare):
Building two picture methods.
Last four homeworks are required to be pairprogramming exercises
No credit for late homeworks, due 7pm local time
Homeworks for Spring 2008
HW0: Get DrJava running
HW1: Implement two new image methods in Picture
HW2: Create a Picture collage with mirroring
HW3: Create music and dance
HW4: Use Weaving and Repeating to create music
HW5: Create new picture list manipulations
HW6: Create an animation with sound effects
HW7: Build a GUI for translating a string notation to
MIDI
HW8: Simulate a flu epidemic
HW9 (extra credit): Simulate a crowd scene
What you need to do to get
started
Install Java SDK.
•
•
http://www.java.sun.com
Java 1.4.2 or 1.5 for Windows. (You should already
have it for Macintosh.)
Install DrJava
•
http://www.drjava.org
Install JMusic
Install Java code for class from website or CD
(Probably want to download text and slides.)