Digital circuits, combinational systems, memory, register transfer, control logic design, CPU design, and advanced topics on micro-architectures.

Requisites:

  • Complete the following:
    • CS2290 Computer Organization and Architecture I 3

Formerly CT3130 Introduction to computer communication networks. Digital data and voice transmission. Protocols for error and flow control, media access for LANs and MANs, routing and condition control, interconnection of networks. Introduction to recent advances in networks.

Requisites:

  • Complete the following:
    • CS2000 Data Communications and Networking 3
    • CS2010 Practical Programming Methodology 3

Formerly CT3110 Graphical input and output devices; segments; interactive input techniques; user interface design; windowing and clipping; 2D and 3D transformation; 3D modelling and viewing; hidden-line and hidden-surface removal.

Requisites:

  • Complete 1 of the following:
    • Complete the following:
      • CS1150 Elementary Data Structures 3
    • Complete the following:
      • CS2010 Practical Programming Methodology 3

The course includes basic concepts in computer data organization and information processing; hardware, physical organization, and access methods for fine storage; file I/O; introduction to database systems.

Requisites:

  • Complete the following:
    • CS2010 Practical Programming Methodology 3

General introduction to number representation, architecture and organization concepts of von Neumann machines, assemble level programming, exception handling, peripheral programming, floating point computations and memory management.

Requisites:

  • Complete the following:
    • CS1150 Elementary Data Structures 3

This course introduces the fundamentals of PC hardware. Students will open up machines, install devices such as hard drives, I/O cards, video cards as well as memory, CD/DVD ROM drives, install operating systems, explore a variety of different software packages, attach communications equipment and supporting software. Topics include system hardware (e.g. motherboards, processors, storage devices, memory), device drivers, operating systems (e.g. Windows, Linux), troubleshooting and maintenance of LAN (lLocal Area Network)-based PC, etc.

The first course of a two course sequence on algorithm design and analysis stream, with the emphasis on the fundamentals such as searching, sorting and graph algorithms. Examples include divide and conquer, dynamic programming, greedy method, backtracking, and local search methods. Analysis techniques will be developed to aid in judging program efficiency.

Requisites:

  • Complete the following:
    • CS1150 Elementary Data Structures 3
    • CS2720 Formal Systems and Logic in Computing Science 3
    • MA1130 Elementary Calculus I 3

This course introduces you to the principles, methods, tools, and practices of a professional programmer working in a rich programming environment. The lectures focus on the fundamental principles of programming methodology based on abstract data types and their implementations. The laboratories offer an intensive apprenticeship opportunity for the aspiring software developer. You will use the programming languages C and C++ and software development tools supported by the Microsoft Windows and UNIX programming environment.

Requisites:

  • Complete the following:
    • CS1150 Elementary Data Structures 3

The course provides a review of programming principles (specification, implementation and testing), and an extension of object-oriented concepts from CS1140 including data abstraction, modular program construction and program reuse. The emphasis is on dynamic data structures (eg. lists, string, stacks, queues, tables), and their associated algorithms (eg. recursion, traversal, sorting, searching, hashing).

Requisites:

  • Complete All of the following:
    • Complete the following:
      • CS1140 Introduction to Computing Science 3
    • Or CS1000

An introduction to Computing Science in which you learn to solve simple problems by writing small computer programs in JAVA. This course presents a high-level object-oriented computing model based on objects as well as primitive data types, control structures and methods. It will be limited to basic elementary algorithms and techniques for constructing elegant and robust solutions to simple problems. The laboratories will offer you the opportunity to translate concepts presented in lectures into interesting application programs.

Requisites:

  • Mathematics 30-1 or equivalent and previous computer knowledge
Subscribe to