The requirements for the MSCPE specify that between the student's graduate and undergraduate program, he or she must have at least 6 credit hours of software courses and at least 6 credit hours of hardware courses at the 4000 level or higher. Basic background in hardware and software is ensured by the mandatory articulation requirements that include 2000- and 3000-level courses in digital design, microprocessor system design, data structures, and operating systems. The purpose of this requirement is to ensure that students develop a breadth of more advanced knowledge at the senior or graduate level in different areas of computer engineering. This breadth may have been achieved, in part, through courses taken as an undergraduate, for example as senior-year electives.
The terms "software" and "hardware" are to be interpreted broadly, since the field of computer engineering cannot be characterized by a hardware versus software dimension, if narrowly defined, and because there is a continuum of subject matter along any such dimension that could be defined.
In general, the "software" courses should focus on one or more of the following topics.
Note that courses in which software and programs are a means to achieve an end, rather than a primary focus of the course, specifically are not considered "software" courses for the purposes of the breadth requirement. It is not a goal of the breadth requirement that students take courses in which they are required to write software; the learning objectives of the course must specifically address the topics listed above.
In general, the "hardware" courses involve hardware components or hardware/software systems and should focus on one or more of the following topics.
All ECE 45xx, 55xx, and 65xx courses, except those noted below as "software" courses, can be used to satisfy the "hardware" portion of the breadth requirement. A list of the courses suitable for fulfilling the "software" portion of the breadth requirement are listed below. Students should use this list in selecting courses. Students should also consult with their interim or permanent advisor before taking courses and regarding the use of courses taken as an undergraduate to satisfy the breadth requirement. The student's advisory committee must ultimately approve the student's program of study, including any deviation from these guidelines in fulfilling the breadth requirement for the MSCPE degree.
The following Electrical and Computer Engineering courses can be used to satisfy the "software" portion of the breadth requirement.
ECE 4524: ARTIFICIAL INTELLIGENCE AND PATTERN RECOGNITION
ECE 4534: EMBEDDED SYSTEM DESIGN
ECE 4550: REAL-TIME SYSTEMS
ECE 4564: NETWORK APPLICATION DESIGN
ECE 4984: SPECIAL STUDIES (depending on topic)
ECE 5505-5506: TESTING & VERIFYING DIGITAL SYSTEMS
ECE 5524: PATTERN RECOGNITION
ECE 5534: REPRESENTATION AND SYNTHESIS OF COMPUTER SYSTEMS
ECE 5554: THE THEORY AND DESIGN OF COMPUTER VISION SYSTEMS
ECE 5575: OBJECT-ORIENTED SOFTWARE DEVELOPMENT II
ECE 5576: OBJECT-ORIENTED SOFTWARE DEVELOPMENT II
ECE 5984: SPECIAL STUDIES (depending on topic)
ECE 6504: ADVANCED TOPICS IN COMPUTER ENGINEERING (depending on topic)
The following Computer Science courses can be used to satisfy the "software" portion of the breadth requirement.
CS 4004: DATA AND INFORMATION STRUCTURES
CS 4104: DATA AND ALGORITHM ANALYSIS
CS 4114: INTRODUCTION TO FORMAL LANGUAGES AND AUTOMATA THEORY
CS 4124: THEORY OF COMPUTATION
CS 4204: COMPUTER GRAPHICS
CS 4234: PARALLEL COMPUTATION
CS 4244: WORLD WIDE WEB: THE UNDERLYING TECHNOLOGY
CS 4304: COMPILER DESIGN AND IMPLEMENTATION
CS 4604: INTRODUCTION TO DATA BASE MANAGEMENT SYSTEMS
CS 4984: INTRODUCTION TO COMPUTATIONAL BIOLOGY
CS 5034: MODELS OF COMPUTATION
CS 5104: COMPUTABILITY AND FORMAL LANGUAGES
CS 5114: THEORY OF ALGORITHMS
CS 5124: ALGORITHMS IN BIOINFORMATICS
CS 5204: OPERATING SYSTEMS
CS 5244: INTERNET SOFTWARE
CS 5304: TRANSLATOR DESIGN AND CONSTRUCTION
CS 5314: PROGRAMMING LANGUAGES
CS 5604: INFORMATION STORAGE AND RETRIEVAL
CS 5614: DATABASE MANAGEMENT SYSTEMS
CS 5634: DATA MANAGEMENT IN BIOINFORMATICS
CS 5704: SOFTWARE ENGINEERING
CS 5714 (ISE 5714): USABILITY ENGINEERING
CS 5724: MODELS AND THEORIES OF HUMAN-COMPUTER INTERACTION
CS 5734: COMPUTER-SUPPORTED COOPERATIVE WORK
CS 5744: SOFTWARE DESIGN & QUALITY
CS 5754: VIRTUAL ENVIRONMENTS
CS 5774: USER INTERFACE SOFTWARE
CS 5804: INTRODUCTION TO ARTIFICIAL INTELLIGENCE
CS 5814: DIGITAL PICTURE PROCESSING
CS 5974: INDEPENDENT STUDY (depending on topic)
CS 5984: SPECIAL STUDY (depending on topic)
CS 6104: ADVANCED TOPICS IN THEORY OF COMPUTATION
CS 6204: ADVANCED TOPICS IN SYSTEMS
CS 6304: ADVANCED TOPICS IN LANGUAGES AND TRANSLATION
CS 6404: ADVANCED TOPICS IN MATHEMATICAL SOFTWARE
CS 6604: ADVANCED TOPICS IN DATA AND INFORMATION
CS 6704: ADVANCED TOPICS IN SOFTWARE ENGINEERING
CS 6724: ADVANCED TOPICS IN HUMAN-COMPUTER INTERACTION
CS 6804: ADVANCED TOPICS IN INTELLIGENT SYSTEMS
Note that the following Computer Science courses specifically cannot be used to satisfy "software" portion of the MSCPE breadth requirement.
CS 4014: PRINCIPLES OF COMPUTER ARCHITECTURE AND OPERATING SYSTEMS
CS 4504 (ECE 4504): COMPUTER ORGANIZATION
CS 5014: RESEARCH METHODS IN COMPUTER SCIENCE
CS 5024: MODELS AND ANALYSIS
CS 5504 (ECE 5504) COMPUTER ARCHITECTURE
CS 5565-5566 (ECE 5565-5566): NETWORK ARCHITECTURES AND PROTOCOLS
CS 6504: ADVANCED TOPICS IN COMPUTER ARCHITECTURE
Updated August 11, 2006