CST112 -- Introduction to Programming
2014 Fall Semester
CST 111
(Adjunct Associate Professor)
COURSE: CST112 -- Introduction to Programming
MEETINGS: Monday evenings, 6:00-10:00pm / Room H209 (Caumsett Hall, Grant Campus)

Wednesday & Friday 12:30-2:10pm / Room H203 (Caumsett Hall, Grant Campus)
PREREQUISITE(S): MAT007 or equivalent (Required)
Recommended: Prior computing experience or CST111
CST112 and MAT107 are corequisities for students in the Information Technology curriculum.
OFFICE HOURS: After class and by appointment.


This course introduces fundamental programming principles to beginners. Emphasis is placed on algorithm development, structured programming techniques, flowcharting, coding, debugging and libraries. It discusses programming concepts such as variables, conditionals, loops, functions, objects, and arrays. Program output may include graphical elements with images, animation and visualization. The course is designed as a place where many ideas and techniques can mix and is therefore appropriate for a wide audience that includes programmers, as well as people interested in graphical design or analytic fields (science, mathematics, economics, etc.).


    After completing this course, the student should be able to:
  • Use an Integrated Development Environment (IDE), such as PDE ("Processing Development environment").
  • Develop new, interactive applications using a programming language, such as Processing.
  • Understand the Object-Oriented / Event-Driven approach to programming.
  • Create user-defined "methods" and "event-handlers".
  • Assign values to object properties and variables (local or form-level).
  • Understand declarations, expression evaluation, scope, types, etc.
  • Understand structured programming, and be able to write control statements for selection, looping, etc.


To successfully complete this course, you must submit required homeworks and programming assignmentsts, and demonstrate proficiency on all exams and projects. All work submitted must be neatly presented clearly labeled and identified as to the assignment and what has been accomplished.
    "Learning Processing
              -- A Beginner's Guide to Programming
              Images, Animation, and Interaction"

    by Daniel Schiffman
    (Morgan Kaufmann Series in Computer Graphics) [Paperback];
    ISBN: 978-0-12-373602-4
    This introductory discussion may also be useful to the student.

    The website contains documentation and other information about the Processing language. To do assignments using other computers, it may be necessary to download and install the Processing Development Environment (PDE)
    Each student is responsible for all material taught or assigned by the instructor. The student is expected to complete all assigned reading, prior to class meetings.

    Between classes, the student should have computer access to the internet, to obtain assignments, submit homeworks and projects, etc.   (NOTE:   If you have ANY difficulty at all in obtaining internet access between classes please see the instructor after class to remedy this difficulty.)
    Although computer lab time may be scheduled each week during class time, students should be aware that additional lab time outside of class will be necessary to complete the requirements of this course. Students should plan to spend an additional 3 to 6 hours per week using other computers, such as those in the Caumsett-211 computer lab.

This is a course in computer progamming, i.e. the development of software "code" that has two audiences:
  1. computers, which must compile and execute the code, and
  2. human programmers, who must read and understand the code (e.g. in order to debug or modify it).
Therefore, good programming practice depends not only upon how the computer processes the code, but also upon the ability of other programmers to read and understand the code (perhaps in order to debug or modify it).

For coding assignments, grading will be based not only on whether the code compiles correctly and performs the assigned tasks, but also upon its organization, clarity, and -- most of all -- "readability". These and other aspects of programming practices, as well as adherance to "coding standards" (to ensure testability, maintainability, etc.) will be introduced and discussed in the textbook and in class.
  "Any fool can write code that a computer can understand.
   Good programmers write code that humans can understand."

One technique that is very effective in promting good software is the "code review" wherein several programmers examine and critique software code that is being developed by some or all of them. During this process, while there may be criticism of specific lines of code, it must always be "constructive criticism" and never employed to blame or disparage the author(s) of the code under review.

Remember that computer source code is not some sort of "private communication" only with the computer, kept secret from others. Instead, source code should be thought of as intended for "publication", meant for the eyes of others of humans! In a code review, colleagues often examine a "rough draft" or a "work in progress" in order to help with problems, make suggestions, etc. -- and perhaps also to learn something new.


  • ATTENDANCE POLICY:   Attention is directed to the following statement of college policy.

    "The college expects that each student will exercise personal responsibility with regard to class attendance. All students are expected to attend every class session of each course for which they are registered. Students are responsible for all that transpires in class whether or not they are in attendance."

    Consequently, each student in this course is strongly advised to make standing arrangements with another individual student to take detailed notes, collect handouts, relay announcements, etc., in the event 'e doesn't show up at class. While you are encouraged to contact the instructor for advice before (or after) missing a class, it is more effective to have your "buddy" take detailed notes, and the student remains responsible for "all that transpires in class".

    Find a "buddy" to cover for you!    
    Do it now, not after missing a class.

    This instructor does not give credit for mere attendance, nor is credit lost for absence. Attendance is not a direct factor in grading policy, but it may indirectly affect the "participation" component.

    College policy defines "Excessive Absence or Lateness" as "more than the equivalent of one week of class meetings". While attendance is not a component of grading policy for this class, a student missing more than one week of consecutive classes - without making any contact with the instructor - may be removed from the class roster and given either a "W" or an "F" grade, at the instuctor's option.

  • CODE OF CONDUCT:     *** Please take note ***


    ... Although not all-inclusive, the following actions, activities or behaviors are expressly prohibited:

    "Unauthorized or illegal use of College computer facilities or equipment, such as hacking; duplication or unauthorized use of copyrighted software; destruction, unauthorized transfer or alteration of files; unauthorized use of another individual's identification, password or work."

    Any student guilty of the above may receive a failing grade in that class, be dismissed from class and/or be referred to the Dean of Students for further discipline proceedings.

    Also, please note: In-class laboratory time is NOT intended for computer activites unrelated to the college curriculum (such as games, entertainment, "instant messager", "surfing the web", etc.) Use of classroom computers for unrelated activities may result in loss of privileges.