Queen's School of Computing

CISC 124/3.0 Introduction to Computing Science II

Original Author: Bob Tennent
Most Recent Author: Wendy Powley
Last Revised: 2019-03-20

Calendar Description

Introduction to object-oriented design, architecture, and programming. Use of packages, class libraries, and interfaces. Encapsulation and representational abstraction. Inheritance. Polymorphic programming. Exception handling. Iterators. Introduction to a class design notation. Numerical computation. Applications in various areas.

Prerequisite: C- in CISC 121/3.0.

Corequisite: CISC 102/3.0 or MATH 110/6.0 or MATH 111/6.0 or MATH 112/3.0 or MATH 120/6.0 or MATH 121/6.0 or MATH 123/3.0 or MATH 124/3.0 or MATH 126/6.0 or APSC 171/3.0 or APSC 172/3.0 or APSC 174/3.0 or COMM 161/3.0 or COMM 162/3.0.

Learning hours: 120 (36L; 24Lb; 60P)

This course is a direct prerequisite to

  • CISC 221/3.0 (Computer Architecture)
  • CISC 223/3.0 (Software Specifications)
  • CISC 235/3.0 (Data Structures)
  • CISC 360/3.0 (Programming Paradigms)
  • CISC 332/3.0 (Database Systems)
  • CISC 457/3.0 (Image Processing)

Degree Planning

  • This course is required in all Computing programs.

Possible Texts

  • Walter Savitch. Absolute Java.

Topics

  • history and features of Java (2 lectures)
  • procedural Java, the Java API, good coding style (6 lectures)
  • numerical representation, IEEE 754 storage standard for floating point numbers, sources and effects of roundoff error and inaccuracy (2 lectures)
  • basic language features: exceptions, pointers, passing by reference (2 lectures)
  • what is an object?, encapsulation (4 lectures)
  • essential tools: Javadoc, JUnit testing (3 lectures)
  • intermediate language features: packages, modules, enums, inner classes, interfaces, anonymous classes, abstract classes (3 lectures)
  • advanced language features: inheritance, polymorphism. generic classes and methods, lambda functions, method references (6 lectures)
  • GUI construction with JavaFX (7 lectures)