Syllabus
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
- Class Meetings
- Course Description
- Learning Objectives
- Textbook
- Academic Regulations and Procedures
- Important Dates
- Attendance and Participation
- Assignments and Examinations
- Assignment Submission
- Grade Calculation
- Tips for Online Learning Success
- Instructional Technologies
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
-
to understand the four principles of object-oriented programming, i.e., abstraction, encapsulation, inheritance, and polymorphism;
-
to understand Java class definition, including the use of constructors and static members;
-
to understand Java objects, the concepts of state and behavior, and their realization in the Java programming language;
-
to design and implement applications with multiple Java classes, interfaces, and objects;
-
to design and implement Java methods with recursion and iteration;
-
to understand exception handling and apply it in Java application design;
-
to design and implement Java programs with Java’s Collections API;
-
to understand concurrent and event-driven programming basics and to apply these in GUI (graphical user interface) application design and implementation;
-
to understand test-driven development basics and apply tests to aid Java program design, implementation, and quality assurance;
-
to use basic Unix command line operators to support Java programming;
-
to use Integrated Development Environment to support Java programming; and
-
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
- 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 is procuring online proctoring software and is likely to conclude the procurement process and to deploy the software for use in CUNY classes on or before midterm season, i.e., late September to mid-October. A design objective of online proctoring software is to improve online exam security. 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 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
-
CUNY Blackboard
Web: https://bbhosted.cuny.edu/
Support Page: https://libguides.brooklyn.cuny.edu/Blackboard_for_Students
-
Git
Web: https://git-scm.com/
Documentation: https://git-scm.com/doc
-
GitHub Student Developer Pack
-
CodeLab by Turing’s Craft
Web: https://codelab.turingscraft.com/login
Support Page: https://www.turingscraft.com/support