Master of Science in Software Engineering

Master of Science in Software Engineering (MSSE): 45.0 quarter credits

About the Program

Drexel University’s Master of Science in Software Engineering program was created in response to the growing importance of software to the national infrastructure and the rapid rise in demand for professional software engineers.

The MS in Software Engineering is a multidisciplinary degree sponsored by the College of Engineering and the College of Information Science and Technology. The program, drawing on the strengths of existing Drexel programs in computer science, engineering, and information science and technology, provides a curriculum that encompasses behavioral, managerial, and technical aspects of software engineering and attempts to synthesize—rather than differentiate—disciplinary paradigms and themes. The program is appropriate for students interested in a wide range of application domains.

All students in the program take a core curriculum that spans the scope of disciplinary areas relevant to the degree, thereby providing a common foundation for all students in the program. Students also elect an area of concentration, or track — a cohesive, more specialized set of courses that builds on the core to support each student’s particular career interest. Three tracks are available: information science and technology, computer science, and engineering. The average time to complete this master’s degree is three years of part-time study.

Admission Requirements

In addition to satisfying the general admission requirements of the University, all applicants to the program must satisfy the following entrance requirements:

  • Applicants must have a bachelor’s degree from an accredited institution of higher education with an appropriate undergraduate major. Appropriate undergraduate majors include, but are not limited to, computer science, engineering, information systems, management science, and mathematics. Applicants may also have master’s degrees in similar fields.
  • After consultation with an academic advisor, students found to be deficient in one or more of the areas below will be required to take foundation courses (these will not count toward the degree) to prepare them for admission to the MSSE program. These foundation courses, to be determined by the advisor, will provide students with the requisite knowledge and skill necessary to begin the master’s program. Foundation courses must be taken at Drexel or another approved university.
  • In addition to the prerequisite courses listed in the Computer Science website, applicants should possess the following knowledge and/or experience:
    • Advanced capability to program in a block-structured programming language such as Pascal, C, or Ada, or an object-oriented language such as C++ or Smalltalk.
    • A grade of B or better in an undergraduate course in systems analysis and design or software engineering.
    • A grade of B or better in an undergraduate course in data structures and algorithms.
    • A grade of B or better in an undergraduate course in discrete mathematics.
    • Applicants must demonstrate evidence of an understanding of the development of industrial-strength software applications. This requirement may be met by at least two years of experience working directly with software system development, or (with permission of an advisor) by extensive software-intensive coursework. Students may also be required to have or develop proficiency in particular technologies, operating systems, or programming languages.

How to Apply
Additional details on how to apply to the MS in Software Engineering program depends on the chosen track. Visit the Drexel University Admissions web site to learn more about the Information Science and Technology Track

Students interested in the College of Engineering track should complete the requirements for the College of Engineering application.

Degree Requirements

Degree requirements vary by track. All students take the required six core courses (18.0 quarter credits). 

Core Courses

Core courses cover topics that are essential for the practicing software engineer. 

Degree Requirements

Degree requirements vary by track. All students take the required six core courses (18.0 quarter credits). 

Core Courses

Core courses cover topics that are essential for the practicing software engineer.

Computer Science Courses
CS 575Software Design3.0
CS 576Dependable Software Systems3.0
Electrical and Computer Engineering Courses
ECEC 500Fundamentals Of Computer Hardware *3.0
ECEC 600Fundamentals of Computer Networks *3.0
Information Science and Technology Courses
INFO 627Requirements Engineering and Management3.0
INFO 638Software Project Management3.0
Total Credits18.0

 

*

For students enrolled in the online program, INFO 631 Information Technology Integration may be substituted for ECEC 500, and CS 544 Computer Networks may be substituted for ECEC 600.

Tracks

Students in each track follow the policies determined by the respective College.

Information Science and Technology Track

This track supports students interested in applying software engineering to information systems problems in commercial organizations and other settings. The principal focus is the process by which user and system requirements are converted into cost-effective, maintainable software systems. This is complemented by a concern for defining, creating, understanding, and evaluating the full range of software life-cycle products. The track places particular emphasis on information systems methodologies such as human-computer interaction, requirements analysis, modeling, and validation, along with the use of off-the-shelf tools and components to assist in software processes.

Students in the information science and technology track take a total of nine track courses: four required track courses, three courses selected from the track distribution courses, and two courses selected from the distribution courses or other approved electives. This track requires a total of 45 credits, 18 of which are from the required core.

Required Courses12.0
Human-Computer Interaction
Evaluation of Information Systems
Software Engineering Process I
Software Engineering Process II
Distribution Courses 9.0
Select three of the following:
Advanced Database Management
Applied Database Technologies
Analysis of Interactive Systems
Design of Interactive Systems
Information Systems Analysis and Design
Information Technology Integration
Information Systems Management
Two Elective Courses 6.0
Select two of the following:
Knowledge Base Systems
XML and Databases
Social and Collaborative Computing
Introduction to System Dynamics
Data Mining
Total Credits27.0

Computer Science Track

Track Coordinator:  Dr. Spiros Mancoridis, 215-895-6824, spiros@drexel.edu

The computer science track welcomes students who are interested in a variety of technical topics pertaining to the development of software systems such as databases, networks, operating systems, graphics and animation systems, compilers, expert systems, and systems for scientific computing. Students will use languages and apply techniques to specify, design, implement, test, and maintain software systems.

Students in the computer science track take nine courses in addition to the six core courses listed above (for a total of 15 courses). Of the nine additional courses, four courses must be from one of the five concentration areas, plus five electives must be graduate level CS courses and two may be fulfilled by any graduate level CS or INFO courses, except for INFO 605 and INFO 530.

Students in their final 3 quarters of study who have a 3.5 GPA or better may take a 9-credit project instead of 3 elective courses. To register for a project, the student must select a project advisor (a member of the CS faculty who is willing to supervise). The project is a large-scale software development effort in which students specify, design, implement, and test a significant software system.

Concentration Courses12.0
Select four of the following:
Computing Systems Concentration
Database Theory
High Performance Computing
Operating Systems
Computer Networks
Advanced Operating Systems
Network Security
Distributed Systems Software
Reverse Software Engineering
Parallel Programming
Computer Networks II
Special Topics in Computer Science (Computer Systems)
Programming Languages Concentration
Theory of Computation
Programming Languages
Compiler Construction I
Compiler Construction II
Program Generation and Optimization
Reverse Software Engineering
Parallel Programming
Special Topics in Computer Science (Programming Languages)
User Interface Software Concentration
Developing User Interfaces
Computer Graphics
Cognitive Systems
Advanced Computer Graphics
Special Topics in Computer Science (User Interface Software)
Artificial Intelligence Concentration
Introduction to Artificial Intelligence
Robot Laboratory
Advanced Artificial Intelligence
Knowledge-based Agents
Machine Learning
Special Topics in Computer Science (Artificial Intelligence)
Theory and Scientific Computation Concentration
Computer Science Foundations
Data Structures and Algorithms I
Data Structures and Algorithms II
High Performance Computing
Applied Symbolic Computation
Computer Algebra I
Computer Algebra II
Parallel Programming
Special Topics in Computer Science (Theory & Scientific Computation)
Total Credits12.0

 

For additional information on the Computer Science Track, as well as an FAQ, visit the Department of Computer Science's Master of Science in Software Engineering web page.

Engineering Track

Track Coordinator:  Dr. Kapil Dandekar, 215-571-3579, dandekar@ece.drexel.edu

Students in this track pursue techniques to model engineering problems and offer software solutions. The courses in this track emphasize problems facing engineering industries including electrical, mechanical, environmental, chemical, and others. Systems modeling and simulation techniques will be used to solve these problems.

Students in this track take 27 or more credits of track courses in addition to the 18 credits of required core courses. Three computer engineering courses are required; the other courses are from one of five concentrations. A total of 45 approved graduate credits are required for the MSSE, including the 18 credits of core courses. Students opting for the Graduate Co-op Program (GCP) option are required to complete 51 approved credits, including 6 GCP credits.

For more information on curriculum requirements, visit the Department of Electrical and Computer Engineering's Graduate Student Guide.

Sample Track Courses27.0
Select nine of the following:
Chemical Engineering Concentration
Process Systems Engineering
Advanced Process Design
Civil and Architectural Engineering Concentration
Model Analysis of Structures
Advanced Mechanics Of Material
Structural Analysis I
Structural Analysis II
Structural Analysis III
Behavior and Stability of Structural Members I
Electrical and Computer Engineering Concentration *
Combinational Circuit Design
Sequential Circuit Design
Design for Testability
High Performance Computer Architecture
Parallel Computer Architecture
Advanced Topics in Computer Architecture
Total Credits27.0

 

*

Any other ECE 500-level or above course may be eligible for credit for the Electrical and Computer Engineering concentration.


Dual MS Degree Opportunities

MS in Software Engineering (Computer Science Track) Dual Degree Program

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 MSSE-CS the plan of study must include the following: the core and 4 concentration courses for a total of 30.0 credits. To obtain a dual degree you must have a minimum of 60 credits, thesis (MSSE-CS has a 9-credit project in place of thesis) and research credits will be in excess of the 30.0 credits required by MSSE-CS

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.

Computer Science 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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
Repeat Status: Can be repeated 3 times for 18 credits

CS 741 Computer Networks II 3.0 Credits

Continues CS 740.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
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.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

CS 997 Research in Computer Science 1.0-12.0 Credit

Research.

College/Department: College of Engineering
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.

College/Department: College of Engineering
Repeat Status: Can be repeated 20 times for 45 credits

Elec & Comp Engr-Computers Courses

ECEC 500 Fundamentals Of Computer Hardware 3.0 Credits

Covers computer organization and architecture; elements of computer hardware, processors, control units, and memories; hardware for basic mathematical operations; tradeoffs between speed and complexity; examples of embedded systems; microcontrollers; systems modeling.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 501 Computational Principles of Representation and Reasoning 3.0 Credits

This course presents fundamentals of discrete mathematics as applied within the computer engineering and manufacturing environment. Students are given the theoretical background in representation and reasoning for a broad variety of engineering problems solving situations. Entity-relational techniques of representation are demonstrated to evolve into the object-oriented approach. Various search techniques are applied in the cases of representing engineering systems by using theory of automata techniques.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 502 Principles of Data Analysis 3.0 Credits

This course presents theoretical methods and techniques of model development applicable within the computer engineering design and manufacturing environment. Students are given the theoretical background in data analysis (including "data mining"). Emphasis is on hybrid systems and discrete events systems. Various methods of recognizing regularities in data will be presented. Elements of the theory of clustering and classification will be dealt with for the paradigm of software and hardware problems.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 503 Principles of Decision Making 3.0 Credits

This course presents theoretical fundamentals and engineering techniques of decision making and problem solving applicable within the computer engineering design and manufacturing environment. Students are given the theoretical background in optimization methods for a broad variety of situation. Elements of the theory of planning and on-line control of systems are presented within the scope of software and hardware computer design and control.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 511 Combinational Circuit Design 3.0 Credits

Representing arithmetic. Logic and syntax data for machine processing. Switching algebra: Boolean and multiple values. Identification and classification of functions. Realizing completely specified and incompletely specified Boolean functions. Issues in designing large communication/control Boolean functions. Fault and testing of Boolean function.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 512 Sequential Circuit Design 3.0 Credits

Finite automata and their realization by sequential machines, capabilities, transformation, and minimization of finite automata, linear finite automata. Clocked pulsed and level mode sequential circuits. Malfunctions in sequential circuits: hazards, races, lockouts, metastability. Issues of state assignment. Evolution of memory elements design: ROM vs. RAM vs. associative memory.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 511 [Min Grade: C]

ECEC 513 Design for Testability 3.0 Credits

Economics vs. Complexity vs. Strategy of Testing; Fault Models; Test Generation; Testability Analysis & Designing Testable Circuits; Testing Microprocessors, Memories and Computer Components; Test Data Compression; Fault Tolerant Hardware; Reliably vs. Availability; Redundancy and Error Correcting Codes.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 511 [Min Grade: C] and ECEC 512 [Min Grade: C]

ECEC 520 Dependable Computing 3.0 Credits

Fundamental design issues involved in building reliable, safety-critical, and highly available systems. Topics include testing and fault-tolerant design of VLSI circuits, hardware and software fault tolerance, information redundancy, and fault-tolerant distributed systems.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 541 Robotic Computer Interface Controls I 3.0 Credits

Covers sensors, actuators, mechanical components of robots, kinematics, inverse kinematics, dynamics, and equations of motion.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 542 Robotic Computer Interface Controls II 3.0 Credits

Covers the robot control problem, including PD, PID, position, force and hybrid controllers, resolved rate and acceleration control, and multiprocessor architecture.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECES 641 [Min Grade: C] and ECES 643 [Min Grade: C] and ECEC 541 [Min Grade: C]

ECEC 543 Robotic Computer Interface Controls III 3.0 Credits

Covers non-linear control techniques, FLDT, and advanced topics.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 542 [Min Grade: C]

ECEC 600 Fundamentals of Computer Networks 3.0 Credits

Fundamentals design principles of ATM, Internet and local area networks; protocol layers and the Internet Architecture; medium access protocols; application protocols and TCP/IP utilities; basic principles and virtual circuit switching; naming and addressing; flow and congestion control protocols; routing algorithms; Quality-of-Service in computer networks; security issues in networks.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 621 High Performance Computer Architecture 3.0 Credits

Maximizing single processor performance. Concepts and techniques for design of computer systems. Processor design, instruction set architecture design and implementation, memory hierarchy, pipelines processors, bus bandwidth, processor/memory interconnections, cache memory, virtual memory, advanced I/O systems, performance evaluation.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 622 Parallel Computer Architecture 3.0 Credits

Advanced techniques of computer design. Use of parallel processing to achieve high performance levels. Fine and coarse grained parallelism. Multiple CPU parallelism, through multiprocessors, array and vector processors. Dataflow architectures and special purpose processors. Design implications of memory latency and bandwidth limitations. Speedup problems.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 621 [Min Grade: C]

ECEC 623 Advanced Topics in Computer Architecture 3.0 Credits

This course teaches advanced concepts of modern computer architecture and introduces the current challenges faced by computer architects. These challenges include power consumption, transistor variability, and processor heterogeneity. Students develop their research skills through a self directed research project with a final presentation and conference style writeup.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 621 [Min Grade: C]

ECEC 631 Principles of Computer Networking 3.0 Credits

Principles of circuit switching, packet switching and virtual circuits; protocol layering; application layer protocols for e-mail and web applications; naming and addressing; flow control and congestion avoidance with TCP; Internet Protocol (IP); routing algorithms; router architectures; multicast protocols; local area network technologies and protocols; issues in multimedia transmissions; scheduling and policing; Quality-of-Service and emerging Internet service architectures; principles of cryptography.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 632 Performance Analysis of Computer Networks 3.0 Credits

Covers probability theory and its applications to networks, random variable and random processes; Markov chains, multi-dimensional Markov chains; M/M/1, M/M/m, M/M/m/m, M/G/1 and G/G/1 queueing systems and their applications in computer networks; analysis of networks of queues: Kleinrock Independence Approximation; Time-reversibility and Burke's theorem; Jackson's theorem; the phenomenon of long-range dependence and its implications in network design and traffic engineering.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 631 [Min Grade: C]

ECEC 633 Advanced Topics in Computer Networking 3.0 Credits

perspectives in the areas of switch/router architectures, scheduling for best-effort and guaranteed services, QoS mechanisms and architectures, web protocols and applications, network interface design, optical networking, and network economics. The course also includes a research project in computer networking involving literature survey, critical analysis, and finally, an original and novel research contribution.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 631 [Min Grade: C] and ECEC 632 [Min Grade: C]

ECEC 654 Knowledge Engineering I 3.0 Credits

Covers conceptual modeling, including an overview of knowledge representation. Includes semantic networks, reduced semantic networks, logic of incomplete knowledge bases, extensional semantic networks, and applications of conceptual models.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 655 Knowledge Engineering II 3.0 Credits

Covers expert systems, including language and tools of knowledge engineering. Includes reasoning about reasoning, design and evaluation, heuristics in expert systems, expert systems for decision support, and expert systems in conceptual design.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 654 [Min Grade: C]

ECEC 656 Knowledge Engineering III 3.0 Credits

Covers information-intensive systems, including information representation in autonomous systems. Includes clauses and their validation; clustering in linguistic structures; linguistic and pictorial knowledge bases; discovery in mathematics, including am; and methods of new knowledge generation.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 655 [Min Grade: C]

ECEC 661 VLSI Design 3.0 Credits

Covers CMOS design styles, techniques, and performance; VLSI computer hardware, arithmetic units, and signal processing systems; and cat tools for layout design and simulation.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 662 VLSI Array Processors I 3.0 Credits

Covers VLSI testing, including design for testability and parallel computer architectures; signal and image processing algorithms and mapping algorithms onto array structures; and systolic array processors.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 661 [Min Grade: C]

ECEC 663 VLSI Array Processors II 3.0 Credits

Covers wavefront array processors; matching hardware to arrays; hardware design, systems design, and fault-tolerant design; and implementations and VLSI design projects.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 662 [Min Grade: C]

ECEC 671 Electronic Design Automation for VLSI Circuits I 3.0 Credits

This course focuses on the electronic design automation problems in the design process of VLSI integrated circuits. In this first quarter of the course, algorithms, techniques and heuristics structuring the foundations of contemporary VLSI CAD tools are presented. Boolean algebra, graph theory, logic minimization and satisfiability topics are presented.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit

ECEC 672 Electronic Design Automation for VLSI Circuits II 3.0 Credits

This course focuses on the electronic design automation problems in the design process of VLSI integrated circuits. In this second quarter of the course, physical VLSI design steps of technology mapping, floor planning, placement, routing and timing and presented individual and team-based small-to-medium scale programming projects are assigned.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 671 [Min Grade: C]

ECEC 673 Deep Sub-Micron Integrated Circuit Design 3.0 Credits

This course focuses on the design challenges of digital VLSI integrated circuits in deep sub-micron manufacturing technologies. Automation challenges and high-performance circuit design techniques such as low-power and variation-aware design are presented. The course material is delivered in a lecture format structured on recent presentations, articles, and tutorials.

College/Department: College of Engineering
Repeat Status: Not repeatable for credit
Prerequisites: ECEC 671 [Min Grade: C]

ECEC 690 Special Topics Computer Engineering 9.0 Credits

Covers special topics of interest to students and faculty.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

ECEC 697 Research in Computer Engineering 1.0-12.0 Credit

Research in computer engineering.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

ECEC 699 Supervised Study in Computer Engineering 9.0 Credits

Supervised study in computer engineering.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

ECEC 890 Advanced Special Topics in Computer Engineering 1.0-9.0 Credit

Covers advanced special topics of interest to students and faculty.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

ECEC 891 Advanced Topics in Computer Engineering 0.5-9.0 Credits

Advanced topics in computer engineering.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

ECEC 898 Master's Thesis in Computer Engineering 1.0-12.0 Credit

Master's thesis in computer engineering.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

ECEC 997 Dissertation Research in Computer Engineering 1.0-12.0 Credit

Graded Ph.D. dissertation in computer engineering.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

ECEC 998 Ph.D. Dissertation in Computer Engineering 1.0-12.0 Credit

Ph.D. dissertation in computer engineering.

College/Department: College of Engineering
Repeat Status: Can be repeated multiple times for credit

Software Engineering Courses

Interdepartmental Faculty

Michael E. Atwood, PhD (University of Colorado) Associate Dean for Research and for Undergraduate Education. Professor. Human-computer interaction, computer-supported cooperative work, organizational memory.
Glenn Booker, PhD (Drexel University). Assistant Teaching Professor. Software engineering, systems analysis and design, networking, statistics and measurement, process improvement, object-oriented analysis and design, bioinformatics, and modeling of biological systems.
David E. Breen, PhD (Rensselaer Polytechnic Institute). Associate Professor. Geometric modeling; computer graphics; scientific visualization; medical imaging; simulation.
Yuanfang Cai, PhD (University of Virginia). Assistant Professor. Formal software design modeling and analysis, software economics, software evolution and modularity.
Bruce W. Char, PhD (University of California-Berkeley). Professor. Symbolic mathematical computation; algorithms and systems for computer algebra; problem-solving environments; parallel and distributed computation.
Chaomei Chen, PhD (University of Liverpool). Professor. Information visualization, visual analytics, knowledge domain visualization, network analysis and modeling, scientific discovery, science mapping, scientometrics, citation analysis, human-computer interaction.
Susan Gasson, PhD (University of Warwick). Associate Professor. The co-design of business and IT-systems, distributed cognition & knowledge management in boundary-spanning groups, human-centered design, social informatics, online learning communities, grounded theory.
Rachel Greenstadt, PhD (Harvard University). Assistant Professor. Artificial intelligence, privacy, security, multi-agent systems, economics of electronic privacy and information security.
Thomas T. Hewett, PhD (University of Illinois at Urbana-Champaign). Professor Emeritus. Human computer interaction and cognitive engineering; development of computing environments to support knowledge, workers, and high performance experts.
Gregory W. Hislop, PhD (Drexel University). Professor. Information technology for teaching and learning, online education, structure and organization of the information disciplines, computing education research, software evaluation and characterization.
Pawel Hitczenko, PhD (Warsaw University). Professor. Probability theory and its applications to analysis, combinatorics, wavelets, and the analysis of algorithms.
Xiaohua Tony Hu, PhD (University of Regina, Canada). Professor. Data mining, text mining, Web searching and mining, information retrieval, bioinformatics and healthcare informatics.
Jeremy R. Johnson, PhD (Ohio State University). Professor. Computer algebra; parallel computations; algebraic algorithms; scientific computing.
Frank J. Lee, PhD (Carnegie Mellon University). Associate Professor. Human-computer interaction; cognitive engineering and science; intelligent software agents for games and education.
Spiros Mancoridis, PhD (University of Toronto) Interim Department Head, Computer Science. Professor. Software engineering; software security; code analysis; evolutionary computation.
Adelaida Alban Medlock, MS (Drexel University). Associate Teaching Professor. Introductory programming; computer science education.
Ko Nishino, PhD (University of Tokyo). Associate Professor. Computer vision, computer graphics, analysis and synthesis of visual appearance.
Krzysztof Nowak, PhD (Washington University). Associate Teaching Professor. Fourier analysis, partial differential equations, image processing, wavelets, asymptotic distribution of eigenvalues, numerical methods and algorithms, computer science education.
Jeffrey L. Popyack, PhD (University of Virginia). Associate Professor. Operations research; stochastic optimization; computational methods of Markov decision processes; artificial intelligence; computer science education.
Karkal S. Prahbu, PhD (Harvard University). Auxiliary Professor. Computer and software engineering; advanced microprocessors and distributed operating systems.
William C. Regli, PhD (University of Maryland-College Park). Professor. Artificial intelligence; computer graphics; engineering design and Internet computing.
Dario Salvucci, PhD (Carnegie Mellon University) Associate Department Head for Undergraduate Affairs. Professor. Human computer interaction; cognitive science; machine learning; applications for driving.
Harish Sethu, PhD (Lehigh University). Associate Professor. Protocols, architectures and algorithms in computer networks; computer security; mobile ad hoc networks; large-scale complex adaptive networks and systems.
Ali Shokoufandeh, PhD (Rutgers University) Associate Department Head for Graduate Affairs and Research. Professor. Theory of algorithms; graph theory; combinational optimization; computer vision.
Gerry Stahl, PhD (University of Colorado, Northwestern University). Associate Professor. Human-computer interaction, computer-supported cooperative work, computer-supported collaborative learning, theory of collaboration.
Lazar Trachtenberg, DSc (Israel Institute of Technology). Professor. Fault tolerance; multi-level logic synthesis; signal processing; suboptimal filtering.
  • Schedule of Classes
  • All Course Descriptions
  • Co-op
  • Academic Advising
  • Admissions
  • Tuition & Fees
LEARN MORE