Course Descriptions

ENGG1002. Computer programming and applications (6 credits)

This course covers both the basic and advanced features of the C/C++ programming languages, including syntax, identifiers, data types, control statements, functions, arrays, file access, objects and classes, class string, structures and pointers. It introduces programming techniques such as recursion, linked lists and dynamic data structures. The concept and skills of program design, implementation and debugging, with emphasis on problem-solving, will also be covered.

Target students are those who wish to complete the programming course in a more intensive mode in 1 semester. Students with some programming knowledge are encouraged to take this course.

Assessment: 50% continuous assessment, 50% examination

ENGG1003. Mathematics I (6 credits)

Linear algebra, advanced calculus, vector analysis, ordinary differential equations, Laplace transforms.
Prerequisite : HKALE Pure Mathematics

Assessment: 10% continuous assessment, 90% examination

ENGG1004. Mathematics IA (3 credits)

Linear algebra, advanced calculus, ordinary differential equations.

Assessment: 10% continuous assessment, 90% examination

ENGG1007. Foundations of computer science (6 credits)

This course provides students a solid background on discrete mathematics and structures pertinent to computer science. Topics include logic; set theory; mathematical reasoning; counting techniques; discrete probability; trees, graphs, and related algorithms; modeling computation.

Assessment: 50% continuous assessment, 50% examination

CAES1503. English for computer science (3 credits)
(course code revised from ECEN1503 from 2010-11)

The course is designed to enable 1st year computer science majors to acquire technical and professional communication skills. The focus is on developing students’ understanding and use of language in spoken and written communication. Topics include: using appropriate language in professional writings; conducting effective interviews; making appropriate grammatical and lexical choices; writing effectively with a focus on content, form and language. Students engage in both individual and group work to write a professional resume and business letters, conduct workplace interviews and write a technical proposal.

Assessment: 100% continuous assessment

ECEN1504. Professional and technical communication for computer science (3 credits)

The course is designed to enable computer science majors to acquire professional and technical communication skills. The focus is on understanding and using professional and technical language. Topics include: producing and asking questions to elicit information; conducting effective interviews; organising and analysing information; writing effective technical reports with a focus on coherence and cohesion; and increasing technical vocabulary. Students are required to design and conduct authentic oral interviews and, produce written technical reports and vocabulary journals.

Assessment: 100% continuous assessment

CAES1515. Professional and technical oral communication for engineers (3 credits)
(course code revised from ECEN1515 from 2010-11)

CENG1001. Practical Chinese language course for engineering students (3 credits)

Refer to the University Language Enhancement Course in the syllabus for the degree of BEng for details.

CSIS1117. Computer programming I (6 credits)

This course covers both the basic and advanced features of the C/C++ programming languages, including syntax, identifiers, data types, control statements, functions, arrays, file access, objects and classes, class string, structures and pointers. It introduces programming techniques such as recursion, linked lists and dynamic data structures. The concept and skills of program design, implementation and debugging, with emphasis on problem-solving, will also be covered.

Assessment: 50% continuous assessment, 50% examination

CSIS1118. Foundations of computer science (6 credits)
(renamed from Mathematical foundations of computer science from 2009-10)

OR

CSIS1121. Discrete Mathematics (6 credits)

This course provides students a solid background on discrete mathematics and structures pertinent to computer science. Topics include logic; set theory; mathematical reasoning; counting techniques; discrete probability; trees, graphs, and related algorithms; modeling computation.

Assessment: 50% continuous assessment, 50% examination

CSIS1119. Introduction to data structures and algorithms (6 credits)

Arrays, linked lists, trees and graphs; stacks and queues; symbol tables; priority queues, balanced trees; sorting algorithms; complexity analysis.
Prerequisite: CSIS1117 or ELEC1501 or ENGG1002
Pre-/Co-requisite: CSIS1122

Assessment: 40% continuous assessment, 60% examination

CSIS1120. Computer organization (6 credits)
(renamed from Machine organization and assembly language programming from 2010-11)

Introduction to computer organization and architecture; data representations; instruction sets; machine and assembly languages; basic logic design and integrated devices; the central processing unit and its control; memory and caches; I/O and storage systems; computer arithmetic.
Co-requisite: CSIS1117 or ELEC1501 or ENGG1002

Assessment: 50% continuous assessment, 50% examination

CSIS1122. Computer programming II (6 credits) [for intakes of 2006 and thereafter]

This is the second programming course following ENGG1002/CSIS1117. The goal of this course is to strengthen students' programming skills, in particular, on implementing basic data structures and algorithms. Students will also learn various tools for developing programs in the UNIX/Linux environment.
Prerequisite: CSIS1117 or ELEC1501 or ENGG1002

Assessment: 50% continuous assessment, 50% examination

CSIS1410. Industrial training (3 credits) [for intakes of 2009 and before]

OR

CSIS1412. Industrial training (6 credits) [for intakes of 2010 and thereafter]

Industrial Training requires students to spend a minimum of four weeks employed, full-time, as IT interns or trainees. During this period, they are engaged in work of direct relevance to their programme of study. The training provides students with practical, real-world experience and represents a valuable complement to their academic training.

Assessment: 100% continuous assessment

CSIS1411. Workshop training (3 credits) [for intakes of 2009 and before]

This is a compulsory course taken after completing the first year of studies. Workshop Training is structured as a series of modules in which students gain direct, hands-on experience of various industry-standard software tools and technologies. As well as providing an exposure to current "tools of the trade", the course also emphasizes the application of engineering principles to the development and use of software systems.

Assessment: 100% continuous assessment

CSIS0218. Discrete event simulation (6 credits)

Topics include: Monte Carlo methods, discrete event simulation, elements of simulation models, data collection and analysis, simulation language for modelling, random number generation, queuing models, and output analysis.
Prerequisite: CSIS1119 or CSIS1122 or ELEC1501 or ELEC1502 or ELEC1503

Assessment: 40% continuous assessment, 60% examination

CSIS0230. Principles of operating systems (6 credits)

Operating system structures, process and thread, CPU scheduling, process synchronization, deadlocks, memory management, file systems, I/O systems and device driver, mass-storage structure and disk scheduling, case studies.
Prerequisites: CSIS1119 (for intakes of 2007 and before) or CSIS1122 (for intakes of 2008 and thereafter); and CSIS1120 or ELEC1401

Assessment: 50% continuous assessment, 50% examination

CSIS0231. Computer architecture (6 credits)

Introduction to computer design process; performance and cost analysis; instruction set design; data-path and controller design; pipelining; memory system; I/O design; introduction to advanced topics.
Prerequisite: CSIS1120

Assessment: 40% continuous assessment, 60% examination

CSIS0234. Computer and communication networks (6 credits)

Network structure and architecture; reference models; stop and wait protocol; sliding window protocols; character and bit oriented protocols; virtual circuits and datagrams; routing; flow control; congestion control; local area networks; issues and principles of network interconnection; transport protocols and application layer; and examples of network protocols.
Prerequisite: CSIS1120 or ELEC1401

Assessment: 50% continuous assessment, 50% examination

CSIS0235. Compiling techniques (6 credits)

Lexical analysis; symbol table management; parsing techniques; error detection; error recovery; error diagnostics; run-time memory management; optimization; code generation.
Prerequisite: CSIS0259

Assessment: 50% continuous assessment, 50% examination

CSIS0247. Topics in computer systems (6 credits)

Topics in computer hardware and/or software systems that are of current interest.

Assessment: 50% continuous assessment, 50% examination

CSIS0250. Design and analysis of algorithms (6 credits)

The course studies various algorithm design techniques, such as divide and conquer, and dynamic programming. These techniques are applied to design highly non-trivial algorithms from various areas of computer science. Topics include: advanced data structures; graph algorithms; searching algorithms; geometric algorithms; overview of NP-complete problems.
Prerequisite: CSIS1119 or ELEC1501 or ELEC1502 or ELEC1503

Assessment: 50% continuous assessment, 50% examination

CSIS0259. Principles of programming languages (6 credits)

Syntax and semantics specification; data types; data control and memory management; expressions, precedence and associativity of operators; control structures; comparative study of existing programming languages; advanced topics such as polymorphism, programming paradigms, exception handling and concurrency.
Prerequisites: CSIS1119; and CSIS1120 or ELEC1401

Assessment: 40% continuous assessment, 60% examination

CSIS0262. Topics in computer applications (6 credits)

Some specialized application areas of computers.

Assessment: 50% continuous assessment, 50% examination

CSIS0270. Artificial intelligence (6 credits)

This is an introduction course on the subject of artificial intelligence. Topics include: intelligent agents; search techniques for problem solving; knowledge representation; logical inference; reasoning under uncertainty; statistical models and machine learning. This course may not be taken with BUSI0088.
Prerequisite: CSIS1119 or CSIS1122

Assessment: 50% continuous assessment, 50% examination

CSIS0271. Computer graphics (6 credits)

Overview of graphics hardware, basic drawing algorithms, 2-D transformations, windowing and clipping, interactive input devices, curves and surfaces, 3-D transformations and viewing, hidden-surface and hidden-line removal, shading and colour models, modelling, illumination models, image synthesis, computer animation.
Prerequisite: CSIS1119 or CSIS1122

Assessment: 50% continuous assessment, 50% examination

CSIS0278. Introduction to database management systems (6 credits)

This course studies the principles, design, administration, and implementation of database management systems. Topics include: entity-relationship model, relational model, relational algebra, database design and normalization, database query languages, indexing schemes, integrity, and concurrency control. This course may not be taken with BUSI0052.
Prerequisite: CSIS1119 or ELEC1501 or ELEC1502 or ELEC1503

Assessment: 50% continuous assessment, 50% examination

CSIS0293. Introduction to theory of computation (6 credits)

This course focuses on three traditional areas of the theory of computation: automata, computability and complexity. Topics include finite state automata and regular languages; pushdown automata and context free languages; Turing machines and random access machines; time complexity; space complexity; intractable problems; reduction and completeness; relationship among complexity classes; approximation algorithms and nonapproximability.
Prerequisite: CSIS1119

Assessment: 50% continuous assessment, 50% examination

CSIS0297. Introduction to software engineering (6 credits)

This course introduces the fundamental principles and methodologies of software engineering. It covers the software process and methods and tools employed in the development of modern systems. The use of CASE tools and the UML are emphasized. The course includes a team-based project in which students apply their new knowledge to a full development lifecycle, including maintenance.
Prerequisite: CSIS1117 or CSIS0396 or ELEC1501 (for intakes of 2005 or before)
Prerequisite: CSIS1122 (for intakes of 2006 and thereafter)

Assessment: 50% continuous assessment, 50% examination

CSIS0311. Legal aspects of computing (6 credits)

To introduce students to the laws affecting computing and the legal issues arising from the technology.  Contents include: the legal system of Hong Kong; copyright protection for computer programs and databases; intellectual property issues on the Internet; data privacy; computer-related crimes. This course may not be taken with LLAW3065.

Assessment: 30% continuous assessment, 70% examination

CSIS0314. Pattern classification and machine learning (6 credits)

This is an introduction course on the subjects of statistical pattern classification and machine learning. Topics include: introduction to pattern classification problems; performance evaluation; Bayesian decision theory; feature extraction techniques; parametric models; maximum-likelihood parameter estimation; maximum-discriminant decision rules; minimum classification error training; clustering techniques; decision trees and their learning techniques.
Prerequisite: CSIS1119 or ELEC1501 or ELEC1502 or ELEC1503

Assessment: 50% continuous assessment, 50% examination

CSIS0315. Multimedia computing and applications (6 credits)

This course introduces various aspects of the interdisciplinary and multidisciplinary field of multimedia computing. Current developments of technologies and techniques in multimedia will also be covered. Applications of multimedia techniques are also highlighted through a media production course project. Major topics include: what are media, audio, acoustics and psychoacoustics, MIDI, basic compression techniques, video compression techniques, standards, and current multimedia technologies. This course may not be taken with BUSI0068.
Prerequisite: CSIS1119

Assessment: 50% continuous assessment, 50% examination

CSIS0317. Computer vision (6 credits)

This course introduces the principles, mathematical models and applications of computer vision. Topics include: image processing techniques, feature extraction techniques, imaging models and camera calibration techniques, stereo vision, and motion analysis.
Prerequisite: CSIS1119 or ELEC1501 or ELEC1502 or ELEC1503

Assessment: 50% continuous assessment, 50% examination

CSIS0320. Electronic commerce technology (6 credits)

This course aims to help students to understand the technical and managerial challenges they will face as electronic commerce becomes a new locus of economics activities. Topics include Internet and WWW technology, information security technologies, public-key crypto-systems, public-key infrastructure, electronic payment systems, and electronic commerce activities in different sectors.
Prerequisite: CSIS0278

Assessment: 30% continuous assessment, 70% examination

CSIS0322. Internet and the World Wide Web (6 credits)

Introduction and history; networks, internetworking, and network protocols; TCP/IP and related protocols; client-server model and programming; distributed applications; Domain Name System; Internet applications: TELNET, mail, FTP, etc.; Internet security; intranet and extranet; virtual private networks; World Wide Web; Web addressing; HTTP; HTML, XML, style sheets, etc.; programming the Web: CGI, Java, JavaScript, etc.; Web servers; Web security; Web searching; push technology; other topics of current interest. This course may not be taken with BUSI0063.
Prerequisite: CSIS1117 or ELEC1501 or ENGG1002

Assessment: 50% continuous assessment, 50% examination

CSIS0323. Advanced database systems (6 credits)

The course will study some advanced topics and techniques in database systems, with a focus on the system and algorithmic aspects. It will also survey the recent development and progress in selected areas. Topics include: query optimization, spatial-spatiotemporal data management, multimedia and time-series data management, information retrieval and XML, data mining.
Prerequisite: CSIS0278

Assessment: 50% continuous assessment, 50% examination

CSIS0324. Topics in theoretical computer science (6 credits)

Topics of current interest in theoretical computer science not covered by other undergraduate courses. Topics may vary from year to year.
Pre/Co-requisite: CSIS0293 or CSIS0250

Assessment: 30% continuous assessment, 70% examination

CSIS0325. Topics in Web technologies (6 credits)

This course presents selected topics that are essential in our understanding and appreciation of the latest advances in technologies related to the World Wide Web. Possible topics include XML, RDF and metadata, style languages, Web graphics and synchronized multimedia, privacy, content selection, accessibility, Web server architecture, mobile access, distributed authoring and versioning, and internationalization.
Prerequisite: CSIS0234 or CSIS0322

Assessment: 50% continuous assessment, 50% examination

CSIS0326. Computational molecular biology (6 credits)

The novel and specialised algorithms needed to solve computational problems related to the vast amounts of data generated by modern molecular biology techniques will be examined in detail.
Prerequisite: CSIS0250 or BIOC2808

Assessment: 40% continuous assessment, 60% examination

CSIS0327. Computer and network security (6 credits)

This course introduces the principles, mechanisms and implementation of computer security and data protection. Knowledge about the attack and defend are included. Topics include notion and terms of information security; introduction to encryption: classic and modern encryption technologies include public-key systems; authentication methods; access control methods; system integrity attacks and defences (e.g. viruses); introduction to network/Internet security; analysis and models of secure systems.
Pre-requisites: CSIS0230 and CSIS0234

Assessment: 30% continuous assessment, 70% examination

CSIS0328. Wireless and mobile computing (6 credits)

This course introduces the basic principles and technologies in various mobile and wireless communication systems. Topics include mobile communication environment; digital modulation; channel coding; medium access technologies; cellular mobile radio systems; wireless LANs; security in wireless systems; internetworking in wireless systems; mobility applications.
Prerequisites: CSIS0234 and CSIS0396

Assessment: 50% continuous assessment, 50% examination

CSIS0329. Computer game design and programming (6 credits)

The course will study various topics in game design. Topics includes: types of game, game platforms, design of game, 3D model and kinematics, rendering techniques, collision detection, project management, AI, UI, sound effects, and networking.
Pre-requisite: CSIS0271

Assessment: 50% continuous assessment, 50% examination

CSIS0351. Advanced algorithm analysis (6 credits)
(renamed from Applied algorithms from 2010-11)

This class introduces advanced mathematical techniques for analyzing the complexity and correctness of algorithms. NP-complete problems are believed to be not solvable in polynomial time and we study how approximation algorithms could give near optimal solutions. In particular, we will see that probability theory gives us a very powerful tool to tackle problems that are otherwise hard to solve.
Prerequisite: CSIS0250; or basic knowledge in probability and algorithms

Assessment: 50% continuous assessment, 50% examination

CSIS0396. Object-oriented programming and Java (6 credits)

Introduction to object-oriented programming; abstract data types and classes; inheritance and polymorphism; object-oriented program design; Java language and its program development environment; user interfaces and GUI programming; collection class and iteration protocol; program documentation.
Prerequisite: CSIS1117 or ELEC1501 or ENGG1002

Assessment: 50% continuous assessment, 50% examination

CSIS0402. System architecture and distributed computing (6 credits)

This course introduces the architecture of modern systems and the concepts and principles of distributed computing. Topics include: client-server computing, multi-tier architectures, data/object persistence, parallel server systems, naming services, transaction processing, middleware and messaging, component technologies, and web services/APIs.
Prerequisite: CSIS0396

Assessment: 50% continuous assessment, 50% examination

CSIS0403. Implementation, testing and maintenance of software systems (6 credits)

This course examines the theory and practice of software implementation, testing and maintenance. Topics in implementation include: detailed design issues and implementation strategies; coding style and standards; the review process; individual software process and metrics; and reuse. Also examined are the implementation aspects of contemporary approaches such as generic programming, design patterns, and design by contract. Testing covers unit and component testing; integration testing; system, performance and acceptance testing; and test documentation. Testing techniques for OO software are examined in detail. Topics in maintenance include maintenance techniques, tools and metrics; software rejuvenation; and refactoring.
Pre/Co-requisite: CSIS00396

Assessment: 50% continuous assessment, 50% examination

CSIS0404. Software quality and project management (6 credits)

This course covers software quality and project management. Topics in software quality include software quality assurance; software quality metrics; review; inspection and audits. Topics in project management include project planning and scheduling; project control; risk analysis; planning and monitoring; process management and process improvement; configuration management and control; software acquisition; contract briefing, negotiation and management. This course may not be taken with BUSI0060 or BUSI0061.
Prerequisite: CSIS0297

Assessment: 40% continuous assessment, 60% examination

CSIS0406. Real-time and embedded systems (6 credits)

Topics include: specification of real-time software requirements; design, implementation, and evaluation of real-time software; analysis and verification of real-time computing system performance.
Prerequisite: CSIS0230

Assessment: 50% continuous assessment, 50% examination

CSIS0407. Scientific computing (6 credits)

This course provides an overview and covers the fundamentals of scientific and numerical computing. Topics include numerical analysis and computation, symbolic computation, scientific visualization, architectures for scientific computing, and applications of scientific computing.
Prerequisites: CSIS1117 or ELEC1501 or ENGG1002; and CSIS1118 or CSIS1121 or ENGG1007

Assessment: 50% continuous assessment, 50% examination

CSIS0412. Research internship (6 credits)

The student will participate in a research project under the guidance and supervision of a teacher over a prescribed period of time; the results will be presented in an oral and a written report; the work involved must not overlap with that for the final-year project or any other major project.

Assessment: 100% continuous assessment

CSIS0801. Final year project (12 credits)

Student individuals or groups, during the final year of their studies, undertake full end-to-end development of a substantial project, taking it from initial concept through to final delivery. Topics range from applied software development to assignments on basic research. In case of a team project, significant contribution is required from each member and students are assessed individually, such that each student is given a separate project title. Strict standards of quality will be enforced throughout the project development.

Assessment: 100% continuous assessment

CSIS0803. System integration project (6 credits)

This is a team project involving development and integration of software components. The objective is to put the concepts and theories covered in the core courses into practice. The output will be a distributed software system based on well-defined requirements. Software tools will be used and system programming is a compulsory part of the project.

Assessment: 100% continuous assessment

ELEC2802. Engineering organization and management (3 credits)

Management concepts, decision making processes, project management, leadership, management control, marketing.

Assessment: 30% continuous assessment, 70% examination

ELEC2803. Engineering and society (3 credits)

Interaction between engineers and society; impact of technologies on society; environmental and safety issues; professional conduct and responsibility; contract law; law of tort; professional negligence and intellectual property law.

Assessment: 100% continuous assessment

ELEC2804. Engineering economics and finance (3 credits)

Principles of economics, macroeconomics; microeconomics, introduction to financial management; accounting concepts and financial statements; cost and profit.

Assessment: 30% continuous assessment, 70% examination

ELEC2814. Engineering management and society (6 credits)

Professional conduct and social responsibility, sustainability and safety issues, technology and environment, ethics at work; Engineering organization and project, management functions and managerial skills, decision making processes, contingency and crisis management, leadership, corporate culture and philanthropy. Contract, intellectual property, tort, professional negligence and related law issues.

Assessment: 50% continuous assessment, 50% examination

Candidates may take up to two MSc(CompSc) courses as electives, subject to the approval of the Head of Department. An MSc(CompSc) course is equivalent to a 3 credit-unit level-2 course.

Last updated: July 28, 2011

top