ARTIFICIAL INTELLIGENCE (CS3026)

Introduces some of the key ideas and concepts in artificial intelligence (e.g. knowledge bases, problem solving). Provides an overview of current applications (expert systems and rule-based systems, language understanding, perception, learning). Introduces some of the techniques (matching, goal reduction, tree-pruning, searching, etc.) that are typically used.

OPERATING SYSTEMS (CS3032)

Studies the design and implementation of general-purpose operating systems on digital computers: memory management, virtual memory, storage hierarchy evaluation, multiprogramming, process creation, synchronization, deadlock, message communication, parallel programming constructs, I/O management, and file systems. Includes case studies of major operating systems.

EFFICIENT ALGORITHMS (CS3046)

Develops skill in devising combinatorial algorithms and in analyzing their behavior. Starts with a brief introduction on formal systems, automata and Turing machines and continues with a study of algorithms for sorting, searching, string processing, geometry, graphs, numeric, and algebraic applications.

HUMAN-COMPUTER INTERACTION (CS3048)

Introduces theories of human-computer interaction and analyzes human factors related to the design, development, and use of Information Systems. Students will apply these theories with examples of design, implementation, and evaluation of multimedia user interfaces. The subject of this course is inherently interdisciplinary and the students attending the course normally represent several majors.

WEB APPLICATIONS (CS3051)

Introduces web-server-side programming. Students learn the fundamentals of web applications and web servers, security, state management, and dynamic page generation using server-side Java technologies such as Java servlets, Java Server Pages, Java Server Faces and others. Explores database connection, site management and 'helper applications' such as FTP servers and e-mail. CS/CM 1005 is recommended as a prerequisite.

SOFTWARE ENGINEERING (CS3053)

Covers methods and tools associated with the entire software life cycle: requirement management, testing and profiling, deployment, change and configuration management, quality management, project management and security. Special emphases are given to object-oriented software analysis and design as a foundation to Model-driven architecture (MDA). Automated and semi-automated tools that support these procedures will also be examined.

DATABASE APPLICATIONS (CS3068)

Introduces databases from the programmer's perspective. IT and CS students have common lectures but different projects. IT students learn the fundamentals of database design, SQL, and how to integrate a database into applications. CS students learn the fundamentals of database design, application integration, query motors, and space management.

INTERNSHIP (CS3098)

Internship can replace one elective from the ICT curriculum. May be done in France or elsewhere. 1 or 4 Credits. Please contact the Internship Office for more details.

INTERNSHIP (CS3980)