Admission Requirements
    Exemptions
    Academic Calendar
    Calendar of Events
    Module Preference Exercise
    SoC Course Schedule
    SoC Module Description
    Student Honours Roll
    Univ Scholars Programme
    NUS Overseas Colleges
    Student Exchange
    Programme
    Undergraduate Research
    Opportunities Programme
    Special Programme in
    Computing
    Advanced Technology
    Attachment Programme
    B.Comp. Dissertation (FYP)

 

  General Scope
 
 

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


Enquiries

Page Maintained by: Ms Toh Mui Kiat
Last Modified on: 28 Februray 2008


© Copyright 2001-08 National University of Singapore. All Rights Reserved