CISC 3115 Introduction To Modern Programming Techniques (Section TY2)

Fall 2020 (08/26/2020 – 12/20/2020)

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, the office may not be accessible)

Office Hours and Contact

Office Hours: 3:30 - 4:30PM, Tuesday ;3:30 - 4:30PM, Thursday
Office Hours Access: Online or otherwise announced
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: Synchronous Online

Synchronous Online Class Meeting

The College designates this class as a Synchronous Online class in this semester, which means we must convene class meetings including all exams and tests at the designated time via an online platform. Unless otherwise announced, we shall meet via Blackboard Collaborate Ultra. To join a class meeting, log on to CUNY Blackboard, go to the class, look for the Blackboard Collaborate Ultra link, open it, look for the class meeting session corresponding to the day, and join the session. If you are new to Blackboard Collaborate Ultra, you should check out the official Blackboard help page on Blackboard Collaborate Ultra.

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.

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 in the COVID-19 pandemic.

Important Dates

Date Description
Tuesday, 25 August Last day to drop for 100% tuition refund and Last day to file Permit request
Wednesday, 26 August Start of Fall Term
Monday, 31 August UPDATED: Last day for Faculty members to change INC grades (from Fall 2019) to letter grades for Undergraduate students resulting from submitted assignments completed by the August 16th deadline.
Tuesday, 1 September Last day to add a course
Tuesday, 1 September Last day to drop for 75% tuition refund
Tuesday, 1 September Financial Aid Certification Enrollment Status Date
Wednesday, 2 September Verification of Enrollment (VOE) rosters available to faculty
Wednesday, 2 September Grade of WD is assigned to students who officially drop a course
Monday, 7 September College Closed
Monday, 7 September Last day to submit a Pass/Fail elective application online for Fall 2020
Tuesday, 8 September Last day to drop for 50% tuition refund
Friday, 11 September “Last day for students to submit requests for change, deletion of, or declaration of a major/minor/concentration to be effective for Fall 2020”
Monday, 14 September “Last day for departments to approve requests for change, deletion of, or declaration of a major/minor/concentration to be effective for Fall 2020”
Tuesday, 15 September Last day to drop for 25% tuition refund
Tuesday, 15 September Census date - Form-A cutoff
Tuesday, 15 September Verification of Enrollment (VOE) Rosters Due from faculty
Tuesday, 15 September “Last day to file for Fall 2020/December 31, 2020 and Winter 2021/February 1, 2021 graduation”
Wednesday, 16 September WN Grades assigned
Wednesday, 16 September Grade of W is assigned to students who officially withdraw from a course
Friday-Sunday, September 18-20 No classes scheduled
Friday, 25 September WA Grades Assigned - Immunization non-compliance
Monday, 28 September No classes scheduled
Tuesday, 29 September Classes follow Monday schedule
Monday, 12 October College Closed
Wednesday, 14 October Classes follow Monday schedule
Thursday, 5 November R2T4 60% Date for the term
Friday, 6 November Last day to withdraw from a course with a grade of W
Friday, 6 November Declaration of Major queue reopens; Majors/minors/concentrations declared starting this date will be effective for spring 2021
Wednesday, 25 November Classes follow Friday schedule
Thursday-Sunday, 26-29 November College Closed
Thursday-Friday, 10-11 December Reading Day
Monday-Sunday, 14-20 December Final Examinations
Monday, 14 December Last day for Faculty to submit WN reversals for Spring 2020
Sunday, 20 December End of Fall Term
Wednesday, 23 December Final Grade Submission Deadline
Wednesday, 23 December “Last day for Undergraduate and Graduate students to complete and submit any incomplete work to resolve Winter, Spring and Summer 2020 INC grades.”
Thursday-Friday, 24-25 December College Closed
Thursday, 31 December Fall 2020 Degree Conferral Date

Attendance and Participation

The College designates this class as a Synchronous Online class, as such, we shall hold class meetings and exams online. It is required to attend the online class meetings 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 online class meeting, the instructor will issue an attendance poll where students enter their full name to register their attenance. 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 online 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.

In-Class Assignments

During an online class meeting, students complete activities related to the CodeLab assignments assigned before or the lecture individually or in a pre-arranged group.

Students should expect 28 In-Class Assignments, generally, 1 per lecture.

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 4 individual Programming Assignments, generally, 1 every 3-4 weeks.

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 3 group Programming Projects, generally, 1 every 4 weeks.

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. In this semester, as the College designates this class as a Synchronous Online class, the instructor will proctor the exames online as the designated date and time by the College.

Assignment Submission

The instructor adopts the Github Classroom to manage programming assignments submission including individual programming assignment submissino and group project submission. 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 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 5%  
(Non-Project) Exercises 15% 14 CodeLab Assignments and best 7 In-Class Assignments, in total, 21 assignments are each 1/3 points. 4 individual Programming Assignments are 2 points each.
Projects 30% 3 projects are 10 points each.
Midterm Exam 20%  
Final Exam 30%  

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 Online Learning Success

The College designates this class as a Synchronous Online class in this semester. 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.

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.

Online Lecture Participation

The online lectures are crucial. Although the instructor records lectures, you may not have as a good experience watching the recordings as you would in person in the online lectures. However, if you are only passively watching the lecture, you can quickly lose concentration. It is important to participate in the class actively, such as, participating in polling, 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 to, 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.

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.

Online Office Hours

The instructor maintains weekly online office hours via Blackboard Collaborate Ultra.

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