Computer Engineering MS
Fairleigh Dickinson University’s new Master of Science in Computer Engineering is designed to train and educate students to work as computer engineers who understand the design tradeoff and the interdependency between hardware and software in computers, computer-based systems, computer communications and computer networks. Computer-based systems are widely used in data acquisition, signal processing and conditioning, instrumentation, communications, control, automation and manufacturing. The curriculum provides students with design skills, theoretical concepts and a solid foundation in both hardware and software design in an integrated manner, as well as competency in advanced computer technology. The program emphasizes practical applications of computer engineering.
Graduates of the Master of Science in Computer Engineering program will demonstrate the following attributes and achievements upon or before graduation:
- An ability to apply advanced knowledge of mathematics, science, and engineering
- An ability to formulate and analyze complex engineering problems, assess trade-offs, and solve problems
- An ability to use numerical analysis techniques, computer-aided analysis and design methods, and modern engineering tools
- A Bachelor of Science degree in electrical engineering, computer engineering or computer science from an accredited university. This should include courses or equivalent experience in the following areas: introductory computer programming, logic circuits, digital interfacing circuits and data structures. These courses can be taken at Fairleigh Dickinson University but will not count toward the 30-credit master’s degree requirement. Students with a Bachelor of Science degree in technology or other areas of science and engineering may be admitted if they complete undergraduate prerequisites as determined by an adviser of the school.
- Submission of an official score report for the Graduate Record Examination (GRE) General Test taken within the last five years. The GRE requirement is waived for applicants who have completed a master’s degree from a regionally accredited college or university in United States.
- Three letters of recommendation.
Applicants who have not completed all requirements for admission to the degree program may be permitted to enroll in classes for credit on a non-matriculated or non-degree basis.
The number of graduate credits required to attain the Master of Science in Computer Engineering is 30 credits.
(Not included in Graduation Credits)
- CSCI5505 Introduction to Computer Programming or Equivalent
- CSCI5555 Data Structures or Equivalent
- ENGR2286 Digital System Design or Equivalent
- EENG2287 Microprocessor System Design I or Equivalent
Core Requirements (12 credits)
- CSCI6603 Computer Architecture
- CSCI6620 Software Engineering
- EENG7701 Logic System Design
- EENG7709 Embedded System Design
Elective Courses (18 credits)
Choose 6 credits from the following
- EENG6610 Computer Aided Analysis and Design
- EENG6633 Digital Signaling Processing
- EENG6747 Digital Communications
- EENG7702 Microprocessor System Design
- EENG7707 Neural Networks and Fuzzy Logic Systems
- EENG7737 Computer Communication Networks **
Choose 6 credits from the following
- CSCI6623 Database Systems
- CSCI6638 Operating Systems
- CSCI6738 Cybersecurity
- CSCI7645 Systems Programming
- CSCI7773 Digital Image Processing
- CSCI7871 UNIX Shell Programming
An additional 6 credits of Electrical Engineering or Computer Science courses (6000 level or higher) must be taken.
CSCI5505 Use of computers in problem solving. Algorithm development using stepwise refinement. Structured programming techniques. Top-down design and modularity. Readability and documentation techniques. Programming in a high-level language, such as Java. Fall, Spring
CSCI5555 Organized collections of data and their use. Arrays, records, linear lists, trees, graphs. Sorting and searching. Sequential and linked memory allocation. Fall, Spring
CSCI6603 Study of the relation between the structure and functional behavior of computer systems. Data representation and instruction sets. Control function, memory hierarchy, input-output processors and devices. Micro- and multiprocessors. Fall, Spring
CSCI6620 Creation of reliable software. Top-down design, structured programming techniques, verification and debugging of programs. Defining module interfaces. Estimating program timing and storage requirements. Program documentation. Programming style and aesthetics. A project-oriented course.Fall, Spring
CSCI6623 A survey of the current technology available in database systems. Relational, hierarchical and network models. Role of the data administrator. Levels of abstraction. Schema and subschema. Fall, Spring
CSCI6638 An introduction to the fundamental principles of operating systems in terms of resource management and machine virtualization. Topics include system services, process management, synchronization, threads, CPU scheduling, memory, device, and file management, and security. Integrated lab.
CSCI6738 This course presents an introduction to the application and management of mechanisms for cybersecurity and information assurance in computing, communication, and organizational systems. Projects are structured to assist in the use of analytical skills in developing policies and assessing threats and vulnerabilities. Topics include malware and social engineering, vulnerability assessments, network security, authentication, intrusion detection, basic cryptography, data obfuscation, and network forensics.
CSCI7645 Introduction to operating systems software. Topics chosen from process management interprocess communication, interrupt handling and file systems. Students will develop software that will implement and use operating systems primitives.
CSCI7773 A treatment of the techniques used in image enhancement and restoration. Topics will include image modeling and geometry, image transforms, FFT, histogram modification, spatial and frequency domain filtering, image encoding. Some discussion of pattern recognition will be included.
CSCI7871 To enable students to derive maximum benefits from using shell, the course will cover shell for the novice, shell programming for results, and shell programming for mastery. It describes the basic skills to create whole applications, together with the steps into the world of software developers and system administrators.
EENG2287 Introduction to microprocessors and microcomputers. Software architecture of 80x86 processors: memory addressing, data types, register organization. Assembly language programming and debugging. Integrated laboratory experience.
EENG6610 Study of simulation packages for engineering problem solving. Transient and steady-state analysis of passive circuits. Signal processing, circuit and system modeling. Digital circuit and system simulation.
EENG6633 Discrete-time signal and systems, z-transform, discrete-time Fourier transform, discrete Fourier transform, fast Fourier transform, circular convolution, block convolution, basic and advanced filter structures, design of finite impulse response and infinite impulse response filters, applications, introduction to DSP processors.
EENG6747 Source coding, channel capacity and coding, error detection and error correction codes, communication signals and systems, optimum receiver, digital signal detection and performance, digital modulation.
EENG7701 Review of combinational and sequential logic. Memory and programmable logic. Register transfer and computer operations. Control logic design. Computer instructions. CPU design. Input/Output and communication. Memory management hardware. Prerequisite: undergraduate course in logic design
EENG7702 Architecture of 16- and 32-bit microprocessor. Assembly language programming. CPU signals and timing. Memory management. Interrupts. DMA. Co- processors. Introduction to RISC machines. Prerequisite:EENG7701 Logic System Design.
EENG7707 This is a graduate-level course that investigates the structure of neural network and fuzzy logic systems and applies the concepts to problems in signal processing, pattern recognition, process control, and optimization. Topics include learning algorithms, perceptron learning rule, adaptive linear neurons, back propagation training, pattern association, competitive neural nets, fuzzy sets and algebra, fuzzy digital devices and control systems, design of fuzzy systems, and neurofuzzy systems. MATLAB simulation.
EENG7709 Introduces system hardware and firmware design for embedded applications. HDL based combinational and sequential logic design. Software modeling and embedded C program development. Real time operating systems (RTOSI) and task management. Top down design methodology using a processor based development platform. Prereq: EENG 7701 or equiv. background.
EENG7737 Data transmission and encoding, multiplexing, circuit and packet switching, wide and local area network technology and systems, routing and queuing analysis, internet protocols, encryption and decryption.
ENGR2286 Binary codes, gates and flip-flops, registers, and counters, adders and ALUs, analysis and design of conbinational and sequential circuits. Logic simulation. Logic families. Integrated laboratory experience.