CSC 250, Fall 2009


Assignment Due: Friday, December 4

Green games demos, modified to support abstraction.

Final review of games, discussion of object oriented programming, data structures and collaborative problem solving.

Assignment Due: Tuesday, December 1

Report summary on Worm World, just like Elevator.

Elevator should be complete.

Have your Processing prototype of the green game ready on for initial demo on Tuesday 12/2.

Assignment Due: Tuesday, November 24

See Nov. 20. Lots of stuff due!

Assignment Due: Friday, November 20

Study for the objects quiz on Friday, Nov. 20. Classes, super classes, abstract classes, over-riding, overloading, interfaces are all fair game. (Note that they can all be done as inner classes in Processing.) But make sure you know what an "inner" class is.

Continue the completion of the Elevator with a view toward having the report completed 11/24

Prototype(s) of Worm World due on 11/24 as well

Prototypes of Individual games due 11/24 as well.

NOTE WELL: If you are planning to miss class on 11/24 you absolutely MUST inform Dr. Wolz by email immediately.

Assignment Due: Tuesday, November 17

Study for the data structures quiz: things that are fair game: things that are fair game: static and dynamic implementations of stacks, queues, linked lists, doubly linked lists, trees (and not just binary trees), graphs. Array implementation of graphs also fair game..... Post example projects on the wiki (create your own resource.) Email Dr. Wolz with questions.

On your own or with a partner explore the Eclipse environment and work through the "hello world" example. Be prepared on Tuesday to work through a multi-class project definition because we will define abstract classes and interfaces that each of your green games will use.

Study for the objects quiz on Friday, Nov. 20. Classes, super classes, abstract classes, over-riding, overloading, interfaces are all fair game. (Note that they can all be done as inner classes in Processing.) But make sure you know what an "inner" class is.

Assignment Due: Friday, November 13

Study the examples from class on 11/10 and add a "Monster" to the project.

Be prepared to compile a program in Java, rather than Processing. Make sure you've read the "Eclipse" tutorial on the Processing website.

Please also study the following:

http://www.learn-java-tutorial.com/Java-Inheritance.cfm

http://home.cogeco.ca/~ve3ll/jatutor5.htm

http://javaboutique.internet.com/tutorials/Java_Game_Programming/index.html

Your final project will require you to independently develop a small interactive game that illustrates or teaches something about how to be "green." You will need to research a green topic of your choosing, and create a prototype in Scratch. On 11/16 as a group, we will outline the "abstract class" Game that contains all the gaming components necessary to support a green game. Each of you will then create a subclass of this game class to implement your own game over the remaining weeks. You may decide that some of you can "share" code by implementing intermediate classes and then subclassing those. Be prepared to "pitch" your game idea orally to the group on Friday. Describe your idea (with references to sites that provide the requisite background information) on the wiki.

We have "FROZEN" the elevator. It is time to develop a final report. Individually and as group you will need to create coherent report on the wiki. Have fun!

Assignment Due: Tuesday, November 10

Code freeze of the Elevator on Tuesday (we will review it in the first session)

Please answer the questions on the tree page. Study the code we created in class. Here's the challenge. Write a method that inserts a number in the proper place in a binary tree.

Write a bit of sample code that implements a "graph". What is a graph? It is a tree that can point anywhere.....

Add information on the wiki regarding "Object oriented programming" Go there and find sites that answer the questions.

 

Assignment Due: Friday, November 6

We are about to freeze the Elevator implementation. Finish your part!

It is time to learn something about trees. On the tree wiki page, find a link on the web that talks about what a "tree" is in computer science. Consider questions such as: How does it differ from a graph? What does it have to do with recursion?

Assignment Due: Tuesday, November 2

Continue with your work on BOTH the Elevator and the Worm World project. Submit a status report to Dr. Wolz via email at the end of the week.

A PRACTICE linked list project (don't hand in, but be prepared to share at least one on 10/30): Create three Processing sketches:

1) Create an example of a singly linked list of "stick people."

2) Create an example of a doubly linked list of "stick people."

3) Create a stack from your implementation of a linked list.

4) Create a queue from your implementaiton of a linked list.

Assignment Due: Friday, October 30

Continue with your work on BOTH the Elevator and the Worm World project. Submit a status report to Dr. Wolz via email at the end of the week.

A PRACTICE linked list project (don't hand in, but be prepared to share at least one on 10/30): Create three Processing sketches:

1) Load an array with stick figures that are implemented as an inner class. That is the array should be of type StickFigure. Each figure should keep track of its position on the screen.

2) Do the same thing with a stack of figures. Include code via "keypress" that allows you push and pop figures from the stack. Make the stack visible by assigning appropriate positions for the stick people.

3) Do the same thing as #2 for a queue.

Go out on the internet and research the concepts of "recursion" and "induction." Enter your link into a table on the wiki.

Assignment Due: Tuesday, October 27

Using the template for a proposal, adapt it to make a proposal for how you personally will enhance the worm world problem. Your proposal was due Oct. 23. - please finish it asap.

Write a short report on the status of the Elevator, not just your part, the whole thing. Email you report to Dr. Wolz.

We will spend the first session on 10/27 on data structures. Be prepared to write code quickly.....

Assignment Due: Friday, October 23

OMG: She's actually TELLING YOU TO STUDY FOR A QUIZ! (If you didn't get clear instructions in class for how to study then, ASK FOR PETE'S SAKE!)

Using the template for a proposal, adapt it to make a proposal for how you personally will enhance the worm world problem. Your proposal is due Oct. 23. (Its time for you to locate things on the web without obvious pointers. If you really can't find it, ask a classmate. Please?)

Assignment Due: Tuesday, October 20

1) Although the collaborative research pages fizzled, please go out to the internet this week and find a reference to two of the following, post your link on the wiki. Be prepared to explain how the data structures your object uses either could or could not benefit from a rewrite with one (or more!) of these structures.

2) Please see the "Worm World" assignment posted below (due 10/16) and complete it for 10/20.

3) There will be a quiz on objects on 10/23, build yourselves a "whaddayaknow" page and influence the content of the quiz.

Assignment Due: Friday, October 16

Elevator:

  1. Code read exercise: assuming things went well in class on 10/9, read through all of the code we have to date and create a comment sheet on (a) what works (b) what needs to be enhanced, (c) recommended enhancements for the next version. Email your summary to Dr. Wolz by Wednesday, midnight, October 14. Contribute your ideas to the Version 1 design page on the wiki.
  2. Based on the recommendations on the wiki, write a design enhancement for your object. Take your class and comment in recommended changes. Post this version on the wiki.

Worm World:

You need to develop background expertise on the Worm World Simulation. Last summer Peter Savitsky started a rough implementation of a solution. The intent was to provide you with starting point. As a class we will enhance this code without starting completely from scratch. For TUESDAY, October 20, read the documents on the wiki page, including the links provided by Dr. Nayak. Be prepared to:

(a) make recommendations for how to extend the existing code

(b) identify the interactions between objects necessary to extend the code.

 

Assignment Due: Friday, October 9

In class we attempted to assemble a first version of the Elevator simulator.

PLEASE POST YOUR MOST RECENT CODE ON THE SIMULATION OBJECTS PAGE -- add it to the table, please don't replace the previous version.

On Friday, you will be asked to report on what your object does and how it successfully interacts at the barest level with the other objects.

Record the following on Verion 0 page:

1) Insert your object at the correct place in the instantiation hierachy. Who instantiates (new) your object(s). Negotiate with the person who will instantiate your object to make sure that makes sense.

2) In the table of call tests (who calls whom), please insert an "X" at each position where your object is called or makes a call, and set up a Processing sketch between those objects that demonstrates that they work. You will have to cooperate in pairs to do this.

3) Make notes on simplifying assumption about version 0. What are we leaving out? (e.g. more than 3 floors, going down, everything works properly....)

Assuming we accomplished that, your COLLECTIVE task is to define the next step. Dr. Wolz will post a page on the wiki for this. Each of you should insert what your object is currently able to do, and what you think it should do for phase two. If you weren't in class and were solely responsible for an object we probably finessed your object for you. Please review what we did, find a couple of classmates whose objects are most directly tied to yours and get yourself up to speed.

Individual assignments: to be submitted to Dr. Wolz via email by Friday 8:00 AM, not posted on the wiki. She will post all of them anonymously after she has received them. Summarize the process we went through in class. In other words answer the following questions:

What did we do as a group?

What exactly did you do?

How did you interact with your classmates?

You've been asked to come to an agreement on what data is being passed between objects. Did this actual implementation help you clarify your thinking on that?

What do you think worked best about this?

What do you think really didn't work?

Explain how you were or were not a full participant in this process.

Explain Dr. Wolz's role in the process today.

Assignment Due: Tuesday, October 6

Finish up whatever record keeping for the wiki you needed to do. In particular, make sure you volunteered to implement an object and post a timeline for completion (with iterative development.) See the class activity for Oct. 2.

Assignment Due: Friday, October 2

As an exercise for YOURSELF. Get a copy of your groups' stick figure exercise and turn it into independent classes that look like the sample stick figures presented in class. Or take Dr. Wolz's and add more Things to it.

Write the data and method declaration for the elevator object you have volunteered to designed. Create a page on the wiki that is your object design. Using pseudo code, identify the:

data types: You may end up making up some objects that you need as data, identify whether the data is public or private -- who needs to have access to it and why. For each public piece of data, locate the objects that will manipulate that data and speak to the designers of those objects regarding what the "shape" the data has. Come to an agreement so that the datatype is the same in both objects. (You may end of collaborating on the design of a new class).

constructors: you may end up building more than one for the convenience of other objects. This will help you identify default values for data.

reporter methods: methods that are invoked by other objects through which your object provides information to others (these methods return a value). Note that you do not define the process now, you just identify the method name parameters and return type.

action methods: these DO something but do not return a value. Again, just define the method name and its parameters, do not write the code for the method. The return type for these is "void".

animation/display methods: these are methods for your object that display information. Since this is a simulation, you need to think about how your object is represented as part of the simulation on the screen. You need to do this concert with objects related to yours.

 

Assignment Due: Tuesday, September 28

More the collaborative assignments forward.

Having negotiated with the designers of objects your object communicates with, outline the data structures you will need for your object. In English. Post this on a wiki page linked from the design document. There is a spot for it in the table.

If you haven't already done so, read and work through the tutorial on "objects" on the Processing site. You might also want to study the abstraction package for the CSC 101 class. Follow up on the third question on the quiz: create a little stick figure as a Class. On Tuesday we will join all of your little people together into one program. Your figure's height and width should be variable so we can play "down the rabbit hole". Please post your class on the wik page for Stick People.

Assignment Due: Friday, September 25

Post your final report for your processing project.

Work on the collaborative research assignments - there is a new one!

Be prepared for the quiz on programming fundamentals.

Be prepared to construct a data flow diagram of all of the objects in the Elevator problem.

Assignment Due: Tuesday, September 22

Be prepared to do the code review on your Processing project.

Work on the collaborative research assignments..

Pick two resources on elevator saftey on the Elevator Resources table on the wiki. And add to the comment regarding that page. (The first person to add a comment should create a separate page for it, copy the original comment, and add theirs.)

In class you should have signed up for an object on the elevator safety page. With whoever else signed up, fill in the table identifying data flow in and out of your object. (WHAT is data flow?)

WHADDAYANO?

Assignment Due: Friday, September 18

Be prepared to do the usability critique on your Processing project.

Work on the collaborative research assignments. #1 should be complete on 9/15, #2 should be in draft form by 9/22.

Locate and read the following article to be prepared for the "Elevator Safety" conversation: http://www.elevator-world.com/magazine/archive01/9605-002.htm

Add one reference to the Elevator Resources table on the wiki. Summarize why this is an interesting/important resource.

Assignment Due: Tuesday, September 15

Be prepared to give an UPDATE of your Processing project. The usability critique will be Friday, 9/18.

Work on the collaborative research assignments. #1 should be complete on 9/15, #2 should be in draft form by 9/18.

Assignment Due: Friday, September 11

1. Complete the tutorials listed below. Give yourself a lot of time to do them. From the Processing "learning" page.

2. Create a sample project as per the directions on the wiki page for Processing warm up.

3. Propose a Processing project that you believe you can complete in one week. Note that this can be an extension of your warm up, but should not be equivalent to your warm up. Use the proposal template as a guide, and follow the instructions on the Processing project wiki page to keep track of your Processing project work.

4. Wiki collaborative journal entry 1 final entry due. Note date change!

5. Scratch project report due and all Scratch work organized.

Assignment Due: Friday, September 4

Wiki collaborative journal entry 1 draft entry due. Note date change!

Assignments Due: Tuesday, September 1

Complete your Scratch project and be prepared to submit it to your classmates' code critique on Tuesday, 9/1.

Assignment Due: Friday, August 28

In lab Tuesday, 8/25, you should have posted your draft Scratch project proposal on the Wiki on the page (see class activities for details). By Friday get two classmates to comment on your proposal. They should put their comments on your <name>Scratch page. Make sure Dr. Wolz comments on your proposal as well. Complete a first draft of your project by Friday and be prepared to have your classmates critique its usability on Friday, 8/28. A guideline for critique will be posted on Friday.

Also in lab on Tuesday 8/25 you should have created links on the wiki page to your favorite Scratch projects on the Scratch site. During the week, on your <name>Scratch page, for each of these projects relink the project and add short paragraphs and state (a) why you found it interesting, (b) what parts of the Scratch code you understand - explain how it works, (c) what part of the Scratch code you do not understand. (Dr. Wolz will demo this in class on 8/25.