|
CS1101
Programming Methodology
This module introduces the fundamental concepts of programming from an object-oriented perspective, and is perceived as the first and foremost introductory course to computing. It is the first of a two part series on introductory programming, which also includes CS1102. Topics covered include: overview of programming languages and compilation process, objects, classes, methods, fundamental programming constructs (variables, types, expressions, assignments, message passing, etc.), fundamental data structures: arrays, string, basic recursion, I/O, exception handling, use of APIs and class libraries, subclassing and inheritance, debugging and testing. Module activities include lectures, recitation, tutorial and laboratory exercises.
Recommended Textbooks
An Introduction to Object-Oriented Programming with
Java, by Thomas C. Wu, McGraw-Hill.
Programming and Problem Solving with JAVA, by James M. Slack, Brooks/Cole
Thomson Learning
The Object of JAVA: Introduction to Programming using Software Engineering
Principles, by David D. Ripley, BlueJ Edition, Addison Wisley
Objects First with JAVA: A Practical Introduction Using BlueJ, by
David J. Barnes, Michael Kolling
Learn to Program: JAVA, by Danny C.C. Poo, Chee Seong Tan, Raymond
Tan, Pearson Education
CS1102 Data Structures and Algorithms
This module is the second part of a two-part series on introductory programming from an object-oriented perspective. It continues the introduction to object-oriented programming begun in CS1101, with an emphasis on algorithms, data structures, software engineering, and the social context of computing. Topics covered include: ethical and social responsibility of computing professional, uses and implementations of abstraction and encapsulation through classic data structures (lists, stacks, queues, and their algorithmic designs), various forms of sorting methods, trees, BST, AVL tree, order property, hash tables, heap and priority queues, graphs representation and various graph-search algorithms, basic algorithmic analysis.
Recommended Textbook
Data Abstraction and Problem Solving with Java -
Walls and Mirrors, Frank M. Carrano.
CS2100
Computer Organisation
This course aims to familiarize students with the
fundamental building blocks of computer systems. Students will learn
the basic design of digital logic circuits. They will be exposed to
the register-level architecture of a computer system. The basic building
blocks of a computer system like CPU, memory, and I/O units are discussed.
Students will gain a better understanding on how a high-level language
program actually works inside a computer.
Topics include:
Number systems and codes; Boolean functions; MSI components (adders,
decoders, multiplexers); flip-flops; basic computer architecture
and organization; memory organization and cache; input/output;
overview of assembly language programming; pipelining.
Recommended Textbooks
Digital Design: Principles and Practices [DDPP] by
John F. Wakerly, Prentice-Hall. ISBN 0-13-324500-4.
Computer Organizations and Design (The hardware/software
interface) by David A. Patterson and John L. Hennessy.
CS2102/S
Database Systems
The aim of this module is to provide students with the knowledge and understanding of basic issues and techniques in manipulating large volumes of data stored on secondary storage. The module covers manipulation of data stored on secondary storage, physical organisation of data, access methods that facilitate data retrieval, concepts of database management systems in manipulating large volume of shared data, principles of DBMS, particularly the relational database management systems and their use in application development, SQL language, and new developments in non-conventional data processing techniques. Topics included:
Modeling and Relational Model
Conceptual Modeling
E-R to relational
Integrity Constraints
Normalization
Relational Algebra
Relational Calculus
SQL
Recommended Textbook
"Database Management Systems" by Raghu
Ramakrishna and Johannes Gehrke. Second Edition, McGraw-Hill Publisher.
CS2105
Introduction to Computer Networks
This course aims to provide a broad introduction to computer networks and some appreciations of network application programming. It covers a range of topics including basic data communication and computer network concepts, protocols, networked computing concepts and principles, network applications development and network security. The emphasis of teaching is on the working principles and application of computer networks. As an integral part of the course, tutorials and practical assignments enforcing learning will also be given. These assignments provide an early exposure in network application programming and they should be able to complete by using personal computers and school's network facilities.
Topics included:
An overview of computer networks and the Internet
Basic data communications
Application layer
Transport layer
Network layer and routing
Link layer and local area networks
Recommended Textbook
James F. Kurose & Keith W. Ross, Computer networking:
A top-down approach featuring internet, Addison Wesley, 2001
|