This course teaches object-oriented programming (OOP) from the ground up. You’ll start with class and object design, then advance to key OOP principles: inheritance, polymorphism, and abstraction. Learn to write reusable, modular code and manage complexity through encapsulation.
The curriculum also covers exception handling, debugging, and testing using modern IDEs, ensuring you can build robust applications. Finally, you’ll get an introduction to GUI design, enabling you to create interactive user interfaces.
By the end, you’ll have the skills to develop well-structured software using OOP best practices.


DayStart TimeEnd TimeRoom
Friday
13:45
15:05
Q-704
Tuesday
12:10
13:30
Q-704
Friday
12:10
13:30
Q-704

This course provides a practical introduction to essential data structures (including stacks, queues, sets, trees, and graphs) and foundational algorithms for sorting, searching, and traversal. You’ll learn how to select and implement the right structure or algorithm for real-world problems, balancing efficiency and functionality.
The course also emphasizes algorithm complexity analysis, teaching you to use Big-O notation to evaluate and compare the performance of different approaches.
Through hands-on exercises using predefined software libraries, you will apply these fundamental concepts in real problem solving.
By the end, you’ll be equipped to choose data structures and algorithms effectively in your programming projects.


DayStart TimeEnd TimeRoom
Monday
18:30
19:50
C-302
Thursday
18:30
19:50
C-302

One of the most critical factors in the success of an idea is effective communication.

This course addresses written communication in different contexts for both Computer Science and Mathematics.

Students will learn to choose the appropriate styles for different audiences (e.g. textbooks, articles/reviews, posters, general public, professional colleagues).
They will be asked to research and report on small practical tasks in bot CS and Math, such as proof, empiric complexity analysis of algorithmic strategies, data analysis and visualization and software documentation, producing well structured and formatted documents. Along the way, they will learn to use mark-up languages (such as LaTeX and markdown) and dedicated software for plotting and graphics editing.


DayStart TimeEnd TimeRoom
Tuesday
10:35
11:55
PL-2
Friday
10:35
11:55
PL-2

In this course we will follow the Agile approach to software engineering. The course will use a SaaS project-oriented approach in order to teach key methodologies such as Behavior and Test Driven Development, Pair Programming, Design Patterns, Tools for Automation, Continuous Integration and others. Among technologies which will be learned are: git, github, linux, ruby, rails and various gems. Attending CS3051 and CS1050 before taking this course is recommended.


DayStart TimeEnd TimeRoom
Monday
13:45
15:05
C-302
Thursday
13:45
15:05
C-302

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.


DayStart TimeEnd TimeRoom
Monday
16:55
18:15
C-302
Thursday
16:55
18:15
C-302
DayStart TimeEnd TimeRoom
Monday
10:35
11:55
C-302
Thursday
10:35
11:55
C-302

This course is a gentle introduction to the field of Computer Science and the fundamental concepts of programming. It starts with a brief history of computing and the basic elements of the computers' architecture.
It focuses on the correct and fluent use of appropriate terminology in CS to describe fundamental concepts and programs.
It has has strong hands-on approach and leads to understanding fundamental concepts such as flow-charts representation of algorithms, conditional statements, iteration, primitive data types, collections and functions.
Students learn to use the documentation of a programming language and understand error messages for debugging. There will be a considerable amount of practical work; students should allow at least eight hours of homework per week for this.


DayStart TimeEnd TimeRoom
Tuesday
09:00
10:20
C-302
Tuesday
10:35
11:55
C-302
Friday
10:35
11:55
C-302

This graduate-level fiction workshop is dedicated to the discussion and critique of student work. Students submit two to three times per semester and compose written critiques in advance of workshop. Student work is supplemented with a range of published writing to deepen our creative practice and expand our sense of what it is possible to do on the page.


DayStart TimeEnd TimeRoom
Monday
13:45
16:40
Q-609

How to capture - and convey - the immediacy of one's own experience? This is the central question explored by this graduate workshop. Students will work on the question of what "personal" means exactly, and how far memoir and autobiography are distinct from fiction. This course explores narrative structure, description, characterisation, dialogue, atmosphere, under- and over-statement, and context. It draws on the experience of AUP's Center for Writers & Translators and its Cahier Series which specialises in personal narrative.


DayStart TimeEnd TimeRoom
Wednesday
09:00
11:55
SD-6

Any text that speaks truth to power and gives voice to the voiceless has affinities with postcolonial studies, if not a claim to being postcolonial. This course will address key concepts in postcolonial studies to interrogate representations of race, gender, colonial capitalism and the environment. Straddling languages, genres, cultures and continents, our texts create a space for hybrid identities. No prerequisites.


DayStart TimeEnd TimeRoom
Tuesday
12:10
13:30
G-207
Friday
12:10
13:30
G-207