Skip to main content

CISC 3115 Introduction To Modern Programming Techniques

Fall 2018

by Professor Hui Chen, CUNY Brooklyn College

Syllabus

Section TY3

Class Meeting: 03:40 - 05:20pm, Tuesday and Thursday
Classroom: Room 130 Ingersoll Hall Extension (IA-130)

Instructor

Hui Chen, Ph.D.
Office Hours: 8:00 - 10:00am & 01:30 – 03:30pm Tuesday and Thursday
Office: Room 1432N Ingersoll Hall
Phone: (718)951-5000 ext. 2055
E-mail: chen@sci.brooklyn.cuny.edu

Overview

4 hours; 4 credits

A second course in programming. Programming techniques emphasizing reliability, maintainability, and reusability. Multi-file programs. Abstract data types. Objects, classes, and object-oriented design. Test suites, test drivers, and testing strategies; debugging, assertions, and an introduction to formal techniques. Recursion, event-driven programming and threads, GUI programming, and simple network programming. (Not open to students who are enrolled in or have completed Computer and Information Science 3130 [22].)

Prerequisite: CISC 1115 or 1170

Learning Objectives

  1. Understanding the four principles of object-oriented programming— abstraction, encapsulation, inheritance and polymorphism— as well as the concepts of state and behavior, and their realization in the Java programming language;
  2. Understanding Java class definition, including the use of constructors and static members;
  3. Familiarizing with concurrent and event-driven programming and their use in GUI (graphical user interface) application development;
  4. Understanding and familiarizing with both recursion and iteration and their application in Java's collection hierarchy;
  5. Gaining acquaintance with the Unix programming environment;
  6. Understanding responsibility-driven programming and exception handling.
  7. Practicing self-learning and research (broadly defined) for problem solving. You will be able to use various sources including Web searches, books, websites, journals, and conference proceedings as well as others to advance your knowledge and solve problems during application design, implementation, and testing processes.

Textbook

Liang Y Daniel, Introduction to Java Programming, Brief Version, 11st Edition [ Section TY3 ]

Academic Regulations and Procedures

All students should carefully and thoroughly read the section entitled "Academic Regulations and Procedures" in the Brooklyn College Undergraduate or Graduate Bulletin for a complete listing of academic regulations of the College.

Academic Integrity

The faculty and administration of Brooklyn College support an environment free from cheating and plagiarism. Each student is responsible for being aware of what constitutes cheating and plagiarism and for avoiding both. The complete text of the CUNY Academic Integrity Policy and the Brooklyn College procedure for policy implementation can be found at http://www.brooklyn.cuny.edu/bc/policies. If a faculty member suspects a violation of academic integrity and, upon investigation, confirms that violation, or if the student admits the violation, the instructor shall report the violation to the College.

Student Disability Services

In order to receive disability-related academic accommodations students must first be registered with the Center for Student Disability Services . Students who have a documented disability or suspect they may have a disability are invited to set up an appointment with the Director of the Center for Student Disability Services, Ms. Valerie Stewart-Lovell at (718)951-5538. If you have already registered with the Center for Student Disability Services, please provide the instructor with the course accommodation form and discuss your specific accommodation with the instructor.

Consideration of Religious Observance

New York State Education Law (Title I, Article 5, Section 224-a) requires that the College

makes available to each student who is absent from school, because of his [or her] religious beliefs, an equivalent opportunity to make up any examination, study or work requirements which he [or she] may have missed because of such absence on any particular day or days.

If you are unable to attend classes or take examinations, the instructor is happy to accommodate you as permitted by semester schedule and other constraints there may be ; however, it is recommended that you make arrangement with the instructor in advance. You may also contact Ron Jackson, Division of Student Affairs , if you have questions about accommodations for religious observance.

Important Dates

These are important dates that undergraduate students should pay attention to.

For the complete College calendar, check out the Fall 2018 Academic Calender, Brooklyn College.

Attendance

Class attendance is required unless prearrangement is made with and approved by the instructor, or is permitted by Federal and State laws and regulations and the policies of of the College.

Reference to the state law regarding non-attendance because of religious beliefs is in p. 65 in the Undergraduate Bulletin or p. 41 of the Graduate Bulletin.

The instructor will pass and collect an attendance sheet at the beginning of each class, and students are required to sign the attendance sheet within the first 15 minutes of the class.

Late Attendance

Students should arrive at class on time. A late attendance is treated as missing half of the class, and is penalized as such when attendance score is computed.

Assignments and Examinations

Practice Assignments

The instructor assign practice assignments each week. Some of these assignments may be assigned in class and expected to be completed in class. Some of these assignments are expected to be completed after class. These practice assignments are small assignments whose purpose is to help students review lecture material.

The practice assignments fall into two categories.

  • The CodeLab exercises provided by Turing's Craft. The purpose of these exercises is to help students learn the Java programming language.
  • Practice programming or hands-on assignments (called "Weekly Assingments"). These are for students to write complete but small programs, or do something hands-on, such as, exercises helping students familiar with assignment submissions and programming tools.
Reigstering CodeLab

The Turing's Craft's CodeLab registration requires a confidential registration code. Visit the CUNY Blackboard system to view the registration instruction and the registration code.

Grading of Practice Assignments

Students' completion of the CodeLab exercises are are recorded by Turing's Craft.

The instructor evaluates and monitors the students' weekly assignments regularly,

For each assignment, a student would receive either an accepted or unaccepted grade. A student's percentage of accepted assignments from the random inspection, periodic evaluation, and the final inspection will be used in the student's final grade calculation as discussed in the Grade Calculation section.

Projects

For each major area of study, a project will be assigned. Projects are required to be completed in student teams. The purpose of the project is to provide students with sufficient practice and ample exploration to master the knowledge and skills pertinent to the area, and learn to collaborate in a team setting.

Teaming and Collaboration

The instructor will place each student randomly in a team of 3-5 students.

Students are required to maintain regular meetings either in person or online.

Students are required to use a Git system to manage their project code, issues, and collaboration. The instructor has adopted the Github Classroom for this purpose.

Grading of Projects

Students' projects are graded by both the instructor and the students' peers. The students will provide a peer evaluation. The instructor will provide an evaluation on the quality of the projects. Both of the student peer evaluations and the instructor's evaluations will be used in the student's final grade calculation. A student's may receive a lower grade than the project quality grade if the student makes far few contributions than her or his team members. In an extreme case, a student who does not make any contribution to the project as evidenced by the peer evaluation and Github commit logs may receive no points on a project.

Midterm Examination

A midterm examination will be given. An advisory midterm grade will also be issued in the week following the midterm.

Final Examination

A final examination will be given in accordance with the College Final Exam Schedule .

Assignment Submission Guideline

The instructor adopts the Github Classroom to manage assignments. The students submit their work to Github by commiting their work using a Git client and pushing their work to their Github repositories.

The Github Classroom repository invitation links for this class will be distributed in class.

Late Submission

Late submissions are accepted, but penalized with 20% of penalty or one letter grade lower each day late. For instance, if a team submits a project one day late, the grade of the project will be lowered from A to B, B to C, and so on. This penalty scheme also implies that a student will receive 0 on a submission of 5 or more days late.

Grade Calculation

Students final score is calculated on the scale of 100 as follows,

This table contains grading components and calculation

Grading Components and Grade Calculation
Component Percent
Attendance 5%
Practice Assignments 15%
Projects 30%
Midterm Examination 20%
Final Examination 30%
Total 100%

Letter Grade

Your final letter grade will be given as follows according to the following table,

This table specifies how letter grades are assigned.

Letter Grade Assignment
Final Score Letter Grade
90 - 100 A
80 - 89 B
70 - 79 C
60 - 69 D
0 - 59 F

Course Website and CUNY Blackboard

The instructor posts syllabus, course schedule, and lecture notes on the Class Website, and posts assignments, assignment grades, and advisory grades on CUNY Blackboard.