CSIS0329_COMP3329 Computer Game Design and Programming [Section 2A] [2015]

Course category2015-16
Hi, welcome to the course CSIS0329 / COMP3329 Computer Game Design and Programming!
In this course, you will learn various topics in game design. They include: game history and genres, 2D graphics, 3D graphics, game physics, artificial intelligence, audio / visual design, user interface, MMOG (Massively Multiplayer Online Game) design and connectivity.
Teacher: Chim Tat Wing

CSIS0322_COMP3322 Modern Technologies on World Wide Web [Section 1A] [2015]

Course category2015-16

Welcome to COMP3322/CSIS0322. This course is designed to provide you key technologies of the Internet and the World Wide Web, as well as useful practice in developing web-based applications and systems. The course consists primarily of lectures and lab practice. Major topics to be covered include: Internet protocol stack, client-server model, TCP and IP, Internet applications, World Wide Web, HTTP, HTML, XML, style sheets, web programming (PHP, JavaScript, etc.), web services, cloud computing.

Teacher: Wu Chuan

CSIS0259_COMP3259 Principles of Programming Languages [Section 1A] [2015]

Course category2015-16

Welcome to Principles of Programming Languages!

This course covers central concepts in programming languages, language design and implementation, and programming paradigms.The course will have a practical focus, encouraging students to implement a progressively more sophisticated programming language illustrating various concepts and ideas from functional, imperative and object-oriented programming. These concepts include for example static scoping, closures, inheritance, mutable state, and type systems. All such features are widely used by many existing programming languages.

The programming language Haskell, which is a functional language, will be used in for the coursework and will serve as a prime example of a modern, functional language. Haskell is an obvious choice for this class because of its excellent support for declaring the abstract syntax of a programming language and writing various analyses over that syntax.

CSIS2258_COMP3258 Functional Programming [Section 2A] [2015]

Course category2015-16

Welcome to the course CSIS2258 & COMP3258 Functional Programming!


The course teaches the basics of functional programming using the language Haskell. The main goal is introduce students to fundamental programming concepts such as recursion, abstraction, lambda expressions and higher-order functions and data types. The course will also study the mathematical reasoning involved in the design of functional programs and techniques for proving properties about functions so defined. With the adoption of lambda expressions recent versions of Java, C++ or C#, functional programming and related programming techniques are becoming increasingly more relevant even for programmers of languages that are not traditionally viewed as functional. This course is important to introduce students to such techniques.

CSIS0235_COMP3235 Compiling Techniques [Section 1A] [2015]

Course category2015-16

- Lexical analysis: finite-state machine; table-driven scanners.
- Symbol table management: hashing; block-structured symbol tables.
- Parsing techniques: top-down methods including recursive descent, LL(1); bottom-up methods including LR(1), SLR(1), LALR(1); automatic parser generators (e.g. YACC).
- Error detection; error recovery; error diagnostics.
- Semantic processing.
- Run-time memory management: activation records; stack-based storage management; heap storage; dynamic allocation techniques.
- Optimization; code generation.

CSIS0396_COMP2396 Object-oriented Programming and Java [Section 1A] [2015]

Course category2015-16

Hi, welcome to the course CSIS0396A / COMP2396A Object-oriented Programming and Java!


After taking this course, you will be able to:
1) understand better the object-oriented approach in programming. Students should be able to analyze and design a computer program to solve real world problems based on object-oriented principles
2) write computer programs to solve real world problems in Java
3) learn and appreciate the importance and merits of proper comments in source code and API documentations
4) write simple GUI interfaces for a computer program to interact with users, and to understand the event-based GUI handling principles

Teacher: Chim Tat Wing