COMSC 101 Problem Solving and Object Oriented Programming

This is the first course in the required Computer Science major/minor sequence. By the end of this course, you will approach problems analytically and have basic proficiency with object-oriented programming (OOP) languages. We will start the course off programming Flash apps using ActionScript 3.0, then continue with Java.

Why Flash and ActionScript as opposed to just Java? Computer science is a fun field, and I believe that programming should be exciting and engaging! I want you to be creating GUIs (Graphical User Interfaces), animations and interactive projects that you can show your friends from your web site. Learning graphics in Java can be a little cumbersome to start off with, so I have chosen Adobe's Flash application and ActionScript 3.0 to get you started right away with fun and exciting graphics!

CS 101 Flash apps


  • Analytical approach to problem solving
  • Abstraction and program design
  • Basic programming skills (in both languages: AS3 and Java)
    • Variables
    • Functions
    • Scope
    • Conditionals
    • Loops
  • Object-oriented programming (OOP)
    • Usage of pre-defined classes
    • Instance properties and methods
    • Design of simple classes
    • Inheritance (time-permitting)

Course Requirements

  • Weekly assignments (mixture of programming and worksheets)
  • Weekly labs
  • One in-class exam
  • Final programming project
  • Final exam


  • Assignments, labs and class participation: 60%
  • codecademy, problets: 5%
  • Exams: 20%
  • Final project: 15%

For the final grade, you have the option to choose one out of the 9 or so homeworks - presumably the one with the lowest grade - which will be dropped from the final average computation. However, you can only choose to drop a homework for which you did the work. If you miss a homework, you get 0 points on it (and that will count towards the final average).

General Grading Guidelines

  1. Programming assignments will generally be given out on Tuesday, due Thursday the following week at 11:59pm.
  2. Many of your assignments, labs and problems will be web-published -- their submission will simply require you to place your final files online by the deadline.
  3. All other assignments, labs and problems should be turned in as a hardcopy to me or electronically using your moodle dropbox. Do not email me with attachments of code!
  4. You must have comments in your code! Poor commenting will result in an automatic deduction of 10%.
  5. Once we have seen automatic documentation (e.g., javadoc), you must be sure the documentation has been created and is available. Lack of documentation will result in an automatic deduction of 10%.
  6. Your program must compile! Non-compiling code will result in an automatic deduction of 25%.
  7. It is better to submit a program that works but does not satisfy all required behavior than a program that attempted to do everything, but does not run!
  8. Throughout the semester, I will occasionally add BONUS parts to your homework assignments. Doing them will help you accumulate BONUS points, which I will use for your final grade as follows:
  • In case you are on the borderline between two grades
  • To make up for exceptional situations when your performance was low (illness or other documented cases like this).
  • To differentiate EXCEPTIONAL (A level) performance from VERY GOOD one (A- level).
  • Bonuses can be submitted up to one week after the associated assignment is due; please send an email to the instructors if you submit a bonus after the assignment deadline.

To summarize: A and A- level work means quality programs which run, do what they are supposed to do, are well designed and documented and submitted on time.

Honor code

REMINDER: WE ARE UNDER THE HONOR CODE! While I encourage you to:

  • Talk to your class mates about the lab and homework
  • Organize study groups
  • Consult other books or the internet for inspiration and clarifications
  • Ask the lab instructor or TA to help you find bugs in your code

I also have to remind you that:

  • All the work that you submit must be yours: it is against the honor code to have somebody else do the assignment for you (including TAs or tutors) or to copy an assignment or portion of an assignment from somewhere else (including books or the internet).
  • You MUST acknowledge classmates or TAs that you worked with for each assignment -- this should be done in a comment at the top of your main source code file.
  • I understand that a great way to learn about new technology is by adapting code snippets found online; however, this enters very sensitive territory. For most of the assignments, you should not be adapting code you've found online. However, there will be some cases where this is appropriate (e.g., when using Flash or Java libraries we have not explicitly seen). Any code that you have adapted MUST be properly referenced (e.g., give the URL of the site you obtained the original from)! I expect to see comments where you have modified the original code. If you are at all unsure about what is acceptable, you must contact me immediately!

Lateness Policy

You have 4 "free" late days to use throughout the semester. These may not be applied to the final project!

When you are ready to use the day, send an email to myself and the lab instructor before the posted deadline that includes:

  1. the number of late days being used for the submission
  2. the number of late days you have remaining

If you do not email us prior to the posted deadline, but want late days applied to your assignment, 10 points will be deducted from your submission's grade.

You may earn late days for your late day "bank" by turning in an assignment 2 days (48 hours) early. 2 days early = 1 late day earned. No partial late days earned for submitting 24 hours early.

If you do not use all your late days, each unused day (max of 4) will transform into an extra 1/8 point (i.e., up to .5) on your final average!

Access, equipment and software

  • You will be given
    • An account on the Computer Science network, which is different from the MHC network
    • Access to the Kendade 307 lab, which is equipped with Macs on the Computer Science network
  • If you wish to work on a computer not in the lab (e.g., your personal computer or a LITS machine), you are responsible for transferring your files to the CS network for submission or when asking for debugging assistance.
  • Flash CS6 is commercial software
    • It is available on all LITS machines on campus
    • If you would like to work on your personal computer, you may download a free 30 day trial of Flash Professional CC from Adobe.com or purchase an individual educational license. Note that the 30 day trial will not cover the amount of the semester that we will be using Flash, so you should think carefully about when you want to start your trial.
  • If you use the CC version to do your projects, you must be sure to save as a CS6 file!


There is no required text for the class.

I recommend that you use following reference texts:

  • Adobe Flash CS5 Professional Classroom in a Book (on reserve)
  • ActionScript 3.0 for Adobe Flash CS5 Professional Classroom in a Book (also on reserve)
  • O'Reilly series for ActionScript 3.0 and Java


Class attendance is extremely important and you are expected to attend. Assigned readings are to be completed before lecture so that you have a basis for participation in class discussions and for asking questions. You are responsible for material presented in class; be sure to ask questions if there are concepts you did not understand (e.g., via email, in office hours or TA drop-in hours). If you miss a class, please ask a classmate for notes and see me or the lab instructor with any subsequent questions on covered material.

Skin by RIL Partner