COMPUTER SCIENCE DEPT.
STUDENT COURSE OUTLINE

CST112 -- Introduction to Programming
2016 Fall Semester
INSTRUCTOR: B. A. Martin
(Adjunct Associate Professor)
COURSE: CST112 -- Introduction to Programming
CREDITS: 4
MEETINGS: Monday 9:30-11:10am / Room R218 (Ammerman Campus)
Monday 4:00-5:50pm / Room R206 (Ammerman Campus)
PREREQUISITE(S): MAT007 or equivalent (Required)
Recommended: Prior computing experience or CST111
OFFICE HOURS: Before or after class and by appointment.
ADJUNCT OFFICE: Room 331 Riverhead Building (Ammerman campus)
DEPT. SECRETARY: 451-4270 (Ammerman campus)
851-6770 (Grant campus)
EMAIL:: bam@suffolk.li

COLLEGE CATALOG DESCRIPTION :

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.).

OBJECTIVES:

    Upon successful completion of this course, the student should be able to:
  • Express mathematical expressions/computations in a modern programming language.
  • Use variables to store results of computations.
  • Understand the motivation and methodologies for using modularization in developing software.
  • Use pre-defined, and develop user-defined, functions to modularize software.
  • Develop code that implements selections in the execution path.
  • Develop code that implements repetition in the execution path.
  • Understand the purpose and nature of arrays (single- and multi-dimensional) for storing similar data that can be accessed given a numeric index into the array(s).
  • Understand the purpose and nature of classes and objects for the aggregation of data into a logical structure.
  • Develop moderate scale programs utilizing the concepts stated above.

    • 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,

STUDENT REQUIREMENTS:

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.
    TEXTBOOK:
    "Introduction to JAVA Programming" (10the Edition.)
    by Y. Daniel Liang
    [Pearson];
    ISBN: 978-0-13-359220-7

    READING ASSIGNMENTS:
    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.

    THE REPL WEBSITE:
    Please use these links (or links on the class page) to join the "classroom" on the repl.it website
    COMPUTER & INTERNET ACCESS:
    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.

    MIS-USE OF CLASSROOM COMPUTER EQUIPMENT :
    All computer equipment in classrooms and laboratories is the property of the college, and 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 and other disciplinary action (including dis-enrollment).

CODING STANDARDS & CODE REVIEWS:
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."
 

CODE REVIEWS:
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.


COURSE POLICIES:

  • 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 ***

    SCCC STUDENT CODE OF CONDUCT

    ... 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.



COURSE TOPICS

The course is divided into into four sections, each containing the following topics [along with chapters from the textbook].
Introduction
Introduction to Computer Programs and Java [+++]
Elementary Programming

Modularity
Mathematical Functions, Characters, and Strings
Methods

Flow of Control
Selection
Loops

Data Aggregation
Single-Dimensional Arrays
Multi-Dimensional Arrays
Objects and Classes

Assignments and Exams.

  • Each topic will have associated programming projects.
  • Most are for practice but some will be submitted and graded.
  • Exams will be given during the semester, as announced.
  • The final exam will be comprehensive,
  • but all exams will be dependent on previous topics.



Click here for day section (9:30am).

Click here for afternoon section (3:30pm).