COMP162 - Foundations of Computer Science

  • Description

    • This paper explores basic data structures and algorithms using the Java programming language. COMP162 builds on and extends knowledge of Java developed in COMP161, and applies this to advanced programming ideas such as: recursion, abstract data types, the Collections Framework, and sorting algorithms. Theoretical and practical analyses of efficiency are used throughout the paper. Students will also be introduced to other common programming languages, including: C, R, and Haskell.
    • Please note, this paper is taught through Blackboard. This is an informational page only. For the latest paper content and announcement, please see Blackboard.
  • Objectives

    When you successfully complete this paper, you will be able to demonstrate:

    • an understanding of the nature of algorithms and how to analyse their efficiency
    • an appreciation for abstract data types (ADTs) and a knowledge of the ADTs most commonly used in software development (e.g., stacks, queues, lists, sets, priority queues, and equivalence relations)
    • an understanding of the most common data structures used to represent ADTs (e.g., arrays, linked lists, binary search trees, heaps), and the algorithms that operate on them
    • an increased proficiency in Java programming
  • Advanced Placement Test for COMP162

    • You can get direct entry to COMP162 (exempt from COMP161) if you pass and Advanced Placement Test. The test will consist of writing a number of specified Java programs under supervised conditions in one of our laboratories. It should take about 2 hours. If you want to request the test, please email our Adviser.
    • If you are granted exemption from COMP161, it would be useful to prepare for COMP162 by practicing some basic Java (especially if your background is in another language). Email Adviser to discuss this.
  • Curriculum changes in Computer Science

    • For more notes on the curriculum changes in Computer Science see this page.