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

Additional topics:
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).


25%: lab
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
Extra credit:
   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:

  1. identify programming constructs
  2. identify the different characteristics between bitmap images and vector graphics
  3. create tweened animation and scripted animation
  4. write statements to change the movieclip instance's properties (position, size, rotation, and alpha)
  5. write code to handle mouse and keyboard events
  6. distinguish between the instance name of a symbol and the symbol name
  7. determine which timeline you are working on
  8. predict the message output from a trace() statement in the code, especially within a loop and if-statement
  9. predict the value of a variable and expression, especially within a loop and if-statement
  10. write an expression, given an equation or a concept
  11. determine the appropriate data type for variables
  12. read and write if-statements, and use logical operators
  13. write function definitions and make function calls
  14. organize code using functions, identify code duplication and rewrite the code using custom-defined functions
  15. create arrays and identify the values of elements in an array, including a multi-dimensional array
  16. read and write code using for loop, while loop, loop, and do..while loop
  17. read and write code for looping an array
  18. read and write nested loops
  19. write code to swap the values of two variables
  20. trace the progress of bubble sort, selection sort, and insertion sort for arrays
  21. write switch statements and write equivalent if-statements
  22. distinguish the breakpoint controls (Continue, Step Over, Step Out, and Step In) in the Debugger
  23. distinguish and declare global, local, and timeline variables
  24. determine when you should use local variables, instead of timeline or global variables, in a function
  25. use hitTestObject() and hitTestPoint() for collision detection
  26. write code to model gravity and friction in a game
  27. write code to model linear perspective in a 3D game
  28. write code to create arrays (one- and multi-dimensional)
  29. write expressions using Math.round(), Math.abs(), Math.ceil(), Math.floor(), Math.sqrt(), Math.random()
  30. write class definitions, given a diagram showing the inheritance relationships, properties, and methods
  31. write code to instantiate a class to create objects and invoke the class methods for the object
  32. create a visual representation for instantiated objects
  33. create subclasses and organize classes using inheritance
  34. organize class methods using polymorphism
  35. predict the traced output from the overridden methods (polymorphism)
  36. use the keyword super to invoke the constructor of the superclass and the superclass's methods
  37. determine the usage public, protected, private, and static for properties and class methods
  38. 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
  39. write code to add and play sound
  40. write code to add and drag a mask
  41. write code to control color
  42. write code to create glow and blur effects using filters
  43. show conversion between decimal and binary notations (for integers and floating point numbers), and between decimal and hexadecimal notations (for integers)
  44. do binary addition and multiplication by hand
  45. tell the dominant color by reading the RGB value in hexadecimal format
  46. comprehend the concept of how data can be stored in binary format
  47. trace the progress of linear search and binary search
  48. debug and troubleshoot code
  49. identify programming constructs in code written in programming languages (such as C++) other than ActionScript
  50. 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 (
  • 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.