emblem

Programming & Simulation Development 1

(Spring 2011) (Also advertised as Intro to Game Dev I)

Course Info

Lecturer: John Flynt

email: john.flynt@colorado.edu

Course Information

Office and Course Days and Hours

Fridays are reserved for scheduled appointments.

Class location, days, and hours: ECCR 143, M W, 3:00 - 4:40
Office location, days, and hours: ECOT 242, M W, 2:00 - 2:50

Topics, Policies, Grades

All the equipment you need is provided in the classroom. The applications and languages we deal with are as follows:

The university provides a solid set of policies regarding the conduct of classes. If you have any concerns at all that fall into this area, please stop by after class or during office hours.

Accessing ECCR 143

Note that if your card is to work for accessing ECCR 143, then you must go to a link provided by ITS and register. Use the following procedure:

  1. Go to Link to ITS (http://www.colorado.edu/its/labs/labaccess.html) to submit a request.
  2. Select ECCR 143 from the list.
  3. Complete the other fields as directed.
  4. When answering the question, "Is there any additional information regarding this request?" type APPM 1710, MW, ECCR 143.

Grades

To complete this class successfully, daily attendance is recommended, along with completion of each of the labs and the worksheets that accompany the labs. Most of the labs will be written and published as PDF files, so you can work them on your own. It is suggested that you work during class and for a few hours outside of class each week. You will have to make arrangements to work in the lab during outside hours. Generally, any lab in the engineering school will provide PCs that have the same configuration as those in ECCR 143. Hours during which the lab is open are posted.

 Area  Percent  Description
 Projects  75% There are quite a few assignments for the course. These consist of three types of project:
  • (80% of the project grade.) Programming projects. Whether Flash, Java, MATLAB, or Excel, your work centers on completing programs.
  • (20% of the project grade.) Quizzes - Worksheets. These can always be completed outside of class, but in many instances, you will find it convenient to complete them as you listen to lectures. They might also be essays that you are asked to write.
 Class Participation  15% Attendance is required. Your participation involves being in class, working on the labs, and showing interest in the topics. Many situations arise in which your expertise on a given topic might prove helpful to others, and on such occasions, you will be called upon to help out. Helping out might involve helping someone else complete at task or taking a few minutes to talk about something you have done are are doing.
 Final Project  10% The course requires a final project. The final project can be from any of the areas of programming we study. The final project includes the following components:
  • A specification for the project, which includes concept, programming, math, and art. It is strongly suggested that you base this project on one of the projects completed during the course. In few cases will a specification that does not involve morphing a project receive approval. The primary reason for this is that the course imposes tight time restraints.
  • The project itself, which consists of the source files, the executable, and assets.

Due Date Policies. All work is due the week after it is listed in the schedule for the course. Work will be collected on Wednesdays. This means that you have nine days to finish work begun on a Monday and exactly a week to finish work begun on a Wednesday. In some cases, if I think it important to do so, I will alter the schedule somewhat, slowing down for a day or two. On the other hand, I will try to preserve the schedule and do all that is scheduled. In this respect, some weeks you might do only one lab, while the next, things will be concentrated a bit, and you might do an extra lab. Whatever the change, however, every attempt will be made to keep things at an even pace so you can plan your work, and the policy of collecting work the week after it is assigned will be maintained.

No late work will be accepted without the appropriate documentation showing an excused absence, such as a medical, family, or university-related and sponsored activity.

As a general rule, assignments will not be accepted through email.

All work initiated during the final week is due by the last day of the course, which falls on December 1.

If there are any variations to these policies, they will be announced in class and will apply to everyone equally. Please do not request exceptions, and plan to work steadily to get the work done on time. As a standard policy, all late work will be assigned a 0. If you do not turn in a worksheet, for example, but turn in the lab, then figure that a 0 will be averaged into the two grades according to the percentages given. Absence of the worksheet, then, given perfect completion of the lab project, would drop your grade from 100 to 80.

The College of Engineering maintains a code of ethics, and it is expected that you will abide by this code when you take this class. I do not discourage people from working in pairs or groups, but I caution you not to turn in work another person has completed or to allow others to turn in work you have completed. This hurts everyone, since learning is something that takes place as one of those wonderful outcomes of life that is a combination of strong individualized and cooperative efforts. Do your part and encourage others do the same; be helpful; teach whenever you can; don't be afraid, ever, to ask for or offer help; work together to get the best from the experience.


Textbooks

Some people might be able to complete the class without using textbooks. I have not made any assignments directly dependent on the books. However, if you are a beginning programmer, purchase of the textbooks is helpful, especially with respect to MATLAB. In such cases, I will do what I can to make the questions available in pdf files, but it remains that some questions will refer to passages in the texts, and being able to review them will be extremely helpful.

Generally, I don't recommend trying to get through the course without the books if you are not already confident about using the web to obtain information on programming languages and programming problems. Also, if you have any interest in using Flash, MATLAB, Java, or Excel over your academic or professional career, then I suggest building some type of library. The books in this course will be good investments in that respect. The topics we are dealing with will remain stable for some years to come. The tools, in any event, have now been around for twenty or so years each, and during that time, the features have stabilized.

An effort is made to make the labs fairly self-contained, but this is very difficult given a course with as many topics as this one presents. The labs will be available to you in PDF files. Save them as you go to make yourself a textbook for the course. Recognize, however, that it is extremely difficult to make labs completely self-contained, and I will probably end up making references to the textbooks.

By the way, with the exception of the MATLAB book, these are all soft-cover mass market books, so the prices are far less than what they would be if we used regular textbooks, which increasingly cost between $100 and $200 dollars. These are all in the $30 - $50 range, and you are likely to be able to find used copies.

Shupe and Rosser. Learning ActionScript 3.0: A Beginner’s Guide. The Shupe book (Flash) is especially helpful for those who are completely new to programming and is the best introduction I know to ActionScript. It is not a good introduction to Flash from the "artistic" perspective.

Deitel and Deitel, Java : How to Program, Eighth Edition. The Deitel book has been around for a long time and is a standard reference for Java.

John Walkenbach, Excel 2007 Power Programming with VBA, Wiley, 2007. Note that this is not the same book you will find in the bookstore at the start of the term. The book I ordered for Excel, unfortunately, is not very good other than as a general introduction to how to write a few scripts in Excel. For this reason, I don't suggest buying it at all. I will order the alternative, by John Walkenbach, and this will be at the bookstore, I hope, by the time we get to Excel later in the semester.

William J. Palm, Introduction to MATLAB 7 for Engineers, McGraw-Hill, 2005. The Palm book is one that you will see again in labs for differential equations, linear algebra, and other such courses, including those that concern topics specific to different areas of engineering. I it is a very good book, used by Adam Norris (in the Department of Applied Mathematics) and others who teach the advanced courses. This course provides an introduction to MATLAP that, it is hoped, will make it more rewarding when you employ it in bother the more advanced courses and in general engineering contexts. People often run into problems in the more advanced contexts because of simple things, such as losing their work due to questionable work management procedures. With luck, exposure to the topics offered in the context of this course will eliminate such difficulties.

Resource Documents and Links

For now, the books I can offer are largely centered on Flash since this course started as a course exclusively on Flash. I will add to the resource list as we go, however, concentrating on MATLAB, Excel, and Java.

Projects by Students

In the past, I have had student publish their material to the web, but this term, only those projects that lend themselves to this activity will be published in this way. However, I will require that everyone submit a specification that can be displayed on the web. This will be used during the final presentation.

Projects representing work that draws from topics presented in this course can be accessed on a separate page.

Weekly Labs, Worksheets, Resources, and Other Assets

Labs and other material are posted on this site as the course progresses. The assignments for each day appear the day the assignment is announced and reviewed in class.

Most of the lectures require you to access the class web site, so when you show up for class, access your browser and then the class web page. The components for the class are as follows:

Schedule

This schedule represents a tentative set of activities. However, the general structure of the class will remain as shown in terms of the number of weeks dedicated to each topic. Specific assignments will be adjusted as the course progresses.

Weekly Projects (January 10 – April 29)

Flash

 Week 1: M, 1/10; W, 1/12 Flash Interface. (Bug 1 - 2) Flash Interface. (Bug 2)
 Week 2: M, 1/17 W, 1/19  Martin Luther King Day - No class Show Me
 Week 3: M, 1/24; W, 1/26 AS Data Types (Cmd-line Tip adder) AS and Components--Interface Tip adder
 Week 4: M, 1/31; W, 2/2 Selection and Math (Fahrenheit / Celsius)

Arrays and Switch- Fortune Teller
Repetition - Timed Matrix

Quote Me: Aphorisms
 Week 5: M, 2/7; W, 2/9 Functions and Strings Object Oriented Programming
 Week 6: M, 2/14; W, 2/16 Associated Classes

Orbits--Inheritance

House Energy--Optional
Start Java.

Java

 Week 6: M, 2/14; W, 2/16 End Flash Java: Scratch, NetBeans, Applets, Console
 Week 7: M, M, 2/21; W, 2/23 Applet Drawing Tip Adder Application with NetBeans
 Week 8: M, 2/28; W, 3/2 Random, Selection, and HighRoller

Guess Numbers
Repetition Statements and Exception Handling

Object-Oriented Programming
 Week 9: M, 3/7; W, 3/9 Applets, Applications, and Deployment Animation Works

JAVA AND GAMES

 Week 10: M, 3/15; W, 3/17 Animation Works Bouncing Ball
 Week 11: M, 3/22; W, 3/24   Spring Break  Spring Break
 Week 12: M, 3/27; W, 3/30  AirRaid  AirRaid
 Week 13: M, 4/4; W, 4/6  AirRaid   Intro to Excel 0100

Excel/Matlab/Game

 Week 14: M, 4/11; W, 4/13   Graphics and Excel- 0200   Excel 0300/Workday
 Week 15: M, 4/18; W, 4/20   Matlab/Workday/Platform Game   Matlab/Workday/Platform Game
 Week 16: M, 4/25; W, 4/27   Matylab/Workday/Platform Game   Presentations

Flash

Flash

 Week 1: M, 1/10; W, 1/12 Flash Interface. (Bug 1 - 2) Flash Interface. (Bug 2)
 Week 2: M, 1/17 W, 1/19  Martin Luther King Day - No class Show Me
 Week 3: M, 1/24; W, 1/26 AS Data Types (Cmd-line Tip adder) AS and Components--Interface Tip adder
 Week 4: M, 1/31; W, 2/2 Selection and Math (Fahrenheit / Celsius)

Arrays and Switch - Fortune Teller
Repetition - Timed Matrix

Quote Me: Aphorisms
 Week 5: M, 2/7; W, 2/9 Functions and String

Object Oriented Programming
House Energy

Associated Classes

Orbits
 Week 6: M, 2/14; W, 2/16 Orbits--Inheritance

Associated Classes

House Energy--Optional
Air Raid

Treasure Quest

Start Java.

Flash Introductory Topics 1

Flash Introductory Topics 2

Show Me

ActionScript Language Features - Data Types

         

ActionScript and Components

          View the Test application.

Selection And Math - Fahrenheit/Celsius

          View the Temperature application.

Selection And Arrays - Fortune Teller

          View the Fortune Teller application.

Repetition with Arrays and Timers - Timed Matrix

          View Materials and Time Application.

Quote Me: Aphorisms

          View the application.

Functions and Strings

         

XML Hanging Words Game

This lab allows to you load XML data to be used in a game scenario.

          Try the Hanging Words game.

Object-Oriented Programming - RopeWalker

          View the application.

House Energy Conservation - Save It

          View the House Energy application.



Orbits

          Orbits Application



Using Associated Classes - Documents and Symbols

Baskets and Bitmaps

          Try the application.

Air Raid

This lab involves three parts and incorporates four different classes. It is one of the larger challenges of of the term.

          Try the application.

Treasure Quest

This lab involves three parts and two main classes. It is one of the larger challenges of of the term.

          Try the application.

Publishing a Flash Project to the Web

This lab allows you to create an HTML page for your application. The instructor will provide detailed instructions about how to name the files and folders in which you save your project. You must provide your *.fla file along with the other files needed for web display.

          Sample of Published SWF.

Java

Java

 Week 6: M, 2/14; W, 2/16 End Flash Java: Scratch, NetBeans, Applets, Console
 Week 7: M, M, 2/21; W, 2/23 Applet Drawing Tip Adder Application with NetBeans
 Week 8: M, 2/28; W, 3/2 Random, Selection, JApplet with NetBeans

Guess Numbers
Arrays and Fortune Teller; Repetition Statements and Exception Handling

Object-Oriented Programming
 Week 9: M, 3/7; W, 3/9 Applets, Applications, and Deployment Animation Works

Java Introductory Topics 1

Applet Drawing

Tip Adder Application with NetBeans GUI Builder

Random Numbers, Compostion, Selection and NetBeans GUI Builder for JApplets

Arrays and Fortune Teller; Repetition Statements and Exception Handling

Guess Numbers

Object-Oriented Programming

Applets, Applications, and Deployment

Animation Works

MATLAB

MATLAB

 Week --: M, --4; W, --   Intro to MATLAB - 0100  Fundamentals of Math in MATLAB - 0200;

Vectors and Arrays with MATLAB - 0300
 Week --: M, --4; W, --   Vector and Matrix Manipulations - 0400;

Programming with MATLAB - 0500
  Matrices and Various Operations - 0600;
 Week --: M, --4; W, --   Plotting, Statistics, and Functions - 0700   Solving Symbolic Equations - 0800

Introduction to MATLAB - 0100

Fundamentals of Math in MATLAB - 0200

Vectors and Arrays with MATLAB - 0300

Vector and Matrix Manipulations - 0400

Programming with MATLAB - 0500

Matrices and Various Operations - 0600

Plotting, Statistics, and Functions - 0700

Solving The Symbolic Equations - 0800

Excel

Excel labs to be added.

Excel

 Week --: M, --4; W, --   Intro to Excel 0100   Graphics and Excel- 0200
 Week --: M, --4; W, --   Excel 0300/Workday   Excel 0400/Workday
 Week --: M, --4; W, --   Excel 0500/Workday   Presentations

Basics of Excel - 0100

Graphics and Excel - 0200

Cell Programming Logic and Math - 0300

Final Project

There is more to be added, and the material presented will be revised. Do not use this material until told to do so in class.

Final Project Description

Publishing a Flash Project to the Web

This lab allows you to create an HTML page for your application. The instructor will provide detailed instructions about how to name the files and folders in which you save your project. You must provide your *.fla file along with the other files needed for web display.

          Sample of Published SWF.