CSIS0259_COMP3259 Principles of Programming Languages [Section 2A] [2014]

Course category2014-15

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.

CSIS0297_COMP3297 Introduction to Software Engineering [Section 1A] [2014]

Course category2014-15

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.

CSIS0250_COMP3250 Design and Analysis of Algorithms [Section 2B] [2014]

Course category2014-15

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; gemometric algorithms; overview of NP-complete problems.

Teacher: Lam Tak Wah

CSIS0250_COMP3250 Design and Analysis of Algorithms [Section 2A] [2014]

Course category2014-15

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 COMP2119 or ELEC1502 or ELEC1503 or ELEC2543
Assessment: 50% continuous assessment, 50% examination

Teacher: Huang Zhiyi

CSIS1119_COMP2119 Introduction to Data Structures and Algorithms [Section 2C] [2014]

Course category2014-15

Arrays, linked lists, trees and graphs; stacks and queues; symbol tables; priority queues, balanced trees; sorting algorithms; complexity analysis.

Teacher: Kao Chi Ming

CSIS1119_COMP2119 Introduction to Data Structures and Algorithms [Section 2B] [2014]

Course category2014-15

Arrays, linked lists, trees and graphs; stacks and queues; symbol tables; priority queues, balanced trees; sorting algorithms; complexity analysis.

Teacher: Kao Chi Ming

CSIS1117_COMP1117 Computer Programming I / Computer Programming [Section 2C] [2014]

Course category2014-15

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.

CSIS1117_COMP1117 Computer Programming I / Computer Programming [Section 1B] [2014]

Course category2014-15

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.

ENGG1111 Computer programming and applications [Section 1A, 2014]

Course category2014-15

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.

CSIS0250 Design and analysis of algorithms [Section 2A, 2014]

Course category2014-15

The course covers various algorithm design techniques, such as divide and conquer, greedy, and dynamic programming. These techniques are applied to design highly non-trivial algorithms from various areas of computer science. The course also covers algorithms for some graph problems, and an overview of NP-complete problems. 

Teacher: Huang Zhiyi

COMP3250 Design and analysis of algorithms [Section 2A, 2014]

Course category2014-15

The course covers various algorithm design techniques, such as divide and conquer, greedy, and dynamic programming. These techniques are applied to design highly non-trivial algorithms from various areas of computer science. The course also covers algorithms for some graph problems, and an overview of NP-complete problems. 

Teacher: Huang Zhiyi