Note: If you have a disability that may require an accommodation for taking this course, please contact the Learning Assistance Center (758-5929) within the first two weeks of the semester.
General Course Objective:
Introduction to the basic concepts of computer programming and problem-solving.
Course Descrption (from the Bulletin):
(4h) Lecture and laboratory. Introduction to the basic concepts of computer programming and problem-solving for students with varied background and no prior programming experience. The programming language used and the focus vary by instructor. Topics may include multimedia programming, game programming, graphic animation, and scientific computing. Does not count toward the computer science major or minor.
About this Section:
Computer programming topics:
The computer programming concepts and constructs covered in this section include:
expressions, variables, functions, procedures, arrays, data types, mouse and keyboard events and event handling, conditions (if/else, switch), loops, object-oriented programming (classes, inheritance, encapsulation, polymorphism), sorting and searching algorithms
animation basics, controlling the timing of animation, basic concepts in digital images and audio, frame events (specific for Flash), collision detection, linear perspective in a 3D game
The types of programming examples and assignments are:
Game Programming & Interactive Multimedia Programming
The language used in this section: Flash Actionscript 3.0
Textbook: Yue-Ling Wong, Digital Media Primer, Prentice Hall, 2008. ISBN 10: 0-13-223944-2
- Flash 9 Help menu
- Foundation ActionScript 3.0 with Flash CS3 and Flex, by Sean McSharry, Steve Webster, Todd Yard. Publisher: Friends of ED (2007).
- Foundation ActionScript 3.0 Animation: Making Things Move! by Keith Peters. Publisher: Friends of ED (2007).
- Object-Oriented ActionScript 3.0, by Peter Elst, Sas Jacobs, Todd Yard. Publisher: Friends of ED (2007).
- ActionScript 3.0 for Adobe Flash CS3 Professional Hands-On Training, by Todd Perkins. Publisher: Peachpit Press (2007).
15%: homework exercises, pre-class exercises, and worksheets
35%: quizzes and tests, broken down as follows:
~23%: two 1-hour tests
~12%: weekly 10-min short quizzes
10%: final exam
15%: term project
10%: mini-projects throughout the semester
2%: class participation and paying full attention in class throughout the semester
90.0 or higher: A- to A
80.0 to 89.9: B- to B+
70.0 to 79.9: C- to C+
60.0 to 69.9: D- to D+
below 60.0: F
Attendance: Mandatory. Unexcused absences for lecture or lab will affect the final grade.
Student Learning Outcomes: By the end of the course, the student should be able to:
- identify programming constructs
- identify the different characteristics between bitmap images and vector graphics
- create tweened animation and scripted animation
- write statements to change the movieclip instance's properties (position, size, rotation, and alpha)
- write code to handle mouse and keyboard events
- distinguish between the instance name of a symbol and the symbol name
- determine which timeline you are working on
- predict the message output from a trace() statement in the code, especially within a loop and if-statement
- predict the value of a variable and expression, especially within a loop and if-statement
- write an expression, given an equation or a concept
- determine the appropriate data type for variables
- read and write if-statements, and use logical operators
- write function definitions and make function calls
- organize code using functions, identify code duplication and rewrite the code using custom-defined functions
- create arrays and identify the values of elements in an array, including a multi-dimensional array
- read and write code using for loop, while loop, for..in loop, and do..while loop
- read and write code for looping an array
- read and write nested loops
- write code to swap the values of two variables
- trace the progress of bubble sort, selection sort, and insertion sort for arrays
- write switch statements and write equivalent if-statements
- distinguish the breakpoint controls (Continue, Step Over, Step Out, and Step In) in the Debugger
- distinguish and declare global, local, and timeline variables
- determine when you should use local variables, instead of timeline or global variables, in a function
- use hitTestObject() and hitTestPoint() for collision detection
- write code to model gravity and friction in a game
- write code to model linear perspective in a 3D game
- write code to create arrays (one- and multi-dimensional)
- write expressions using Math.round(), Math.abs(), Math.ceil(), Math.floor(), Math.sqrt(), Math.random()
- write class definitions, given a diagram showing the inheritance relationships, properties, and methods
- write code to instantiate a class to create objects and invoke the class methods for the object
- create a visual representation for instantiated objects
- create subclasses and organize classes using inheritance
- organize class methods using polymorphism
- predict the traced output from the overridden methods (polymorphism)
- use the keyword super to invoke the constructor of the superclass and the superclass's methods
- determine the usage public, protected, private, and static for properties and class methods
- write code for problem-solving: toggle, use of nested loop to tile movieclip instances on a grid, shuffle a deck of cards, snapping to a grid, random timimg
- write code to add and play sound
- write code to add and drag a mask
- write code to control color
- write code to create glow and blur effects using filters
- show conversion between decimal and binary notations (for integers and floating point numbers), and between decimal and hexadecimal notations (for integers)
- do binary addition and multiplication by hand
- tell the dominant color by reading the RGB value in hexadecimal format
- comprehend the concept of how data can be stored in binary format
- trace the progress of linear search and binary search
- debug and troubleshoot code
- identify programming constructs in code written in programming languages (such as C++) other than ActionScript
- plan and code interactive Flash movies/games from scratch
Pandemic Plan: In the events of campus closing due to pandemic flu outbreaks, I will try to email you or call you before the campus closes. After the campus closes:
- If the electronic communications, such as emails and internet, are still available, the lecture and lab will continue through emails and Web.
- The class and lab materials can be downloaded from this course Web site.
- The lab files can be turned in by uploading to Blackboard as usual.
- Homework assignments can be turned in by emailing to me (firstname.lastname@example.org)
- If the electronic communications, such as emails and internet, are NOT available, the lecture and lab will continue through postal mails.
- The class and lab materials will be mailed (weekly or biweekly) to your home address that you gave me at the beginning of the semester.
- The lab files can be turned in by putting them on CD and mailing to my home address.
- Homework assignments can be turned in by mails to my home address.