MS in Computer Engineering
The following curriculum is designed to balance the four major requirements of a master's program in computer engineering:
- Flexibility, to address the needs of students with a variety of different backgrounds.
- Depth, to ensure the graduates will have adequate knowledge and skills in at least one area of specialization.
- Focus on current technological trends, to meet the immediate needs of working students as well as to adequately prepare full-time students for a real-world technological environment.
- Strong foundations in theory, to equip the student with tools to grasp and develop new technologies and trends.
The Master of Science in Computer Engineering degree requires a minimum of 45 approved credits chosen in accordance with a plan of study arranged in consultation with the student's advisor and the departmental graduate advisor. Up to but not exceeding 9 research/thesis credits may be taken by students who choose to write a Master's thesis. Students who elect a non-thesis option are also encouraged to engage in research, by registering for research credits (not exceeding 9 credits).
Plan of Study
Before the end of the first quarter in the ECE department, for a full-time student, or by the end of the first year for a part-time student, the student must file a plan of study with the graduate advisor. The form can be found by going to http://www.ece.drexel.edu/grad/plan_of_study_form.pdf
The core requirement consists of two courses:
|A.||ECE-C621||High-performance Computer Architecture;|
|B.||ECE-C631||Principles of Computer Networking;|
Students are also required to complete at least one of the three-course sequences offered in computer engineering.
Students choosing the non-thesis option will be required to take 18 credits of Computer Engineering (ECE-C) courses, 6 credits of Electrical Engineering (ECE-E, ECE-S, ECE-P) courses, 12 credits of Engineering and/or Mathematics and Computer Science courses, 6 credits of free ECE electives, and 3 credits of approved free-electives. Those choosing the thesis option will be required to take 18 in ECE-C courses, 6 credits in Electrical Engineering courses, 12 credits of Engineering and/or Mathematics and Computer Science courses, and 9 credits in thesis. Table 1 below summarizes this requirement in the MS in Computer Engineering plan of study.
Students may choose to participate in the Graduate Co-op (Grad Co-op) Program, where they earn 6 academic credits for working in industry on computer engineering related projects. Three of these credits may be used to satisfy either the "approved free-elective" credits for the non-thesis option, or toward satisfying the 12 required credits of Engineering and/or Mathematics and Computer Science courses for the thesis option. The students choosing the Grad Co-op option will need a total of 48 credits for graduation.
Please note that ECEC 500 and ECEC 600 will not count towards the required 15 courses.
Table 1. MS in Computer Engineering Course Requirements
18 credits of Computer Engineering (CE)
18 credits of Computer Engineering
6 credits of Electrical Engineering (EE)
6 credits of Electrical Engineering
12 credits of Engineering and/or Math/Computer Science
12 credits of Engineering and/or Math/Computer Science
6 credits of free EE or CE electives, and
3 credits of approved free-elective
9 credits of MS thesis
All students are required to take at least two courses that emphasize development of mathematical skills required in the area of computer engineering. This requirement should be satisfied in consultation with the student's advisor and the departmental graduate advisor.
Qualifications for Admission
Prospective students should preferably have an undergraduate degree equivalent to a U.S. bachelor's degree in one of the following: Computer Engineering, Computer Science or Electrical Engineering. Students holding degrees in other Engineering and Science disciplines, who have had appropriate coursework or training, will also be considered. Appropriate coursework includes courses in, or experience with all of the following:
- Software: advanced programming and operating systems;
- Computer Architecture: digital systems design, computer organization and architecture;
- Algorithms and Data Structures;
- Computer Networks.
Computer Engineering Course
|Course List||(18 courses: 5 sequences and 3 stand-alone courses)|
|ECE-C501||Computational Principles of Representation and Reasoning|
|ECE-C502||Computational Principles of Data Analysis and Regulatory Recognition|
|ECE-C503||Computational Principles of Decision Making, Planning and Control|
|ECE-C511||Issues in Combinational Circuit Design|
|ECE-C512||Issues in Sequential Circuit Design|
|ECE-C513||Design for Testability|
|ECE-C621||High-Performance Computer Architecture|
|ECE-C622||Parallel Computer Architecture|
|ECE-C623||Advanced Parallel Computer Architectures|
|ECE-C631||Principles of Computer Networking|
|ECE-C632||Performance Analysis of Computer Networks|
|ECE-C633||Advanced Topics in Computer Networking|
|ECE-C656||Knowledge Intensive Systems|
|ECE-C662||VLSI Array Processors I|
|ECE-C663||VLSI Array Processors II|
- ECE-C501: Computational Principles of Representation and Reasoning: (3 credits)
This course presents fundamentals of discrete mathematics as applied within the computer engineering design 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.
- ECE-C502: Computational Principles of Data Analysis and Regularity Recognition: (3 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 application.
Prerequisite : ECE-C501
- ECE-C503: Computational Principles of Decision Making, Planning and Control: (3 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 situations. 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.
- ECE-C511: Issues in Combinational Circuit Design: (3 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 models and testing of Boolean function.
- ECE-C512: Issues in Sequential Circuit Design: (3 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.
Prerequisite : ECE-C511
- ECE-C513: Design for Testability: (3 credits)
Economics vs Complexity vs Strategy of Testing; Fault Models; Test Generation; Testability Analysis & Designing Testable Circuits; Testing Microprocessrs, Memories and Computer Components; Test Data Compression; Fault Tolerant Hardware; Reliability vs Availability; Redundancy and Error Correcting Codes.
Prerequisite : ECE-C511 and ECE-C512
- ECE-C621: High-Performance Computer Architecture: (3 credits)
Maximizing single processor performance. Concepts and techniques for design of computer systems. Processor design, instruction set architecture design and implementation, memory hierarchy, pipelined processors, bus bandwidth, processor/memory interconnections, cache memory, virtual memory, advanced I/O systems, performance evaluation.
- ECE-C622: Parallel Computer Architectures: (3 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.
- ECE-C623: Advanced Parallel Computer Architectures: (3 credits)
Modern research topics and methods in parallel computer architectures. Parallel algorithms, interconnection networks, SIMD/MIMD machines, processor synchronization, data coherence, dataflow machines, special purpose processors. Selected topics in parallel computing.
Prerequisite : ECE-C622
- ECE-C631: Principles of Computer Networking: (3 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.
- ECE-C632: Performance Analysis of Computer Networks: (3 credits)
Covers probability theory and its applications to networks, random variables 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.
Prerequisite : ECE-C631
- ECE-C633: Advanced Topics in Computer Networking: (3 credits)
This course offers an advanced introduction and research 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.
Prerequisite : ECE-C632
- ECE-C654: Knowledge Representation: (3 credits)
Covers conceptual modeling, including an overview of multiple techniques of Knowledge Representation. Includes semantic networks, reduced semantic networks, logic of incomplete knowledge bases, extensional semantic networks, and application of conceptual models. Introduces procedures of automated messaging. Focuses on systems and techniques providing interoperability.
- ECE-C655: Knowledge Transformation: (3 credits)
Covers methods and techniques of Knowledge Engineering oriented toward texts and natural language processing. Methods of automated summarization and survey generation are explored. Includes recognition of clauses and their validation. Considers clustering in heuristic and expert oriented systems as well as the specifics of dealing with knowledge extraction from the corpora sources.
Prerequisite : ECE-C654
- ECE-C656: Knowledge Intensive Systems: (3 credits)
Covers elements of autonomous knowledge processing in the knowledge-intensive systems. Outlines methods applicable in both linguistic and pictorial knowledge bases. Considers applications for design purposes, automated discovery, discovery in mathematics and methods of new knowledge generation.
Prerequisite : ECE-C655
- ECE-C661: VLSI Design: (3 credits)
Top-down design methodology using VHDL hardware description language and simulation. Behavioral descriptions (process statements) in datapath, control unit and systems. Projects include design of a behavioral model of a stack architecture computer. Design automation tools are used extensively.
- ECE-C662: VLSI Array Processors I: (3 credits)
Synthesizable behavioral code. Field programmable gate arrays are used in the projects. Test pattern generation and design for testability techniques (built-in self-test and scan design). VHDL-based performance modeling (Petri nets model).
Prerequisite : ECE-C661
- ECE-C663: VLSI Array Processors II: (3 credits)
Digital signal processing algorithms, mapping algorithms onto array structures, systolic arrays, wavefront arrays and systolic/wavefront array computers. Projects include behavioral design of systolic and wavefront arrays solving system of linear equations.
Prerequisite : ECE-C662
For additional information, Please contact the Graduate Advisor: Steven Weber at email@example.com