Spring 2007 CSC 108
Introduction to Programming
Dr. Yue-Ling Wong

Tentative Timetable (will be updated frequently; check often!)
Last Updated: May 4, 2007

W 01-17


  Lab 01 Flash workspace, drawing tools

1. PPT
2 . sample completed files

F 01-19 vector graphics vs. bitmap images, symbol types, master copy vs. instance, naming movieclip instances  
M 01-22

symbols in Flash (cont'd)

basic animation concepts: keyframes, frame-by-frame, tweening

W 01-24

animation: frame rate, mask, motion guide

(part of the lecture will be combined with the lab)

10-min quiz #1 on materials covered in lectures: Jan. 19 and Jan. 22
  Lab 02 Animation Basics: onion skin, insert/remove frames/keyframes, frame-by-frame animation, shape tween, motion tween, mask  
F 01-26 overview of programming concepts and constructs (part 1)  
M 01-29

overview of programming concepts and constructs (part 2)

Homework #1 due in class
W 01-31

event handlers (part 1)

where do scripts go

10-min quiz #2 on materials covered in lectures: Jan. 26 and Jan. 29
  Lab 03 use of trace( ), learn to read syntax error report, locate and fix syntax errors, identify pairing curly braces and parentheses, variables vs. string literals  
F 02-02

event handlers (part 2)

controlling movieclip instances' properties

M 02-05

collision detection (built-in hitTest( ) method)

upload Homework #2 before class
(use the Assignments link, not Dropbox)
W 02-07

controlling the playhead (gotoAndPlay( ), gotoAndStop( ))

working with text in Flash

(the lecture will be combined with the lab)

10-min quiz No quiz this week; replaced by Homework #3
  Lab 04

Part A: Program a Pong game: custom-define function, calling a function, mouse event handler method, frame event handler method, if/else, logical operator, hitTest( ), dynamic text

Part B: Interactive hairstyle customization: controlling the playhead using gotoAndStop( ) and stop( )

F 02-09


M 02-12

drawing API in Flash (script to draw lines, fill shapes dynamically at runtime)

while-loop and for-loop

upload Homework #4 before class
(use the Assignments link, not Dropbox)
W 02-14

for-loop (cont'd)

3d basics

10-min quiz #3 on arrays and loops
  Lab 05

Part A: Program a tic-tac-toe game: use of 2-dimensional array, custom-define functions, parameter passing, problem-solving

Part B: Program a 3d real-time rotating stick figure: use of 3-dimensional arrays and for-loops

F 02-16 more on loops: for..in, do..while, nested loops  
M 02-19 Recap on Lab05: common questions/problems, returning a value, parameter passing, solutions to extra credit  
T 02-20 Review session (voluntary) 6:00pm, same classroom (Manc 241)
W 02-21



Last day to drop classes

F 02-23


sorting algorithm: selection sort

M 02-26

sorting algorithms: bubble sort, insertion sort

W 02-28

Basic math for depicting 3d linear perspective,
and translate them into code for Lab06

10-min quiz #4 on 3 sorting algorithms
  Lab 06 Program a 3d drive-through fly-through (Part 1): keyboard events, if-statements, for-loop, basic math for 3d linear perspective, abstraction  
F 03-02

Lab06 (Part 2):
Wrapping, modeling gravity and friction, swapDepths( )
Bring ThinkPad

don't need to upload your Lab06 (Part 1) file but have it ready before class, so you can finish the file by end of the Fri class
M 03-05

Lab06 follow-up



planning and starting a platform game (HW07)

upload Homework #5 and #6 before class
W 03-07

about the final project

(the lecture will be combined with the lab)

10-min quiz No quiz this week; replaced by Homework #7 (DUE 12:00 noon)

  Lab 07 Program a continuous scrolling platform game: keyboard events, if/else, modeling gravity, collision detection, problem-solving (continuous scrolling and making the items reappear) Pre-lab required (from Homework assigned on Mar. 5)
F 03-09

Lab07 follow-up

more on programming concepts and constructs: switch statement


M 03-12 Spring Break week
W 03-14
F 03-16
M 03-19

data types

more on programming concepts and constructs: scope of variables (global, local, and timeline)

sign up a time for the FIRST meeting about your project (to decide on a project idea)
W 03-21

Lab07 follow-up (about organizing code using functions)

debugger (cont'd from March 9)

collision detection (simple distance-based)

10-min quiz #5 on switch statement, data types, and scope of variables

Turn in Homework #8 in class

  Lab 08

Part 1: data types, scope of variables, reduce code duplication using functions

Part 2: simple distance-based collision detection

F 03-23

intro to OOP, objects, classes

sign up a time for the SECOND meeting about your project (to discuss your plan for programming your project)
M 03-26


Upload Homework #9 before class
W 03-28

giving an instantiated object a visual representation

attachMovie() and duplicateMovieClip()

  Lab 09

Part 1. OOP Pong

Part 2. Inheritance

Thu 03-29 Review session (voluntary) 6:00pm, same classroom (Manc 241)
F 03-30


  TEST #2
M 04-02


access specifiers

OOP review

W 04-04

Using Listener to capture key up and key down

an access specifier: static

naming conventions, commenting, coding style

10-min quiz
  Lab 10

Start working on your project, based on what we have discussed in our second individual meeting (April 3rd or 4th). Everyone must create at least one class (must be related to your project), instantiate one or more objects from the class, give the instantiated object visual representation, write class method(s) and invoke the method(s) to make the object move on stage.

This lab is due Thu.

tentative description  
F 04-06 Good Friday Observance Holiday
M 04-09





problem-solving: examples:

  • toggle
  • randomization:
    • shuffle a deck of cards
    • generate random timing
    • generate a random number that is within a range of numbers, but except one or more numbers in the range
W 04-11

problem-solving: examples:

  • tile movieclip instances on a grid
  • nested movieclips
  • snapping
  • hitTest( ) and getDepth( ) to detect the collision of movieclip instance in front

how not to hard-code _root.itemName in your class file

first version of your project DUE on April 12 (Thu)
  Lab 11

Write short programs:

Program #1: toggle

Program #2: shuffle a list of items, such as a deck of cards

Program #3: randomize timing using getTimer(): turtle and bunny race

Program #4: generate a random integer that is different from the current one

Program #5: use nested loop to tile movieclip instances on a grid

F 04-13

controlling audio playback using Actionscript

startDrag( ) and stopDrag( )

controlling masks using Actionscript

a refresher on Actionscript

M 04-16 Lab 12:
Program #1: audio
Program #2: draggable mask

About Test #3 (April 18)

T 04-17 Review session (voluntary) 8:30pm, same classroom (Manc 241)
W 04-18 TEST #3   TEST #3
  Lab 12

continue Lab 12 from Monday if you have not finished

F 04-20

binary notation, binary-decimal conversion, representation of information on computers

M 04-23

binary notation of fractions

searching algorithms: linear search, binary search

W 04-25

apply programming concepts in other programming languages

10-min quiz #6

DUE: final version of your project due at 11:55PM

  Lab 13 apply programming concepts in other programming languages: Program an ASCII art animation in C++ PPT Pre-lab: have Microsoft Visual C++ 2005 Express Edition installed on your Thinkpad before lab
F 04-27 Lab14 (Program #1): apply programming concepts in other programming languages: a tic-tac-toe game in C++  
M 04-30

teaching eval.

Lab14 (Program #2): a battleship game in C++

W 05-02

creating graphics and interactive graphics using C++ and openGL

last-minute questions, about the final exam

last day of class
    finish up Lab14    
M 05-07

Review session (voluntary) 7:00pm

Room: Manc 241

T 05-08

Final Exam (alternate session) 2:00pm

Room: Manc 241

W 05-09

Final Exam 9:00am

Room: Manc 241

About final exam
Copyright © Dr.Yue-Ling Wong, Wake Forest University.