The Subdisciplines of
Electrical and Computer Engineering

A Guide To The Technical Electives For Computer Engineering

See: List of Approved ECE/CS Electives for more help

Hardware, Systems and Networks

1. Computer Systems.

  • ECE 462 - Logic Design
    Advanced techniques for design of combinational and sequential logic circuits.
  • ECE 411 - Computer Organization and Design
  • ECE 412 - Microcomputer Laboratory
    Integrates topics from core courses. Extensive microprogramming, hardware design and debugging, interfacing experience.
  • ECE 425 - Introduction to VLSI System Design
    Interactive graphics design of MOS VLSI circuit layouts. Electronics background unnecessary.
  • CS 437 - VLSI System and Logic Design
  • CS 431 - Embedded Systems
  • CS 433 - Computer System Organization (Fall)
    Some overlap with ECE 411 and ECE 511. Less emphasis on hardware, more on algorithms.

2. Electronic Circuits.

  • ECE 442 - Electronic Circuits
  • ECE 444 - Theory and Fabrication of Integrated Circuit Devices
    IC fabrication with intensive laboratory. Limited enrollment.
  • ECE 482 - Digital IC Design.
  • ECE 395 - Advance Digital Project Laboratory

3. Networks

  • ECE 428/CS 425 - Distributed Systems
  • ECE 438 - Communication Networks
  • ECE 435 - Computer Networking Laboratory
  • ECE 439 - Wireless Networks

 

Applications and Theory

1. Engineering Applications

Robotics:

  • Math 415 - Linear Alegebra
  • ECE 470/CS 443 - Introduction to Robotics

Acoustics:

  • ECE 410 - Digital Signals and Systems, digital filtering and signal processing. Follows ECE 210.
  • ECE 473 - Fundamentals of Engineering Acoustics
  • ECE 402 - Electronic Music Synthesis
  • ECE 403 - Topics in Engineering Acoustics
  • Music 103 - Rudiments of Theory I, NOT a technical elective, but it is a prerequisite for ECE 402.

Medical Imaging:

  • ECE 410 - Digital Signal Processing, I 
  • ECE 280 - Biomedical Imaging
  • ECE 480 - Magnetic Resonance Imaging

Computer Graphics:

  • CS 418 - Interactive Computer Graphics
  • CS 419 - Production Computer Graphics

Computer Assisted Instruction:

  • CS 417 - Computer-Assisted Instruction
    note: no credit for tech elective

2. Software, Languages, and Theory

Software:

  • CS 423 - Operating System Design
    Fundamental introduction to operating systems. Extensive programming.
  • CS 424 - Real-Time Systems
  • CS 411 - Database Systems
  • CS 414 - Multimedia Systems
  • CS 427 - Software Engineering, I
  • CS 428 - Software Engineering, II

Languages and Compilers:

  • CS 421 - Programming Languages and Compilers
    Principle modern language paradigms -- imperative, functional, object-oriented and logic -- and their implementation.
  • CS 422 - Programming Language Design
    Advanced principles of computer programming language design. Follows CS 421.
  • CS 426 - Compiler Construction (Spring)
    Comprehensive treatment of lexical analysis, syntax-directed parsing, and code generation and optimization. Follows CS 421.

Theory of Computation:

  • CS 273 - Theory of Computation
  • CS 473 - Algorithms
  • CS 475 - Formal Models of Computation
  • CS 476 - Program Verification

Artificial Intelligence

  • Math 213 - Basic Discrete Mathematics
  • ECE 448 - Introduction to Artificial Intelligence
  • CS 273 - Theory of Computation
  • CS 446 - Machine Learning

3. Algorithms, Mathematical Tools

Numerical Methods:

  • CS 257 - Numerical Methods
  • Math 415 - Applied Linear Algebra
  • ECE 491/CS 450 - Numerical Analysis
  • CS 458 - Numerical Linear Algebra
  • CS 459 - Numerical Approximations & ODEs

Optimization:

  • ECE 490 - Introduction to Optimization
    Techniques for solution of linear and nonlinear optimization problems

Combinatorial Mathematics:

  • CS 413 - Intro to Combinatorics

Students should choose courses for both breadth and depth. Most can be taken in a master's degree program. Some new ECE 398 and ECE 498 courses may be credited toward the requirements by petition. Contact the chief advisors in 156 Everitt Lab.

The following courses are not intended for computer engineering students: CS 231, 232, and 400.

Generally acceptable alternatives to CS 231 and CS 232 (when listed as prerequisites) are ECE 290, and ECE 391, respectively.