Fall 2021, Fall 2022
Internet Technologies (COSC 2P89):
The course discusses the major principles, algorithms, languages and technologies that underlie web development. Students receive practical hands-on experience through a project.
Programming Languages (COSC 2P05):
This course covers fundamental concepts of programming languages including syntax, semantics, program translation, virtual machines, control, data types, multi-threading, exception handling and abstraction mechanisms. Introduction to programming paradigms including imperative, applicative, logic and object-oriented.
Natural Language Processing (COSC 5P84):
A theoretical and methodological introduction to the computational modelling of natural language, including techniques and algorithms, formalisms, and applications. Fundamental topics underlying current Natural Language Processing technologies in detail, including but not limited to computational morphology, lexical and compositional semantics, syntactic parsing, language modelling, summarization, machine translation, and coreference resolution. Various machine learning techniques showing promising results on many Natural Language Processing benchmarks.
Data Structures and Abstraction (COSC 1P03):
The course is an introduction to data abstraction and information hiding methodologies and the fundamental dynamic data structures of Computer Science: stacks, queues and lists. It continues the discussions of the Java programming language features that support abstraction.