Introduction to Modeling CS1316: Representing Structure and Behavior.

Slides:



Advertisements
Similar presentations
Team Software Project - Ebnenasir - Spring CS 3141: Team Software Project - Introduction Ali Ebnenasir Department of Computer Science Michigan Technological.
Advertisements

COMP 110 Introduction to Programming Tabitha Peck M.S. January 9, 2008 MWF 3-3:50 pm Philips 367.
1 Foundations of Software Design Lecture 1: Course Overview Intro to Binary and Boolean Marti Hearst SIMS, University of California at Berkeley.
COMP 14 Introduction to Programming Mr. Joshua Stough January 12, 2005 Monday/Wednesday 11:00-12:15 Peabody Hall 218.
COMP 110 Introduction to Programming Jingdan Zhang June 20, 2007 MTWRF 9:45-11:15 am Sitterson Hall 014.
Programming Introduction November 9 Unit 7. What is Programming? Besides being a huge industry? Programming is the process used to write computer programs.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Please open your laptops, log in to the MyMathLab course web site, and open Daily Quiz 18. You will have 10 minutes for today’s quiz. The second problem.
Problem Solving with Data Structures using Java: A Multimedia Approach Chapter 1: Objects for Modeling a World.
Please open your laptops, log in to the MyMathLab course web site, and open Daily Quiz 9. Remember: If you have time left out of your five minutes after.
Computer Science 102 Data Structures and Algorithms V Fall 2009 Lecture 1: administrative details Professor: Evan Korth New York University 1.
CS 0007 Introduction to Computer Programming Jan Wiebe: Office Hours: T: 3-4pm; Th 2-3pm; and by appt.
Welcome to CompSci 100! As You Arrive… Make sure you grab a syllabus packet. Read through it. I will be covering the most essential points in my talk,
Please CLOSE YOUR LAPTOPS, and turn off and put away your cell phones, and get out your note-taking materials. Today’s daily quiz will be given at the.
CS324e - Elements of Graphics and Visualization Class Intro
CSCI 1301 Principles of Computer Science I
Introduction CSE 1310 – Introduction to Computers and Programming
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
MAT 0145 College Readiness Math II Spring 2015
Welcome to CS 3260 Dennis A. Fairclough. Overview Course Canvas Web Site Course Materials Lab Assignments Homework Grading Exams Withdrawing from Class.
COMP Introduction to Programming Yi Hong May 13, 2015.
Media Computing Instructor Byung Kim Olsen 231 Office hours – MWF 9:00-10:00 AM or by appointment.
Welcome to IIT and cs115!.
Lecturer:Prof. Elizabeth A. Ritchie, ATMO TAs:Mr. Adrian Barnard Ms. Anita Annamalai NATS 101 Introduction to Weather and Climate Section 14: T/R 2:00.
Please CLOSE YOUR LAPTOPS, and turn off and put away your cell phones, and get out your note- taking materials.
Computer Science 10: Introduction to Computer Science Dr. Natalie Linnell with credit to Cay Horstmann and Marty Stepp.
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
Introduction to Modeling CS1316: Representing Structure and Behavior.
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
BIT 115: Introduction To Programming Instructor: Mike Panitz
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Computer Science 102 Data Structures and Algorithms CSCI-UA.0102 Fall 2012 Lecture 1: administrative details Professor: Evan Korth New York University.
COP3502: Introduction to Computer Science Yashas Shankar.
Click on these! %2Fblank%2Fbrowse.asp%3FA%3D383%26BMDRN%3D2000%26BCOB%3D0% 26C%3D64893.
ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
Introduction to ECE 2401 Data Structure Fall 2005 Chapter 0 Chen, Chang-Sheng
EECS 110: Introduction to Programming for Non-Majors Aleksandar Kuzmanovic Northwestern University
June 19, Liang-Jun Zhang MTWRF 9:45-11:15 am Sitterson Hall 011 Comp 110 Introduction to Programming.
Computer Science 101 Spring 2000 Section E8TBA Registration Code 1693 Dr. Christopher Vickery.
1 1.Log in to the computer in front of you –Temp account: 231class / 2.Update your in Cascadia's system –If I need to you I'll use.
ICS202 Data Structures King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science Department.
WELCOME to CS244 Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin -
1 CS 101 Today’s class will begin about 5 minutes late We will discuss the lab scheduling problems once class starts.
Fall 2012 Professor C. Van Loan Introduction to CSE Using Matlab GUIs CS 1115.
BIT 143: Programming – Data Structures It is assumed that you will also be present for the slideshow for the first day of class. Between that slideshow.
EECS 110: Introduction to Programming for Non-Majors Aleksandar Kuzmanovic Northwestern University
Data Structures and Algorithms in Java AlaaEddin 2012.
Principles of Imperative Computation Lecture 1 January 15 th, 2012.
Barbara Ericson Promising Practices in CS1 Media Computation for CS1 Barbara Ericson Georgia Institute of Technology.
B.A. (Mahayana Studies) Introduction to Computer Science November March Preliminaries Some background information for this course.
Teachers: If you hand back Test 4 today, tell your class you will review it with them in class on Thursday when you do the review lecture on Chapters 6,
ICS 151 Digital Logic Design Spring 2004 Administrative Issues.
CMPT 238 Data Structures Instructor: Tina Tian. General Information Office: RLC 203A Office Hour: Tue and Fri 12:30 - 2:00PM.
Representing Structure and Behavior
CS16: Introduction to Algorithms and Data Structures
CMPT 201 Computer Science II for Engineers
EECS 110: Introduction to Programming for Non-Majors
CS5040: Data Structures and Algorithms
CSC 222: Object-Oriented Programming
Computer Science 102 Data Structures CSCI-UA
Introduction to Modeling
Welcome to CS 1010! Algorithmic Problem Solving.
Welcome to CS 1010! Algorithmic Problem Solving.
Introduction CSE 373 Data Structures.
Principles of Imperative Computation
CSCI 203: Introduction to Computer Science I
First Day of School 2019.
Presentation transcript:

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 AgeEye Color Matt13Brown Jenny7Blue

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 One second Here is some sound One second

Inserting into a table AgeEye Color Matt13Brown Jenny7Blue AgeEye Color Matt13Brown Jenny7Blue AgeEye Color Matt13Brown Jenny7Blue AgeEye Color Katie9Brown Matt13Brown Jenny7Blue

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 Living Room Note in Study Note in Bedroom Note in Den

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 We can do more operations in less time, so we can do more complicated media in less time. Java is more well-known than Python or Matlab. 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) 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, College of Computing CCB 121 Office phone: (404) (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. Pre-quiz on-line, not graded nor turned in. Top three grades will count for you 30% for nine homeworks 50% for three exams Two midterms worth 25% (12.5% each) One final worth 25% No curve. 90, 80, 70, 60 cutoffs

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 16 th (check on t- square): Building two picture methods. Last four homeworks are required to be pair- programming 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. Java or 1.5 for Windows. (You should already have it for Macintosh.) Install DrJava Install JMusic Install Java code for class from website or CD (Probably want to download text and slides.)