CISC 3115 Introduction To Modern Programming Techniques (Section TY2)

Fall 2021 (08/25/2021 – 12/21/2021)

by Professor Hui Chen, CUNY Brooklyn College

Table of Content

Instructor

Professor Hui Chen, Ph.D.
Office: Room 1432N Ingersoll Hall (Due to the COVID-19 pandemic, please observe the college’s relevant policies when visiting the instructor.)

Office Hours and Contact

Office Hours: 3:45 - 4:45, Tuesday ;3:45 - 4:45, Thursday

Office Hours Access: in-person (one student at a time at Room 1432N Ingersoll Hall) and online (by arrangement via Zoom or Blackboard Collaborate)

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: 02:15 - 03:30 PM Tuesday; 01:25 - 03:30 PM Thursday;
Class Meeting Method: In-Person
Classroom: 431 IA

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 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 register with the Center for Student Disability Services first. 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 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 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. Be aware that the College may revise the Academic Calendar as we are still in the COVID-19 pandemic.

Important Dates

Date Description
Wednesday, August 25 First day of Fall 2021 classes
Tuesday, August 31 Last day to add a course
Monday, December 13 Last day to withdraw from a course with a W grade
Tuesday, December 14 Reading Day
Wednesday, December 15 Final Examinations Begin
Tuesday, December 21 Final Examinations End / End of Spring Semeste

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

CodeLab Assignments

In general, the instructor assign CodeLab exercises each week. The CodeLab exercises are provided by [Turing's Craft Code Lab](https://codelab.turingscraft.com/login). The purpose of these exercises is to help students learn the Java programming language.

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

Individual Review Assignments (Journal Assignments)

The students are required to exercise with the sample programs and in-class exercises in each class meeting and document the experience including submitting the source code, compilation and running results.

Programming Assignments

In general, the instructor assign programming or some hands-on assignments every 3-4 weeks. 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.

Students should expect 2 individual Programming Assignments.

Group Programming Projects

The instructor assigns programming projects larger than individual programming assignments to student groups for selected major areas of study. These projects are 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.

For each of these group assignemnts, the instructor will place each student randomly in a team of 3-5 students.

To grade these assignments, the instructor considers the quality of the group work and individual contributions. The students shall 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 may receive no points on a group assignment as evidenced by the peer evaluation and the others (such as, Github commit logs).

Students should expect 2 group Programming Projects.

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 programming assignments submission including individual review assignments (journals), submission, individual programming assignment submission, and group project submission.

  • 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.
  • Alternatively, the students can submit their works via Blackboard.
  • You should select a method at the beginning of the semester and keep using it for the rest of the semester

Late Submission

Late submissions are accepted, but penalized with 10% 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. In addition, 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,

Grading Components and Grade Calculation

Component Percent Note
Attendance 05%  
Code Lab Assignments 10% Best 10 CodeLab Assignments (out of 14) are 10 points.
Invidual Review Assignments (Review Assignments) 05% Best 10 Invidual Review Assignments (out of 14 weeks) are 5 points
(Individual) Programming Assignments 15% 2 programming assignments are 15 points, 7.5 points each.
(Group) Projects 15% 2 group projects are 15 points, 7.5 points each.
Midterm Exam 20%  
Final Exam 30% The final exam is accumulative.

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