CISC 3115 Introduction To Modern Programming Techniques (Section MY3)

Spring 2024 (01/25/2024 – 05/22/2024)

by Professor Hui Chen, CUNY Brooklyn College

Table of Content

Instructor

Professor Hui Chen, Ph.D.
Office: Room 1432N Ingersoll Hall (No appointment is necessary during office hours.)

Office Hours and Contact

Office Hours: 6:00 - 7:00, Monday ;6:00 - 7:00, Wednesday

Office Hours Access: No appointment is necessary during office hours.

E-mail: chen@sci.brooklyn.cuny.edu
E-mail Policy: When e-mailing the instructor, include your name and course section in the subject. The instructor will generally reply your message before next class meeting.

Class Meetings

Class Meeting: 3:40 - 5:20 PM Monday; 3:40 - 5:20 PM Wednesday;
Class Meeting Method: In-Person
Classroom: 1127 IH

In-Person Class Meeting

The College designates this class as a in-person class in this semester, i.e., we shall convene class meetings including all exams and tests at the designated times and at the designated classroom.

Course Description

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

Prerequisite: Prerequisite: CISC 1115

Learning Objectives

By the end of this course, students should be able

  1. to understand the four principles of object-oriented programming, i.e., abstraction, encapsulation, inheritance, and polymorphism;

  2. to understand Java class definition, including the use of constructors and static members;

  3. to understand Java objects, the concepts of state and behavior, and their realization in the Java programming language;

  4. to design and implement applications with multiple Java classes, interfaces, and objects;

  5. to design and implement Java methods with recursion and iteration;

  6. to understand exception handling and apply it in Java application design;

  7. to design and implement Java programs with Java’s Collections API;

  8. to understand concurrent and event-driven programming basics and to apply these in GUI (graphical user interface) application design and implementation;

  9. to understand test-driven development basics and apply tests to aid Java program design, implementation, and quality assurance;

  10. to use basic Unix command line operators to support Java programming;

  11. to use Integrated Development Environment to support Java programming; and

  12. to apply self-learning and research skills including searching on the Web and reading Java API documentation for problem solving in Java application design, implementation, and testing.

Textbook

  1. Liang, Y. D. (2017). Introduction to Java Programming and Data Structures, Comprehensive Version (11th ed.). Pearson.

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 www.brooklyn.edu/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 faculty member MUST report the violation. Students should be aware that faculty may use plagiarism detection software.

Student Disability Services

The Center for Student Disability Services (CSDS) is committed to ensuring students with disabilities enjoy an equal opportunity to participate at Brooklyn College. In order to receive disability-related academic accommodations, students must first be registered with CSDS. Students who have a documented disability or suspect they may have a disability are invited to schedule an interview by calling (718) 951-5538 or emailing Josephine.Patterson@brooklyn.cuny.edu If you have already registered with CSDS, email Josephine.Patterson@brooklyn.cuny.edu or testingcsds@brooklyn.cuny.edu to ensure accommodation emails are sent to your professor.

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 Division of Student Affairs , if you have questions about accommodations for religious observance.

Policy and Software for Online Exam Proctoring

CUNY procured online proctoring software for hosting online exams. In case that we must have online exams, the instructor may elect to proctor the exams via the online protoring software. A design objective of online proctoring software is to improve online exam security. However, to learn how it may affect you, you should take a look at some online proctoring software, such as, Respondus Monitor and Proctortrack.

Important Dates

The College’s Academic Calendar lists a few important dates. Below are some of these important dates.

Important Dates

Date Description
Thursday, January 25 First day of Spring 2024 classes
Wednesday, January 31 Last day to add or swap a course
Monday, February 12 College Closed – No classes scheduled
Monday, February 19 College Closed – No classes scheduled
Thursday, February 22 Conversion Day – Classes follow a Monday schedule
Wednesday, February 28 Conversion Day – Classes follow a Monday schedule
Friday, March 29 through Sunday, March 31 College Open – No classes scheduled
Monday, April 22 through Tuesday, April 30 Spring Recess – College Open – No classes scheduled
Wednesday, May 15 Last day to withdraw from a course with a “W” grade
Thursday, May 16 Final Exams Begin
Wednesday, May 22 Final Exams End / End of Spring Semester

Attendance and Participation

You are required to attend the lectures. 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 the Undergraduate or Graduate Bulletin.

Student receives credit for attendance and participation in lectures. At each class meeting, the instructor will conduct an attendance roll-call or ask the students to sign an attendance sheet. In addition, there are required in-class exercises and discussion. For the in-class exercises and discussions, see the section of Assignments and Examinations for details.

Late Attendance

Students should join the class meetings on time. A late attendance may be recorded as absence from the class.

Assignments and Examinations

In-Class Exercises

In most lectures, there will be one or more in-class exercises sessions. The instructors will ask students to make a demo about the exercises from to time, and use the demos to grade the in-class exercises.

CodeLab Assignments

The instructor assign CodeLab exercises following the lecturing schedule.. The CodeLab exercises are provided by Turing's Craft Code Lab. The purpose of these exercises is to help students learn the Java programming language.

Students should expect 14 CodeLab Assignments, generally, 1 per week.

Programming Assignments

The instructor assigns 7 programming assignments. Among the 7 assignments, 1 is from CodeLab (recursion) and is not treated as a CodeLab assignments above; the rest are to be submitted on Github.

Midterm and Final Examinations

The instructor will give two exams, a Midterm Exam and a Final Exam. Refer to the course schedule for the time, the date, and the location of the Midterm and the Final Exams. Be aware that it is Brooklyn College Registration determins the time, the date, and the date of the Final Exam.

Assignment Submission

The instructor adopts the Github Classroom to manage most programming assignments submission and grading.

  • It is recommended that the students submit their programming assignments 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 the assignments will be distributed in class.

Late Submission

Late submissions and resubmission are accepted, but penalized with 10% of penalty or one letter grade lower for each week elapsed past the submission deadline. For instance, if a assignment submitted or resubmitted one week pass the deadline, the grade of the project will be lowered from A to B, B to C, and so on.

Grade Calculation

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

Grading Components and Grade Calculation

Component Percent Note
Attendance 05% Students who attend on time 90% or more classes will receive the full credit (5 points).
In-class Exercises 05% Demo to the instructor from time to time in class. Students completes 90% or more with “Satisfaction” remark receives the full credit (5 points).
Code Lab Assignments 05% Students completes 90% or more correctly receives the full credit (5 points).
(Individual/Group) Programming Assignments 35% 7 programming assignments are 35 points, 5 points each. Assignment 6 is a set of exercises on CodeLab and the exercises will be separated from regular CodeLab assignments. The description of the rest will be released on Blackboard and students submit their work on Github.
Midterm Exam 20% The coverage is everything discussed before the midterm exam.
Final Exam 30% The final exam is accumulative, and includes all topics discussed in the semester.

Letter Grade

Your final letter grade will be given as follows:

Letter Grade Assignment

Component Percent
90 - 100 A
80 - 89 B
70 - 79 C
60 - 69 D
0 - 59 F

Tips for Success

Below are some tips to help us succeed in this class.

Access to the Internet and Information Technology

It is essential that you have access to Broadband Internet, and to a computer with Web camera and microphone, minimally 8 GB RAM and 50 GB disk space. This allows you to install necessary software on the computer, e.g., JDK, to study, research, and look up online material, and to communicate with the instructor.

Be aware that the College and the University have made resources available to aid students. For instance, the College has established the Device Loan Program for Students and the University has a Virtual Desktop service In addition, the College maintains a Student Resources and Updates that documents services that students can leverage on for success. For instance, it describes the steps to obtain free Internet services from Charter Communications and Altice USA for students to take online classes.

Work Hours

You will need to devote at least 9 to 12 hours per week to the required lecture, reading, programming, experimenting, writing, and reasoning. Please devise a schedule (e.g., 2 to 2.5 hours per day, 5 days a week) and keep to it.

Lecture Participation

The lectures are crucial. It is important to participate in the class actively, such as, participating in class discussions, answering your classmates’ questions, answering the instructor’s questions, and asking questions.

Group and Peer Learning

Peer groups can be effective and beneficial to learning. You should leverage on the groups to which the instructor assigns you for your group assignments, or establish a group of your own, and actively discuss the relevant class topics with the group.

Video Conferencing Tools

Video conferencing tools, such as, Blackboard Collaborate Ultra has particularly useful features, such as, sharing screens and sharing files. You should master the tools and communicate effectively with your classmates and with the instructor, regardless the lectures are online or in-person.

The Brooklyn College Learning Center

Don’t forget that Brooklyn College has a Learning Center that is committed to help students succeed. One essential service that the learning center provides is the tutoring service. Visit the learning center online for more information.

The Brooklyn College Student Support Services

The Division of Student Affairs oversees a wide range of services among which you may find some useful. Visit the student support services online for more information.

Office Hours

The instructor maintains weekly office hours. The office hours provide you opportunities to work with the instructor on a one-to-one setting, and can be helpful to your study.

Instructional Technologies

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

Support and Resources