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 3.0

Textbook: Yue-Ling Wong, Digital Media Primer, Prentice Hall, 2008. ISBN 10: 0-13-223944-2 (Reserved at ZSR Library under this course CSC 108A)

References:

  • Flash 10 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:

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:
   up to 10%: mini-projects throughout the semester
   up to 2%: class participation and paying full attention in class throughout the semester

A-: 90.0-93.9          A: 94.0-100.0
B-: 80.0-83.9          B: 84.0-87.9           B+: 88.0-89.9
C-: 70.0-73.9          C: 74.0-77.9           C+: 78.0-79.9
D-: 60.0-63.9          D: 64.0-67.9           D+: 68.0-69.9
F: below 60.0

Attendance: Mandatory. Non-excused absences for lecture or lab will affect the final grade.

Student Learning Outcomes:
In this couse, the student will have lecture and practice exercises for the following aspects of computer programming.

  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, 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 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 and declare global, local, and timeline variables
  23. determine when you should use local variables, instead of timeline or global variables, in a function
  24. use hitTestObject() and hitTestPoint() for collision detection
  25. write code to model gravity and friction in a game
  26. write code to model linear perspective in a 3D game
  27. write code to create arrays (one- and multi-dimensional)
  28. write expressions using Math.round(), Math.abs(), Math.ceil(), Math.floor(), Math.sqrt(), Math.random()
  29. write class definitions, given a diagram showing the inheritance relationships, properties, and methods
  30. write code to instantiate a class to create objects and invoke the class methods for the object
  31. create a visual representation for instantiated objects
  32. create subclasses and organize classes using inheritance
  33. organize class methods using polymorphism
  34. predict the traced output from the overridden methods (polymorphism)
  35. use the keyword super to invoke the constructor of the superclass and the superclass's methods
  36. determine the usage public, protected, private, and static for properties and class methods
  37. 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
  38. write code to add and play sound
  39. write code to add and drag a mask
  40. write code to control color
  41. write code to create glow and blur effects using filters
  42. show conversion between decimal and binary notations (for integers and floating point numbers), and between decimal and hexadecimal notations (for integers)
  43. do binary addition and multiplication by hand
  44. tell the dominant color by reading the RGB value in hexadecimal format
  45. comprehend the concept of how data can be stored in binary format
  46. trace the progress of linear search and binary search
  47. debug and troubleshoot code
  48. identify programming constructs in code written in programming languages (such as C++) other than ActionScript
  49. 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.