Computer Science
About the Program
Master of Science in Computer Science (MSCS): 45.0 quarter credits
Doctor of Philosophy: 90.0 quarter credits
The Department of Computer Science has graduate programs in artificial intelligence, algorithms, computer algebra, graphics, HCI, networks, security, scientific computing, and software engineering. The Department emphasizes both interdisciplinary and applied research and is supported by major federal research grants from the National Science Foundation, Department of Defense, Department of Energy, and the National Institute of Standards and Technology, as well as by private sources.
The Master of Science in Computer Science
The Master of Science in Computer Science is designed to provide breadth of understanding in the core topics of computer science, in-depth advanced material, and a range of topics courses in the research areas of the faculty. A balance of theory and practice is presented preparing students to perform cutting edge research as well as training students to become practicing computational scientists, computer specialists or software engineers in business, industry or government. A thesis option is available to prepare students for doctoral studies or other research-oriented career paths.
The Doctorate in Computer Science
Students enrolled in the PhD program are expected to acquire broad knowledge in all areas of computer science and an overall perspective of the field, its structure, and its problems. They are expected to study at least one subfield in considerable depth, and to make substantial contributions to that subfield through creative research and serious scholarship. The program is designed for students to advance their basic understanding of information processes and to contribute to the creation and consolidation of knowledge in computer science. In addition, they should be able to see and understand new problems between different areas within computer science, as well as between computer science and other fields, and to find and implement imaginative solutions.
For more information, visit the Department of Computer Science web site.
Admission Requirements
Applicants should hold a BS degree in computer science or some related technical area and meet the graduate admission standards for Drexel University. Students without a bachelor’s degree in computer science may be admitted to the computer science program only after completing a set of prerequisite courses.
All applicants must take the Graduate Record Exam (GRE). All international students must have an acceptable score on the Test of English as a Foreign Language (TOEFL) exam.
For more information regarding international applicant requirements, view the International Students Admissions Information page.
Applicants for post-master’s status must show potential for further study by having maintained at least a 3.0 average in their master’s level studies.
Applications are evaluated by the department Admissions Committee and admission is determined by the department’s Graduate Advisor. The Admissions Committee evaluates all credentials submitted by applicants to determine a student’s ability and potential to succeed in graduate study. In addition, the committee is interested in the applicant’s potential to contribute to his/her program of study and to the University community as a whole.
Application forms may be obtained from the Drexel Admissions web site.
Master of Science in Computer Science
General Requirements
Students must complete a minimum of 45.0 graduate credits for the MS degree. All students are required to submit a plan of study form with the Graduate Advisor at the beginning of their studies. Significant changes to the plan of study should be discussed with the Graduate Advisor.
Precore Classes
Precore classes are graduate level courses, but are not considered graduate level CS courses. These courses only count towards the degree requirement listed below for "three additional graduate level courses" with approval from the Graduate Coordinator. Precore courses are intended for students without adequate CS background. The material in these courses is considered prerequisite knowledge for all other graduate CS courses.
Degree Requirements
| Required Courses | ||
| CS 521 | Data Structures and Algorithms I | 3.0 |
| CS 525 | Theory of Computation | 3.0 |
| CS 550 | Programming Languages | 3.0 |
| Flexible Core | 9.0 | |
| Select three of the following courses: | ||
| Introduction to Artificial Intelligence | ||
| Data Structures and Algorithms II | ||
| Developing User Interfaces | ||
| Computer Graphics | ||
| High Performance Computing | ||
| Operating Systems | ||
| Computer Networks | ||
| Applied Symbolic Computation | ||
| Dependable Software Systems | ||
| Introduction to Computer Vision | ||
| Breadth Requirements | 9.0 | |
| In addition, all students are required to take an additional three (3) breadth requirement electives, developing background knowledge in an area of particular interest. These courses are organized into the following seven areas. | ||
| Students must take courses from at least three different areas. Some additional courses, such as Special Topics, may count toward the Breadth Requirement. Contact the Graduate Advisor for more information regarding substitutions. | ||
| Artificial Intelligence and Robotics | ||
| Introduction to Artificial Intelligence | ||
| Robot Laboratory | ||
| Advanced Artificial Intelligence | ||
| Knowledge-based Agents | ||
| Machine Learning | ||
| Algorithms and Theory | ||
| Data Structures and Algorithms II | ||
| Advanced Data Structure and Algorithms | ||
| Approximation Algorithms | ||
| Computational Geometry | ||
| Parallel Programming | ||
| Special Topics in Computer Science | ||
| Computer Graphics and Vision | ||
| Computer Graphics | ||
| Introduction to Computer Vision | ||
| Advanced Computer Vision | ||
| Advanced Computer Graphics | ||
| Interactive Computer Graphics | ||
| Human Computer Interaction | ||
| Developing User Interfaces | ||
| Cognitive Systems | ||
| HCI: Computing Off The Desktop | ||
| Numeric and Symbolic Computation | ||
| High Performance Computing | ||
| Applied Symbolic Computation | ||
| Computer Algebra I | ||
| Computer Algebra II | ||
| Programming Languages and Compilers | ||
| Compiler Construction I | ||
| Compiler Construction II | ||
| Program Generation and Optimization | ||
| Parallel Programming | ||
| Software Engineering | ||
| Software Design | ||
| Dependable Software Systems | ||
| Reverse Software Engineering | ||
| Advanced Topics in Software Engineering | ||
| Systems | ||
| Database Theory | ||
| Operating Systems | ||
| Computer Networks | ||
| Advanced Operating Systems | ||
| Network Security | ||
| Distributed Systems Software | ||
| Computer Networks II | ||
| Database Theory II | ||
| Computer Science Depth Requirement | 6.0 | |
| MS students are required to complete at least two Computer Science (CS) courses beyond the breadth requirement. These courses should be 600 or 700-level courses. The CS 690 Independent Study course may be taken, if approved by the Department's Graduate Advisor. | ||
| Independent Study in Computer Science | ||
| Additional Graduate-Level Courses | 6.0 | |
| Two additional graduate level courses are required. These courses may come from either the 600 or 700 level Computer Science (CS) courses. In addition, courses may be taken from outside the department, if on the list of approved external courses, and may include CS 690 Independent Study and CS 997 Research in Computer Science, if approved by the graduate advisor. | ||
| Independent Study in Computer Science | ||
| Research in Computer Science | ||
| CS 520 and CS 571 may only be used to fulfill the additional course requirement with permission of the Graduate Committee. Any course not explicitly listed above, including independent study and research courses, must be approved by the Department's Graduate Advisor. | ||
| Computer Science Foundations | ||
| Programming Tools and Environments | ||
| Other courses, such as intermediate 500-level and special topics, that the department offers may qualify for fulfilling this requirement. Students must check with the department to see if this is the case, and have these courses approved by the Graduate Committee. Any course offered by other departments that is not on the list of approved external courses must be approved by the Department's Graduate Advisor, or it will not count towards the degree. | ||
| Thesis or Non-Thesis Option | 6.0 | |
| Thesis Option | ||
| Usually students pursuing a Master's Thesis will first do 3.0 research credits (CS 690 or CS 997) to obtain background knowledge required by the thesis topic. It is the responsibility of the student to find a thesis supervisor. | ||
| Independent Study in Computer Science | ||
| Research in Computer Science | ||
| Master's Thesis | ||
| Non-thesis Option | ||
| The non-thesis option requires two additional 600 or 700 level Computer Science (CS) courses taken in place of the 6.0 thesis credits. | ||
600 or 700-level Courses | ||
| Total Credits | 45.0 | |
PhD in Computer Science
General Requirements
90.0 quarter credits
The following general requirements must be satisfied in order to complete the PhD in Computer Science:
- 90.0 quarter credit hours total
- Establishing a plan of study with your Advisor
- Qualifying courses
- Candidacy exam
- Approval of dissertation proposal
- Defense of dissertation
Students entering with a master’s degree may be exempted from some or all of the courses in the breadth requirement; however, they are still required to meet all milestones of the program. Individual courses may also be transferred with approval of the Graduate Advisor. The total credit amount, candidacy exam, and dissertation are University Requirements. Additional requirements are determined by the department offering the degree.
Qualifying Courses
To satisfy the qualifying requirements, students must earn a grade of B+ or better in the first 6 Computer Science graduate courses taken at Drexel, and must earn an overall GPA of 3.5 or better in these courses. Normally these courses comprise the 3 mandatory‐core and 3 flexible‐core courses taken as part of the PhD program; however, they may in some cases include more advanced courses (e.g., if the student has received transfer credit for a core course). Undergraduate courses, independent studies, research credits, and courses from other departments cannot be counted toward the qualifying requirements. Student progress toward these requirements will be assessed in the Annual Review following the student's first year in the PhD program. For more information visit the Department's PhD Qualifying Requirements page.
| Required Courses | ||
| CS 521 | Data Structures and Algorithms I | 3.0 |
| CS 525 | Theory of Computation | 3.0 |
| CS 550 | Programming Languages | 3.0 |
| Flexible Core | ||
| Select three of the following: | 9.0 | |
| Introduction to Artificial Intelligence | ||
| Data Structures and Algorithms II | ||
| Developing User Interfaces | ||
| Computer Graphics | ||
| High Performance Computing | ||
| Operating Systems | ||
| Computer Networks | ||
| Applied Symbolic Computation | ||
| Dependable Software Systems | ||
| Introduction to Computer Vision | ||
| In addition, all students are required to take an additional four (4) breadth requirement electives, developing background knowledge in areas of particular interest. These courses are organized into the following seven areas. | ||
| Select four courses from at least three different areas: | 12.0 | |
| Artificial Intelligence | ||
| Introduction to Artificial Intelligence | ||
| Robot Laboratory | ||
| Advanced Artificial Intelligence | ||
| Knowledge-based Agents | ||
| Machine Learning | ||
| Topics in Artificial Intelligence | ||
| Algorithms and Theory | ||
| Data Structures and Algorithms II | ||
| Advanced Data Structure and Algorithms | ||
| Approximation Algorithms | ||
| Computational Geometry | ||
| Parallel Programming | ||
| Human Computer Interaction/Computer Graphics and Vision | ||
| Developing User Interfaces | ||
| Computer Graphics | ||
| Introduction to Computer Vision | ||
| Cognitive Systems | ||
| HCI: Computing Off The Desktop | ||
| Advanced Computer Vision | ||
| Advanced Computer Graphics | ||
| Interactive Computer Graphics | ||
| Numeric and Symbolic Computation | ||
| Special Topics in Computer Science | ||
| Special Topics in Computer Science | ||
| Special Topics in Computer Science | ||
| High Performance Computing | ||
| Applied Symbolic Computation | ||
| Computer Algebra I | ||
| Computer Algebra II | ||
| Programming Languages and Compilers | ||
| Compiler Construction I | ||
| Compiler Construction II | ||
| Program Generation and Optimization | ||
| Parallel Programming | ||
| Complexity Theory | ||
| Software Engineering | ||
| Software Design | ||
| Dependable Software Systems | ||
| Reverse Software Engineering | ||
| Advanced Topics in Software Engineering | ||
| Networks and Operating Systems | ||
| Database Theory | ||
| Operating Systems | ||
| Computer Networks | ||
| Advanced Operating Systems | ||
| Network Security | ||
| Distributed Systems Software | ||
| Computer Networks II | ||
| Database Theory II | ||
| Total Credits | 30.0 | |
Depth Requirement
Doctoral students are required to complete at least 18 credits of CS courses beyond the breadth requirement. These courses should be 600- or 700-level courses or topics courses covering current research in selected areas. Course selection must be approved by the student’s research advisor. The department will periodically offer topics courses, typically run in a seminar fashion, on current research areas of interest to faculty, for instance:
- Topics in Artificial Intelligence
- Topics in Algorithms and Theory
- Topics in Human Computer Interaction
- Topics in Computer Graphics
- Topics in Numeric and Symbolic Computation
- Topics in Software Engineering
As part of the depth requirement 3 out of the 18 credits but no more than 9 credits are to be Independent Study work (CS 690).
Plan of Study
Upon entering the PhD program, each student will be assigned an academic advisor, and with the help of the advisor will develop and file a plan of study (which can be brought up to date when necessary). The plan of study should be filed with the Graduate Coordinator no later than the end of the first term.
Candidacy Exam
The Computer Science candidacy examination serves to define the student’s research domain and to evaluate the student’s knowledge and understanding of various fundamental and seminal results in that domain. At this point the student is expected to be able to read, understand, analyze, and explain advanced technical results in a specialized area of computer science at an adequate level of detail. The candidacy examination will evaluate those abilities using a defined set of published manuscripts. The student will prepare a written summary of the contents of the material, present the summary orally, and answer questions about the material. The examination committee will evaluate the written summary, the oral presentation, and the student’s answers.
Thesis Proposal
After completing the candidacy examination successfully, the PhD candidate must prepare a thesis proposal that outlines, in detail, the specific problems that will be solved in the PhD dissertation. The quality of the research proposal should be at the level of, for example, a peer-reviewed proposal to a federal funding agency, or a publishable scientific paper. The candidate is responsible for sending the research proposal to the PhD committee two weeks before the oral presentation. The PhD committee need not be the same as the candidacy exam committee, but it follows the same requirements and must be approved by the Office of Graduate Studies. The oral presentation involves a 30-minute presentation by the candidate followed by an unspecified period during which the committee will ask questions.
After the question and answer period, the candidate will be asked to leave the room and the committee will determine if the research proposal has been accepted. The research proposal can be repeated at most once. A thesis proposal must be approved within two years of becoming a PhD candidate.
Thesis Defense
After completing the research proposal successfully, the PhD candidate must conduct the necessary research and publish the results in a PhD dissertation. The dissertation must be submitted to the PhD committee two weeks prior to the oral defense. The oral presentation involves a 45-minute presentation by the candidate, open to the public, followed by an unspecified period during which the committee will ask questions. The question-and-answer period is not open to the public. After the question and answer period, the candidate will be asked to leave the room and the committee will determine if the candidate has passed or failed the examination. The candidate will be granted one more chance to pass the final defense if (s)he fails it the first time. Paperwork selecting the thesis committee and indicating the results of the thesis defense must be filed with the Department of Computer Science and the Office of Graduate Studies.
Dual MS Degree Opportunities
Graduate students already enrolled in a master's degree program at Drexel have the opportunity, through the dual master's program, to work simultaneously on two master's degrees and to receive both upon graduation. To be eligible, graduate students must be currently working on their first degree when requesting admission to the second. They must obtain approval from the graduate advisors of both programs and work out a plan of study encompassing coursework and/or research (thesis) credits for both degrees.
To satisfy dual degree requirements for the MSCS and another degree the plan of study must include the following: mandatory core, flexible core, breadth and one depth course for a total of 30.0 credits. To obtain a dual degree you must have a minimum of 60 credits, thesis and research credits will be in excess of the 30.0 credits required by MSCS. The dual degree for MSCS students is only available to on-campus students.
The dual master's student must complete the Graduate Dual Degree Form and obtain approvals from both graduate advisors. Final approval is granted by the Office of Graduate Studies. The student is then registered in both majors simultaneously. Upon graduation, the student must file two Application for Degree forms. Students should contact the Office of Graduate Studies for copies of the forms.
Facilities
The department is fully networked, including Internet access and Internet II connection. Department computers are accessible from the residence halls over the campus network and from off campus via modem or Internet service provider. Students use UNIX, Macintosh, and Windows NT platforms.
For information on additional Computer Science research facilities, visit the Department of Computer Science Research Laboratories web page.
Courses
CS 500 Database Theory 3.0 Credits
Introduces relational and knowledge base data models and contrasts the expressiveness of the two models. Covers semantics of knowledge bases, negation, dependencies, Armstrong's axioms, decompositions, and normal forms.
Repeat Status: Not repeatable for credit
CS 510 Introduction to Artificial Intelligence 3.0 Credits
Well-formed problems; state spaces and search spaces; Lisp and functional programming; uniformed search; heuristic search; stochastic search; knowledge representation; propositional logic; first order logic; predicated calculus; planning; partial order planning; hierarchical planning.
Repeat Status: Not repeatable for credit
CS 511 Robot Laboratory 3.0 Credits
Building and programming machines built out of construction pieces, a micro-controller, actuators, motors, sensors, that interact with the world using limited computational resources. Issues in mechanics, physics, electronics, real-time control, uncertainty, map building, path planning, and other topics in introductory robotics.
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C] or CS 583 [Min Grade: C]
CS 520 Computer Science Foundations 3.0 Credits
Survey of basic mathematics concepts needed for the study of computer science at the graduate level: induction, iteration, recursion; analysis of program running time; elementary probability and combinatorics; relations, graphs and trees; regular expressions and finite automata; propositional and predicate logic.
Repeat Status: Not repeatable for credit
CS 521 Data Structures and Algorithms I 3.0 Credits
Techniques for analyzing algorithms: asymptotic notation, recurrences, and correctness of algorithms; divide and conquer: quick sort, merger sort, median and order statistics; elementary data structures: hashing, binary heaps, binary search trees, balanced search trees; graph algorithms: Depth and Breadth first searches, connected components, minimum spanning trees, shortest paths in graphs.
Repeat Status: Not repeatable for credit
CS 522 Data Structures and Algorithms II 3.0 Credits
Discussion of algorithm design techniques, augmented data structures including Binomial and Fibonacci heaps and Splay tree; Amortized analysis of data structures, topics in pattern and string matching, network flow problem, matching in bipartite graphs, and topics in complexity theory including reduction and NP-completeness, and approximation algorithms.
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C]
CS 525 Theory of Computation 3.0 Credits
Theory of computation introduces basic mathematical models of computation and the finite representation of infinite objects. These topics covered in the course include: finite automata and regular languages, context free languages, Turning machines, Partial recursive functions, Church's Thesis, undecidability, reducibility and completeness, and time complexity.
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C]
CS 530 Developing User Interfaces 3.0 Credits
This course examines the implementation of multimodal user interfaces within the context of interface design and evaluation. The course involves both practice implementing interfaces using current technologies and study of topical issues such as rapid prototyping, advanced input, and assistive technology.
Repeat Status: Not repeatable for credit
CS 536 Computer Graphics 3.0 Credits
An introduction to the basic concepts of computer graphics, including the graphics pipeline, 2D drawing, 3D viewing, mathematical representations of objects (lines, curves, surfaces and solids), color, and how these concepts are implemented.
Repeat Status: Not repeatable for credit
CS 540 High Performance Computing 3.0 Credits
Covers basic von Neumann architectural concepts involving memory organization, instruction, and data representations, including computer number systems, assembler and linker operations, character codes, floating point numbers, IEEE standard, subroutines and coroutines, macros, traps and interrupts, and overview of virtual memory concepts. Includes assembly language programming and laboratory exercises.
Repeat Status: Not repeatable for credit
CS 543 Operating Systems 3.0 Credits
Covers the classical internal algorithms and structures of operating systems, including CPU scheduling, memory management, and device management. Considers the unifying concept of the operating system as a collection of cooperating sequential processes. Covers topics including file systems, virtual memory, disk request scheduling, concurrent processes, deadlocks, security, and integrity.
Repeat Status: Not repeatable for credit
CS 544 Computer Networks 3.0 Credits
To examine computer networks using networking models (TCPIIP, OSI and ATM) and break down computer networking, examine each layer and its duties and responsibilities. To analyze networking protocols and understand the design. To use the Internet and other example protocols to illustrate the theory and operation of each layer.
Repeat Status: Not repeatable for credit
CS 550 Programming Languages 3.0 Credits
Covers basic concepts of the design and implementation of programming languages, including data representation and types, functions, sequence control, environments, block structure, subroutines and coroutines, storage management. Emphasizes language features and implementation, not mastery of any particular languages.
Repeat Status: Not repeatable for credit
CS 551 Compiler Construction I 3.0 Credits
Provides a thorough study of modern compiler techniques. Topics include scanners, parsers with emphasis on LR parsing, and syntax-directed translation. Requires students to use a parser generator to write a compiler for a non-trivial language. Examines several advanced topics in depth, such as automatic code generation, error recovery, and optimization techniques.
Repeat Status: Not repeatable for credit
Prerequisites: CS 525 [Min Grade: C]
CS 552 Compiler Construction II 3.0 Credits
Continues CS 551. Examines several advanced topics in depth, such as automatic code generation, error recovery, optimization techniques, data flow analysis, and formal semantics.
Repeat Status: Not repeatable for credit
Prerequisites: CS 551 [Min Grade: C]
CS 567 Applied Symbolic Computation 3.0 Credits
For users of symbolic computation (maple, mathematica, derive, macsyma) who wish to gain an understanding of fundamental symbolic mathematical methods. Includes introduction to a symbolic mathematical computation system and application to problems from mathematics, science and engineering. Also included programming and problems specific to symbolic computation.
Repeat Status: Not repeatable for credit
CS 571 Programming Tools and Environments 3.0 Credits
Covers UNIX operating system, Shell programming, PERL, JAVA, and advanced features of C++ from the viewpoint of efficient software development.
Repeat Status: Not repeatable for credit
CS 575 Software Design 3.0 Credits
This course introduces fundamental software design principles and methodologies, covers: software architecture design in general, and focuses on service-oriented architecture in particular. Students will learn most influential papers in software engineering realm, design and implement a service-oriented project, and explore how to apply well-established theoretical principles into modern software design.
Repeat Status: Not repeatable for credit
CS 576 Dependable Software Systems 3.0 Credits
Intended for CS and MSSE students; others must obtain departmental permission to enroll. Offers an in-depth treatment of software testing and software reliability, two components of developing dependable software systems. Testing topics include path testing, data-flow testing, mutation testing, program slicing, fault interjection and program perturbation, paths and path products, syntax testing, logic-based testing, testing within the software development process, test execution automation and test design automation tools. Reliability topics include reliability metrics, fault avoidance, cleanroom software development, fault tolerance, exception handling, N-version programming, recovery blocks, formal methods, functional specifications, and Z notation.
Repeat Status: Not repeatable for credit
CS 583 Introduction to Computer Vision 3.0 Credits
Theoretical and algorithmic foundation and applications of computer vision. Covered topics include image formation, image sensing, image filtering, lightness, radiometry, motion, image registration, stereo, photometric stereo, shape-from-shading, and recognition with an emphasis on the underlying mathematics and computational models and complexity as well as computational implementation of representative applications through multiple programming assignments.
Repeat Status: Not repeatable for credit
CS 610 Advanced Artificial Intelligence 3.0 Credits
Representation, reasoning, and decision-making under uncertainty; dealing with large, real world data sets, learning; and solving problems with time-varying properties; how to apply AI techniques toward building intelligent machines that interact with dynamic, uncertain worlds.
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C]
CS 612 Knowledge-based Agents 3.0 Credits
Fundamentals of agent-based computing; distributed AI; representations; agent communication languages; reasoning (expert, rule-based, case-based, production systems); network communication protocols; emergent behavior; swarm intelligence.
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C]
CS 613 Machine Learning 3.0 Credits
This course studies modern statistical machine learning with emphasis on Bayesian
modeling and inference. Covered topics include fundamentals of probabilities and
decision theory, regression, classification, graphical models, mixture models, clustering, expectation maximization, hidden Markov models, Kalman filtering, and linear dynamical systems.
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C]
CS 620 Advanced Data Structure and Algorithms 3.0 Credits
This course studies how advanced topics are used in the real world and generates an appreciation of where algorithms are used to understand various considerations that make a good algorithm. Topics: data compression, geometrical algorithms in search and indexing, pattern matching, sparse linear systems, applications of linear programming, and computational gene recognition.
Repeat Status: Not repeatable for credit
Prerequisites: CS 522 [Min Grade: C]
CS 621 Approximation Algorithms 3.0 Credits
Study of techniques for designing approximation solution to NP-hard problems. Classification of problems into different categories based on the difficulty of finding approximately sub-optimal solutions for them. The techniques will include greedy algorithms, sequential algorithms, local search, linear and integer programming, primal-dual method, randomized algorithms, and heuristic methods.
Repeat Status: Not repeatable for credit
Prerequisites: CS 522 [Min Grade: C]
CS 623 Computational Geometry 3.0 Credits
Introduction to algorithms and Data Structures for computational problems in discrete geometry (for points, lines and polygons) primarily in finite dimensions. Topics include triangulation and planar subdivisions, geometric search and intersections, convex hulls, Voronoi diagram, Delaunay triangulation, line arrangements, visibility, and motion planning.
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C]
CS 630 Cognitive Systems 3.0 Credits
This course explores the principles of cognition and intelligence in human beings and machines, focusing in how to build computational models that, in essence, think and act like people. The course reviews existing frameworks for such models, studies model development within one particular framework, and discusses how models can be employed in real-world domains.
Repeat Status: Not repeatable for credit
Prerequisites: CS 510 [Min Grade: C] or CS 530 [Min Grade: C]
CS 631 HCI: Computing Off The Desktop 3.0 Credits
This course discussed the use of the computers "off-the-desktop," focusing in particular on design and implementation aspects of the user experience. The course is taught as a graduate seminar: while there are minimal lectures to introduce important concepts, the majority of the time is spent presenting and discussing research papers in each class session. The course also involves a multi-week individual project in which students design, implement, and evaluate an "off-the-desktop" interface.
Repeat Status: Not repeatable for credit
Prerequisites: CS 530 [Min Grade: C]
CS 634 Advanced Computer Vision 3.0 Credits
A research-intensive course on advanced topics that reflect the state-of-the-art of current research activities in computer vision. The course alternates between lectures on the fundamentals of, and paper presentations by the students on, selected topics.
Repeat Status: Not repeatable for credit
Prerequisites: CS 583 [Min Grade: C]
CS 636 Advanced Computer Graphics 3.0 Credits
Texture and Bump maps; rendering techniques (phong, gourand, radiosity); particle systems; hierarchical models; photorealism; non-photorealistic rendering; geometric compression; mathematical structures for graphics.
Repeat Status: Not repeatable for credit
Prerequisites: CS 536 [Min Grade: C]
CS 637 Interactive Computer Graphics 3.0 Credits
This is a project-oriented class that covers the concepts and programming details of interactive computer graphics. These include graphics primitive, display lists, picking, shading, rendering buffers and transformations. Students will learn an industry-standard graphics system by implementing weekly programming assignments. The course culminates with a student-defined project.
Repeat Status: Not repeatable for credit
Prerequisites: CS 536 [Min Grade: C]
CS 643 Advanced Operating Systems 3.0 Credits
In-depth examination of operating systems issues expanding on topics covered in CS 543 (Operating Systems) including: Kernal services, memory management, input/output, file systems, interprocess communication, networking, device drivers, system initialization. Included discussion of production systems such as BSD Unix and Microsoft Windows.
Repeat Status: Not repeatable for credit
Prerequisites: CS 543 [Min Grade: C]
CS 645 Network Security 3.0 Credits
The purpose of this course is to cover the principles and practice of cryptography and network security. The first half of the course covers cryptography and network security techniques. The second part deals with the practice of network security, i.e. with the processes and application that have to be in place to provide security.
Repeat Status: Not repeatable for credit
Prerequisites: CS 543 [Min Grade: C] and CS 544 [Min Grade: C]
CS 647 Distributed Systems Software 3.0 Credits
In-depth discussion of fundamental concepts of distributed computer systems. Covers development techniques and runtime challenges, with a focus on reliability and adaptation concerns. Subjects discussed include: interprocess communication, remote procedure calls and method invocation, middleware, distributed services, coordination, transactions, concurrency control and replication. Significant system-building term project in Java or similar language.
Repeat Status: Not repeatable for credit
Prerequisites: CS 543 [Min Grade: C]
CS 650 Program Generation and Optimization 3.0 Credits
This course introduces the student to the foundations and state-of-the-art techniques in high performance software development for numeric libraries and other important kernels. Topics include: 1) fundamental tools in algorithm theory, 2) optimizing compilers, 3) effective utilization of the memory hierarchy and other architectural features, 4) how to use special instruction sets, and 5) an introduction to the concepts of self-adaptable software and program generators.
Repeat Status: Not repeatable for credit
Prerequisites: CS 550 [Min Grade: C] and CS 540 [Min Grade: C]
CS 668 Computer Algebra I 3.0 Credits
Introduction to Foundations of Symbolic Computation. Typical topics : Arithmetic with large integers, rational numbers, polynomials, modular arithmetic, greatest common divisors, chinese remainder algorithm.
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C]
CS 669 Computer Algebra II 3.0 Credits
The course continues the introduction to symbolic computation. Typical topics include polynomial root computation, exact arithmetic with real algebraic numbers and the solution of polynomial systems of equations using groebner or elimination methods.
Repeat Status: Not repeatable for credit
Prerequisites: CS 668 [Min Grade: C]
CS 675 Reverse Software Engineering 3.0 Credits
Expose students to the challenges of understanding large legacy software systems. Course approach is based on hands-on practical experience, where teams of students work on real software using state of the art reverse engineering tools for source code analysis, dynamic analysis and profiling, software clustering, and visualizations.
Repeat Status: Not repeatable for credit
Prerequisites: CS 575 [Min Grade: C]
CS 676 Parallel Programming 3.0 Credits
Covers a variety of paradigms and languages for programming parallel computers. Several tools for debugging and measuring the performance of parallel programs will be introduced. Issues related to writing correct and efficient parallel programs will be emphasized. Students will have ample opportunity to write and experiment with parallel programs using a variety of parallel programming environments.
Repeat Status: Not repeatable for credit
Prerequisites: CS 521 [Min Grade: C] and CS 543 [Min Grade: C]
CS 680 Special Topics in Computer Science 12.0 Credits
Special Topics Covers topics of special interest to students and faculty.
Repeat Status: Can be repeated multiple times for credit
CS 690 Independent Study in Computer Science 1.0-6.0 Credit
Independent study in computer science under faculty supervision. After finding a willing Computer Science Department faculty supervisor and working out the term of study, students obtain approval to take this course from the department?s graduate advisor.
Repeat Status: Can be repeated 3 times for 18 credits
CS 741 Computer Networks II 3.0 Credits
Continues CS 740.
Repeat Status: Not repeatable for credit
Prerequisites: CS 544 [Min Grade: C]
CS 751 Database Theory II 3.0 Credits
Covers topics in database theory and implementation, varying yearly. May include physical data organization, transaction management, concurrency, distributed data-bases, and semantics.
Repeat Status: Not repeatable for credit
Prerequisites: CS 500 [Min Grade: C]
CS 759 Complexity Theory 3.0 Credits
Introduces formal models of computation, including inherent difficulty of various problems, lower bound theory, polynomial reducibility among problems, Cook's theorem, NP-completeness, and approximation strategies.
Repeat Status: Not repeatable for credit
Prerequisites: CS 525 [Min Grade: C]
CS 770 Topics in Artificial Intelligence 3.0 Credits
Covers issues in robotics, vision, and pattern recognition.
Repeat Status: Can be repeated multiple times for credit
Prerequisites: CS 610 [Min Grade: C]
CS 780 Advanced Topics in Software Engineering 3.0 Credits
A research-intensive course on advanced topics in software engineering suitable for students who are either pursuing or intend to pursue an advanced degree (M.Sc or Ph.D.) in software engineering. Although the specific topics in the course will vary, students will be asked to survey and study the academic literature in an area of software engineering, and work toward projects that have the potential to evolve into long-term research efforts.
Repeat Status: Can be repeated 3 times for 9 credits
Prerequisites: CS 575 [Min Grade: C] or CS 576 [Min Grade: C]
CS 898 Master's Thesis 1.0-12.0 Credit
Master's thesis.
Repeat Status: Not repeatable for credit
CS 997 Research in Computer Science 1.0-12.0 Credit
Research.
Repeat Status: Can be repeated multiple times for credit
CS 998 Ph.D. Dissertation 1.0-12.0 Credit
Hours and credits to be arranged.
Repeat Status: Can be repeated 20 times for 45 credits






