emblem

APPM 1710 - Tools and Methods for Engineering Computing

(Fall 2011)

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  70% 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  15% 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 (August 22 – December 9)

Flash

Projects in bold are required and will be worked in class. Projects in italics are optional or will be assigned as homework.

 Week 1: M, 8/22; W, 8/24  Flash Interface. (Bug 1 - 2)  Flash Interface. (Bug 2)
 Week 2: M, 8/29 W, 9/31  AS Data Types (Command-line Tip adder)

AS and Components--Interface Tip adder
 Math and Selection (Fahrenheit / Celsius)
 Week 3: M, 9/5; W, 9/7  Labor Day - No class  Repetition, Timers, and Matrices

Selection and Arrays   - Fortune Teller
 Week 4: M, 9/12; W, 9/14  Functions, String, RegEx

Quote Me: Aphorisms


XML Hanging Words Game

  OO Programming

 House Energy

 Week 5: M, 19/; W, 9/21   Air Raid

 Associated Classes

 Publishing Using Javascript, HTML, and CSS


  Air Raid

 Bitmaps and the Baskets Application

 Drag and Drop

Java

 Week 6: M, 9/26; W, 9/28   Java: Scratch, NetBeans, Applets, Console  Applet Drawing
 Week 7: M, 10/3; W, 10/5   Java: Selection, Reference Types  Java: Repetition and Arrays
 Week 8: M, 10/10; W, 10/12  Tip Adder Application with NetBeans GUI Builder; Fortune Teller Applet with the NetBeans GUI Builder  Repetition Statements and Exception Handling;

Guess Numbers
 Week 9: M, 10/17; W, 10/19  Object-Oriented Programming; Applets, Applications, and Deployment  Animation Works

MATLAB

 Week 10: M, 10/24; W, 10/26  Intro to MATLAB - 0100  Fundamentals of Math in MATLAB - 0200
 Week 11: M, 10/31; W, 11/2  Vectors and Arrays with MATLAB - 0300   Vector and Matrix Manipulations - 0400;

Programming with MATLAB - 0500
 Week 12: M, 11/7; W, 11/9   Matrices and Various Operations - 0600   Plotting, Statistics, and Functions - 0700
 Week 13: M, 11/14; W, 11/16   Solving Symbolic Equations - 0800   Intro to EXCEL

Excel

 Week 14: M, 11/28; W, 11/30  Excel: JW 5- 9  Excel: JW 9 - 11
 Week 15: M, 12/5; W, 12/7  Excel JW 11 - 18

Final Project Description
 Final Projects

Flash

Flash

Flash Interface. (Bug 1 - 2) Flash Interface. (Bug 2)
AS Data Types (Cmd-line Tip adder) AS and Components--Interface Tip adder
Selection and Math (Fahrenheit / Celsius)

Arrays and Switch - Fortune Teller
Repetition - Timed Matrix

Quote Me: Aphorisms
Functions and String

Object Oriented Programming
House Energy

Associated Classes

Orbits
Orbits--Inheritance

Associated Classes

House Energy--Optional
Air Raid

Treasure Quest

Flash Introductory Topics 1

Flash Introductory Topics 2

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.

Functions, String, RegEx

         

Quote Me: Aphorisms

          View the application.

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.



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.

Orbits

          Orbits 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

Java: Scratch, NetBeans, Applets, Console Applet Drawing
Tip Adder Application with NetBeans Random, Selection, JApplet with NetBeans
 Guess Numbers

Arrays and Fortune Teller


Repetition Statements and Exception Handling

Object-Oriented Programming
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

Repetition Statements and Exception Handling

Arrays and Fortune Teller

Guess Numbers

Object-Oriented Programming

Applets, Applications, and Deployment

Animation Works

MATLAB

MATLAB

  Java: Animation Works   Intro 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 Symbolic Equations - 0800   Intro to EXCEL

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

Other Excel labs might be added.

MATLAB

  Intro to Excel 0100   Graphics and Excel- 0200
  Excel 0300/Workday   Presentations

Basics of Excel - 0100

Graphics and Excel - 0200

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.