Syllabus

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

Approach/Focus:
The types of programming examples and assignments are:
Game Programming & Interactive Multimedia Programming

Language:
The language used in this section: Flash Actionscript 1.0 - 3.0

Format of this Section:
The format of classroom activities take the form of a traditional lecture and a new workshop format.

Textbook: No required textbooks

References:

  • Digital Media Primer, Chapters 8-11. By Yue-Ling Wong.
  • 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).

Evaluation:

10%: final exam
35%: quizzes and tests, broken down as follows:
          ~23%: two 1-hour tests
          ~12%: weekly 10-min short quizzes
15%: homework exercises and worksheets
15%: term project and oral presentation
25%: lab

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. distinguish 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, for..in 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 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 for simple distance-based collision detection
  27. write code to model gravity and friction in a game
  28. write code to model linear perspective in a 3D game
  29. write code to create arrays (one- and multi-dimensional) using the keyword var and specifying data type
  30. write expressions using Math.round(), Math.abs(), Math.ceil(), Math.floor(), Math.sqrt(), Math.random()
  31. write class definitions, given a diagram showing the inheritance relationships, properties, and methods
  32. write code to instantiate a class to create objects and invoke the class methods for the object
  33. create a visual representation for instantiated objects
  34. organize classes using inheritance
  35. organize class methods using polymorphism
  36. predict the traced output from the overridden methods (polymorphism)
  37. use the keyword super to invoke the constructor of the superclass and the superclass's methods
  38. determine using public, protected, private, and static for properties and class methods
  39. 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, nested movieclips
  40. write code to add and play sound
  41. write code to add and drag a mask
  42. show conversion between decimal and binary notations, and between decimal and hexadecimal notations
  43. trace the progress of linear search and binary search
  44. debug and troubleshoot code
  45. identify programming constructs in code written in programming languages (such as C++) other than ActionScript
  46. 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 (ylwong@wfu.edu)
       
  • 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.