Master's students may take any four graduate courses as long as these are approved by their supervisor. Graduate students in the department may include in their programs relevant courses from other departments within the Division.
The department currently offers the following courses. The actual courses offered each term will be determined by student demand and the availability of faculty.
CSC 502: Digital Topology and Mathematical Morphology (3-3-0)
Digital topology deals with topological properties of digital images. Its concepts and results are used to specify and justify some important image processing algorithms, including algorithms for thinning, boundary extraction, object counting, and contour-filling. Mathematical Morphology is a set-theoretic method of image analysis allowing to extract image components that are useful for representation and description. It can provide boundaries of objects, their skeletons, and their convex hulls. It is also useful for many pre- and post-processing techniques, especially in edge thinning. The goal of this course is to provide a full exposure to these techniques, their mathematical backgrounds, and their different applications.
CSC 505: Automata Theory and Computational Complexity (3-3-0)
Cross-listed with CSC 405. The course will address finite-state machines, context-free languages and pushdown automata, computability. A systematic study of the known relations between the most important resource bounded complexity classes, reductions, separation results and translation techniques is also included. Students are expected to prepare a research paper during the course.
CSC 506: Parallel Models and Algorithms (3-3-0)
This course is an introduction to the design and analysis of parallel algorithms and also to the various models of parallel computation. Typical topics include: parallel algorithms for various problems such as basic arithmetic, sorting, searching, selection, graph theory, matrix computations, combinatorial enumeration, optimization, computational geometry, and numerical analysis; parallel computational models and their properties; complexity classes; the parallel computation thesis.
CSC 509: Pattern Recognition (3-3-0)
This course addresses the statistical pattern classification theory and techniques. The material presented is concerned with discrimination and classification in the context of computer vision applications. The course topics include Bayesian decision theory, maximum likelihood estimation, nonparametric techniques, stochastic methods and unsupervised clustering.
CSC 510: Model-Based Testing of Reactive Systems (3-3-0)
Testing is the primary hardware and software verification technique used by industry today. Usually, it is ad hoc, error prone, and very expensive. In recent years, however, many attempts have been made to develop more sophisticated, formal testing methods. The goal of this course is to provide an in-depth exposure of this emerging area. Students are expected to participate in the presentation of the lecture material and perform independent research.
CSC 512: Mathematical Models in Image Processing (3-3-0)
Cross-listed with CSC 412. Image processing is a rapidly growing field. As such, it requires and necessitates a number of mathematical models and domains to achieve efficient processing algorithms. Designing a successful processing technique invariably relies on having a successful model for images themselves. The mathematical techniques needed could range from Partial differential equations, Differential geometry, Morse theory, Topology, Algebraic topology, Wavelets, Statistical techniques, Calculus of variations, Numerical methods, Graph theory, and Optimization. The objective of this course is to discuss in depth a number of selected mathematical topics (and their use in image processing) that are of interest to the students at the moment the course is given.
CSC 513: Image Analysis (3-3-0)
Cross-listed with CSC 413. Image analysis is concerned with the development of machine algorithms in order mimic the biological organism's ability to see and understand images and videos. The course content include: camera models and calibration, image enhancement, features extraction and representation, shape from shading, stereo and texture, optical flow, motion analysis, high level vision and case studies.
CSC 514: Computer Networks and Distributed Algorithms (3-3-0)
Cross-listed with CSC 414. The course presents computer networks at a functional level, with strong emphasis on programming distributed applications over a network. Discussion will be based on open networking and application standards such as the TCP/IP protocol suite and the Portable Operating System Interface (POSIX). The concept of distributed algorithms together with the associated challenges and examples are then presented. Programming distributed applications (in C or C++) is an integral part of the course. Students are expected to work on a large, distributed, and practically meaningful application as part of the course.
CSC 515: Concurrent and Real-Time Systems (3-3-0)
Concurrent systems are complicated; they consist of many components which may execute in parallel, and the complexity arises from the multitude of combinations in which they interact. Concurrency by its very nature introduces phenomena not present in sequential systems, such as deadlock and livelock. This course provides an introduction to an algebraic language (such as CSP) for specification, analysis, and verification of concurrent and real-time systems. It then goes and presents the use of such a language as a formal method for concurrency at different stages in the development process.
CSC 516: Volumetric Image Analysis and Visualization (3-3-0)
Digital volumetric images are stacks of two dimensional image slices produced for instance by a tomographic scanner. The goal of this course is to study the different techniques and algorithms for the analysis of volumetric images including a discussion about some sources of volumetric images, especially those occurring in medical imaging with different modalities (Radiology, Computed Tomography, Magnetic Resonance Imaging, Nuclear Medicine, Ultrasound, Positron Emission Tomography). The course will also address the different techniques used to display and visualize volumetric images including volume slicing, surface rendering, and volume rendering.
CSC 517: Database Software Design (3-3-0)
Cross-listed with CSC 407. This course covers how one can implement a Database Management system. Major topics are Storage management, Query processing, and Transaction management. As a basic assumption, data will not all fit in main memory, so algorithms and data structures appropriate for effective disk storage and quick access must be used. For example, one may use index structures such as B-trees or hash tables. We cover parsing of queries and optimizing of query plans. Finally, we cover durability of transactions using logging, and concurrency control for isolation of transactions. Additional topics in distributed databases are also presented. Students are expected to prepare a research paper during the course, or pursue a larger applied project.
CSC 519: Special Topics in Computer Science (3-3-0)
Cross-listed with CSC 419. The course will present topics of current interest in Computer Science. The course content varies reflecting the interests of the faculty. Students are expected to participate in the presentation of the lecture material and engage in independent research.
CSC 596: Research Topics in Computer Science (3-3-0)
This course provides an introduction to the primary and secondary sources of information in the computing science literature. Faculty discuss their own research objectives and present an overview of research issues in the major subject areas of Computer Science. Students are required to submit and present a paper on a topic that relates to their research.
CSC 597: Graduate Seminar (6-0-0)
Students are expected to participate in the departmental seminars and give at a minimum two presentations (one outlining their thesis proposal, and another one about their thesis work). All Master's students are normally expected to enroll in this course in their first year in the program. Students will not receive credit for both this course and CSC 598 at the same time.
CSC 598: Graduate Seminar (6-0-0)
Students are expected to participate in the departmental seminars and give at a minimum two presentations (one outlining their thesis proposal, and another one about their thesis work). All Master's students are normally expected to enroll in this course in their second year in the program. Students will not receive credit for both this course and CSC 597 at the same time.
CSC 599: Master's Thesis (21-0-0)