Digital Marketing

This course covers a broad range of topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and scientific and other applications of parallel and distributed computing. In lecture/discussion sections, students examine both classic results as well as recent research in the field.

The lab portion of the course includes programming projects using different programming paradigms, and students will have the opportunity to examine one course topic in depth through an open-ended project of their own choosing. Course topics may include: multi-core, SMP, MMP, client-server, clusters, clouds, grids, peer-to-peer systems, GPU computing, scheduling, scalability, resource discovery and allocation, fault tolerance, security, parallel I/0, sockets, threads, message passing, MPI, RPC, distributed shared memory, data parallel languages, MapReduce, parallel debugging, and applications of parallel and distributed computing.

Class will be run as a combination of lecture and seminar-style discussion. During the discussion based classes, students will read research papers prior to the class meeting that we will discuss in class. During the first part of the course, we will examine different parallel and distributed programming paradigms. During the second part of the course, students will propose and carry out a semester-long research project related to parallel and/or distributed computing. The department's gigabit cluster, two eight processor workstations, as well as the CS lab machines, are available for course projects. Previous course work in Operating Systems, Networking, Databases, or Architecture is helpful, but not necessary for taking this course. Course Goals

* Analyze and critically discuss research papers both in writing and in class

* Formulate and evaluate a hypothesis by proposing, implementing and testing a project

* Relate one's project to prior research via a review of related literature

* Write a coherent, complete paper describing and evaluating a project

* Orally present a clear and accessible summary of a research work

* Understand the fundamental questions in parallel and distributed computing and analyze different solutions to these questions

* Understand different parallel and distributed programming paradigms and algorithms, and gain practice in implementing and testing solutions using these.

Required Textbook Principles of Parallel Programming, by Calvin Lin, Larry Snyder Addison-Wesley, 2008

SOFTENG 702 - Advanced Human Computer Interaction Overview Human-Computer Interaction (HCI) is concerned with the design, evaluation, and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them. It is an extremely active and broad-ranging research area, with contributions varying from inventive systems that demonstrate new ways of interacting with computers through to the use of formal methods for specifying interface behaviour.

This course investigates current research topics in HCI, with a focus on the methods that are used to evaluate user interfaces. Recent research papers in the area will be reviewed. Students will carry out a small research project in an HCI topic. Their project will be presented in the form of a paper suitable for submission to a research conference. Materials for the course will be made available on

Synopsis This course is intended for honours and graduate students, researchers, and practitioners interested in Human-Computer Interaction. • Major areas will be introduced by the lecturer.

• For each area, students will be assigned readings, and the readings will be discussed in class. Students must submit short written reviews of all assigned readings. • Each student will choose a research topic that involves the following: – Background research on the area.

– The design, implementation, and evaluation of a user interface. – A comprehensive written report. Topics The course will familiarise students with the state and scope of HCI research, with emphasis on the methods used to evaluate user interfaces. Texts There is no official course text, but the following are useful sources.

1. Proceedings of the Annual ACM “CHI” Conferences on Human Factors in Computing Sys- tems. Several of these are available in the Physical Sciences Library. They are also available on the ACM Digital Library

2. Selected readings will be handed out during the course. 3. R. M. Baecker, J. Grudin, W. A. S. Buxton, S. Greenberg. Readings in Human-Computer Interaction: Towards the Year 2000. Morgan-Kaufman, 1995. 4. The |Stat Handbook (Perlman 1986)

COMPSCI 715 - Advanced Computer Graphics

SOFTENG 710 - Studies in Software Engineering 1

SOFTENG 701 - Advanced Software Engineering Development Methods SOFTENG 711 - Studies in Software Engineering 2