Before being admitted and while filling the graduate application, students applying to the MS program should pick the option(s) they want i.e. thesis-option, project-option, and/or course-based option (students can apply to multiple options). The department can then accept or reject the applicant in one or more options. Students who pick the thesis option will be eligible for GA.
The Admission requirements to the course-based MS degree are identical to those of the thesis/project MS degree, mainly:
Online Graduate Application.
In addition to the university requirements for graduate study in the Faculty of Arts and Sciences, students must complete 21 credits and a thesis. The student must take 9 credits in Theory (CMPS 356), Systems (CMPS 372 or CMPS 374), and Software (CMPS 363). The remaining 12 credits are normally CMPS courses numbered 300 and above to be taken in coordination with the student’s advisor.
In addition to the university requirements for graduate study in the Faculty of Arts and Sciences, students must complete 21 credits and a project. The student must take 9 credits in Theory (CMPS 356), Systems (CMPS 372 or CMPS 374), and Software (CMPS 363). The remaining 18 credits for the project option are normally CMPS courses numbered 300 and above to be taken in coordination with the student’s advisor.
In addition to the university requirements for graduate study in the Faculty of Arts and Sciences, students must complete 21 credits. The student must take 9 credits in Theory (CMPS 356), Systems (CMPS 372 or CMPS 374), and Software (CMPS 363). The remaining credits are normally CMPS courses numbered 300 and above to be taken in coordination with the student’s advisor.
CMPS 350 Discrete Models for Differential Equations 3.1; 3 cr.
syllabus A detailed study of methods and tools used in deriving discrete algebraic systems of equations for ordinary and partial differential equations: Finite Difference and Finite Element discretization procedures; generation and decomposition of sparse matrices, finite-precision arithmetic, illconditioning and pre-conditioning, Scalar, vector and parallelized versions of the algorithms. The course includes tutorial “immersion” sessions in which students become acquainted with state-of-the-art scientific software tools on standard computational platforms. Prerequisites: linear algebra and the equivalent of MATH/CMPS 251 (which can be taken concurrently) or consent of the instructor. Same as MATH 350. Annually.
CMPS 351 Optimization and Nonlinear Problems 3.1; 3 cr.
syllabus A study of practical methods for formulating and solving numerical optimization problems that arise in science, engineering, and business applications. Newton’s method for nonlinear equations and unconstrained optimization. Simplex and interior-point methods for linear programming. Equality and inequality-constrained optimization. Sequential Quadratic Programming. Emphasis is on algorithmic description and analysis. The course includes an implementation component where students develop software and use state-of-the-art numerical libraries. Same as MATH 351. Annually.
CMPS 354 The Finite Element Method 3.0; 3 cr.
syllabus A course that presents the theoretical foundations of the finite element method and some of its applications to partial differential equations. Topics include Sobolev spaces, existence and uniqueness of weak solutions and the Lax-Milgram lemma, regularity of weak solutions and a priori estimates, the Galerkin method, piecewise polynomial approximations, approximating solutions of boundary value problems for elliptic equations, and initial value problems for parabolic and hyperbolic equations. Biannially.
CMPS 356 Design and Analysis of Algorithms 3.0; 3 cr.
syllabus A course that studies advanced data structures and algorithms, with an emphasis on the design of algorithms. Topics include advanced graph and search algorithms, dynamic programming, amortized analysis, parallelism, greedy and approximate algorithms, string and pattern matching, computational geometry, and an introduction to the class of NP-complete problems. Annually. CMPS 358 Introduction to Symbolic Computing 3.0; 3 cr. Introductory topics in computer algebra and algorithmic number theory that include Fast multiplication of polynomials and integers, Fast Fourier transforms, primality testing, and integers factorization. Applications to cryptography and pseudo-random number generation. Linear algebra and polynomial factorization over finite fields. Applications to error-correcting codes. Introduction to Grobner bases. Same as MATH 358. Annually.
CMPS 360 Special Topics in Computational Science 3.0; 3 cr.A course on selected topics in computational science, which change according to the interests of visiting faculty, instructors, and students. Selected topics cover state-of-the-art tools and applications in computational science. Prerequisite: Consent of instructor. Same as MATH 360. Annually.
CMPS 363 Advanced Software Engineering 3.0; 3 cr.
syllabus A course on state of the art software engineering for large distributed and concurrent systems. Fundamental principles and concepts for specifying, designing, analyzing, implementing, and testing such systems. Concurrent object oriented paradigms. Design patterns. Use of tools. Documentation using both formal and informal descriptions. Students will develop at least one large software system as part of the course. Annually.
CMPS 368 Programming Language Design 3.0; 3 cr.
syllabus A course that studies unconventional and modern concepts of programming languages. Topics include concepts of exception handling, higher order functions and recursion, concurrent programming, mutual exclusion and synchronization, message passing, monitors, and support for concurrency control. Annually.
CMPS 372 Advanced Operating Systems 3.0; 3 cr.
syllabus A course that discusses advanced topics in OS with an exposure to distributed systems. Topics include virtual memory management, synchronization and communication, protection and security, operating system extension techniques, distributed and parallel systems, and modification of an existing operating system. Annually.
CMPS 373 Parallel Computing 3.0; 3 cr.
syllabus A course that discusses the design, analysis, and implementation of algorithms for parallel computers. Topics include selection, merging, sorting, searching, matrix computations, numerical problems, and fast Fourier transforms. Students develop skills in designing parallel algorithms and analyzing their asymptotic running time and memory requirements, and develop medium-sized parallel codes using modern languages and libraries. Annually.
CMPS 374 Compiler Construction 3.0; 3 cr.
syllabus Same as CMPS 274. Graduate students taking the course are expected to do extra reading, a term paper and/or an additional project. Annually. CMPS 377 Internals of Database Management Systems 3.0; 3 cr. Same as CMPS 288. Graduate students taking the course are assigned extra work in the form of outside reading, a term paper and/or an additional project. Prerequisite: CMPS 277 or graduate standing. Annually.
CMPS 384 Advanced Computer Networks 3.0; 3 cr.
syllabus This course examines advanced topics in computer networks such as routing on the Internet, IP multicasting, quality of service, Internet telephony, IPv6, MultiProtocol Label switching (MPLS), network performance, network security, overlay networks, etc. The course covers also the architectures and main components of wireless local area networks (IEEE 802.11), Mobile IP Networks, Mobile Ad hoc Networks (MANETS), and WiMax networks (as defined in IEEE 802.16 standard). Some other topics may be covered through students’ research projects, presentations, and assigned reading. The course starts by presenting a quick overview of the major protocols of TCP/IP stack. Annually.
CMPS 385 Advanced Computer Graphics 3.0; 3 cr.
syllabus A course that presents the basic concepts of 3D computer graphics. Topics include 3D object representations and manipulations, 3D transformation and viewing, hidden-surface and hidden-line removal, shading models, rendering, texture mapping, ray-tracing, and animation techniques. Annually.
CMPS 386 Computer-Aided Geometric Design 3.0; 3 cr.
syllabus Same as CMPS 286. Graduate students taking the course are assigned extra work in the form of outside reading, a term paper and/or an additional project. Annually.
CMPS 388 Computer Animation 3.0; 3 cr.
syllabus A course that introduces the basic techniques and algorithms in Computer Animation. Topics include: history and applications of computer animation, modeling, interpolation, key framing, morphing, deformation, forward and inverse kinematics, particle systems, and rigid body dynamics. Annually.
CMPS 393 Building AI Systems 3.0; 3 cr.
syllabus Key algorithms for building AI systems; algorithms for searching, backward and forward chaining, production-rule systems, truth maintenance, reasoning with uncertainty, and constraint satisfaction; application areas including diagnosis, temporal reasoning, and planning. Annually.
CMPS 395A/B Comprehensive Exam 0 cr.
Prerequisite: Consent of advisor.
CMPS 396 Special Topics in Computer Science 1 - 3 cr.
syllabus A course in which topics may vary each semester and are expected to be in areas of active research. Students may register for this course twice (or more) on condition that course content differs. Prerequisite: Consent of instructor. Annually.
CMPS 397 Computer Science Tutorial 1 - 3 cr.
syllabus CMPS 398 MS Project 3 cr. CMPS 399 MS Thesis 9 cr.