Skip to main content

CISC 3120 Design and Implementation of Software Applications I

Spring 2018

by Professor Hui Chen, CUNY Brooklyn College


Section MW8

Class Meeting: 08:00 - 09:15am, Monday and Wednesday
Classroom: Room 130 Ingersoll Hall Extension (IA-130)

Section MW2

Class Meeting: 02:15 - 03:30pm, Monday and Wednesday
Classroom: Room 130 Ingersoll Hall Extension (IA-130)


Hui Chen, Ph.D.
Office Hours: 9:30 - 10:30am, 3:45 - 4:45pm Monday and Wednesday
Office: Room 1432N Ingersoll Hall
Phone: (718)951-5000 ext. 2055


3 hours; 3 credits

Introduction to topics from diverse areas of computer and information science in an application-oriented context. Design, development, implementation and testing of a web-based, data-backed interactive application, such as an educational game or an e-commerce site. Human-computer interaction, graphics programming, net-centric computing, and software design. Learning code development by example, modification of instructor-authored code and independent code authoring. Application Programming Interfaces and state-of-the-art tools to design and partially prototype systems. Open-source technologies and their relationship to commercial technologies currently popular in workplaces. Application of fundamental computer skills and knowledge to rapidly changing job-specific technologies, tools and environments. Hands-on system development, supervised by the instructor. Students should be prepared to take CISC 3140 in the following semester. It is recommended that students have taken or are taking CISC 3130 in the semester they take CISC 3120.

Prerequisite: CISC 3110.

Learning Objectives

The class is aimed to provide students with kills and knowledge in a few knowledge areas. Upon successfully completing this course, students are expected to achieve the following learning objectives described for the major knowledge areas:

  1. Objected-Oriented Programming. You will deepen your understanding in objected-oriented programming via gaining competency in the Java programming language.
  2. Application User Interface and Design. You will be able to select judiciously and design appropriate user interface for applications among command-line user interface, text-based user interface, and graphical user interface. The emphasis is given to the graphical user interface design.
  3. Network and Standalone Applications. You will gain the first-hand knowledge in developing standalone applications and network applications, have a basic understanding of a few common types of software architectures including client/server, multi-tier, component-based, and data-centric architectures, and be able to build functional web and desktop applications with acquired knowledge in XML, HTML 5, networking, and graphics.
  4. Testing. You will be able to set up and perform unit tests, functional tests, and integration tests for applications you develop.
  5. Software Development Process. You will gain a basic understanding of software development process in a team and collaborative environment, and will be able to adopt modern tools, such as, communication tools, code revision management systems to support the selected development process.
  6. Self-Learning and Research. 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.

Key Words:

Inheritance, Polymorphism, Class, Interface, Abstract Class, Abstract Method, Java, JUnit, XML, HTML, HTML 5, Cascading Style Sheet, CSS, Application Programming Interface, API, Command-Line, Graphical User Interface, GUI, Web, Networking, Client/Server Architecture, Multi-tier Architecture, Data-Centric Design, Net-Centric Design, Git, Github, Integrated Development Environment, IDE, Eclipse, Unit Test, Functional Test, Integration Test


Sierra, Kathy. 2005. Head First Java (2nd ed.). O'Reilly Media, Inc. [ Section MW8 and Section MW2 at CUNY Bookstore ]

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 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.

Important Dates
Date Description
Friday, February 2 Last day to add a course
Monday, February 5 Last day to file for elective course Pass/Fail
Friday, February 16 Last day to drop a course without a grade
Tuesday, February 20 Conversion Day; Classes follow a Monday Schedule
Friday, April 6 Last day to resolve Fall 2017 and Winter 2018 incomplete grades (INC)
Wednesday, April 11 Conversion Day; Classes follow a Friday Schedule
Monday, April 16 Last day to withdraw from course with a W (non-penalty) grade

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


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.

These assignments are individual assignments that require students to complete independently.

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.
  • Weekly programming assignments. These exercises is for knowledge areas other than the Java programming language itself. These knowledge areas are listed in a high-level at the Learning Objectives section
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 programming assignments with three approaches,

  • Random inspection of practice assignments by the instructor.
  • Periodic evaluation of practice assignments by student peers.
  • Final inspection of practice assignments by the instructor.

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.


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 10%
Practice and CodeLab Assignments 10%
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.