Skip to Main Content
| Brooklyn College Library & Academic IT |CISC Department

CISC 3140 Design and Implementation of Software Applications II: Home

Professor Chuang Spring 2020 OER

Course Description

Description from the catalog: Overview of full-stack implementation of large scale web applications. Team-based software development methodologies, tools and practice. Introduction to modern HTML, CSS. Separation of structure, style and behavior. JavaScript, dynamic types, functional programming, prototypal classes, and closures. HTTP client-server communication, synchronous and asynchronous communication. Java Server Pages, simple database creation, programmatic queries and updates.

This course will cover most, not all of these topics.

Professor Information

Professor Katherine Chuang.Professor: Katherine Chuang
Lecturer, Department of CIS
Office Location: 1212N
Office Hours: By appointment

Office hours are available for students who need further clarification of concepts presented in lecture, or have made solid attempts on the homework assignments or other practice problems and require further assistance understanding how to approach such problems.

Course Objectives

Course Objective

The primary objective of this course is to provide the student with the experience of working in a fast-track development environment that requires a shifting balance between collaboration and autonomy. The student will be exposed to a wide range of software tooling across multiple eras of computing history. The student should plan for a considerable amount of focused attention outside of the classroom to complete assignments. Online resources will be provided for all lecture topics. You will get more out of the course if you have experience with some larger development projects, for example, through internships, or open-source contributions.

Topics: This course will cover a number of historically significant tooling to the field that were created long before GUIs, including the following but not limited to: 

  • Overview of select problems when developing large-scale software applications
  • Programming Paradigms, with emphasis on Scheme  
  • Tools and Techniques for one machine (before Internet)
    • Building large programs
    • Separating presentation and content
    • Configuration Management
  • Tools and Techniques for networked machines  (after Internet)
    • Roughly same topics as tools for one machine while including newer tools and practices such as automating delivery

Readings, Materials, and Resources: Course materials are published to the OER resource page located here at, including a list of suggested readings below and for each topic. Students should read the suggested reading material outside of class. Participating in class discussions of the readings would be the most effective way to absorb all the material.

Technology Requirements: When specialized software is required, it will be freely available online. All students are encouraged to have an account on a hosted version control website, such as GitHub. Many of the assignments and projects would be easier to complete with a Linux based ecosystem. The university provides CIS students in this class with access to linux servers. Students may wish to inquire with the WEB building for their SSH access information. 

Students are expected to find manuals and other relevant documentation for any of the software tools covered in the course. Homework assignments are designed to give students practice with researching and synthesizing information. While there is no required textbook for the course, students are also expected to read enough of technical documents available freely to use that software tool. The instructor has prepared an online handbook to serve as an aide however it does not replace reading the primary sources of information.

Textbooks & Reading Materials

Handbook for the course: Chuang, K. (2019) Tools and Techniques in Software Engineering: For Brooklyn College CIS undergraduates​. Brooklyn College OER. 

Selected Readings

Please note this list will expand throughout the semester and posted to 

  • Backus, J.W. (1960). Report on the algorithmic language ALGOL 60. Communications of the ACM.
  • Chacon, S. and Straub, B. (2014). Pro Git. Apress. 
  • Collins-Sussman, B., Fitzpatrick, B.W., Pilato, C.M., (2013) Version Control with Subversion: For Subversion 1.7
  • Leveson, N. and Turner, C.S. (1993). An Investigation of the Therac-25 Accidents. IEEE Computer, Vol. 26, No. 7.
  • Mecklenburg, R. (2004). Managing Projects with GNU Make, 3rd edition, O'Reilly.