This course covers the fundamental concepts of data communication and networking with practical application. Topics include the historical background of networking and the new evolving technologies, telecommunication standards, protocols, equipment, network topologies, communication software, LANs, WANs, the Internet and network operating systems.

This course introduces students to the basic design principles of the modern digital computer through a top-level examination of its architecture. This focuses on the relationship between a computer's hardware, its native instruction set, and the implementation of high-level languages on that machine. This uses a set of assembly language programming exercises to explore and analyze microcomputer architecture.

 This course introduces database management systems and the design and use of database systems. The module starts by considering the key points which characterize the database approach. The module then studies data modeling in some detail and introduces typical database models. In particular the relational database model and the structured query language (SQL) are covered together with the process of normalization for database design.

This course will address discrete event simulation including random number generation, random variate generation, process-oriented simulation, elementary queueing models, network of queues, and applications to performance evaluation of computer systems.

This course bridges the fundamental theories learned from Computer Programming I together with more advance and comprehensive topics in programming such as recursions, arrays, strings and pointers, file processing, and topics on Object Oriented programming like classes, objects, encapsulation, inheritance, and polymorphism. Programs will be implemented using the C++ programming language. Substantial exposure on Math, business, and general problems will be provided.