Computer Engineering
Computer engineering focuses on hardware and software development based on a strong electrical engineering foundation. The current curriculum in this focus area includes embedded systems and a digital system design with Field Programmable Gate Arrays (FPGAs). The program expects to add more graduate courses in this area such as computer organization and architecture.
Digital systems, and more specifically, embedded systems, have become extremely pervasive in our modern society. Even the technical terms once reserved for the digital hardware and software design engineering community have entered the general lexicon—you see 1/0 for on/off on power switches and read about Giga-factories.
Embedded systems are one facet of digital systems. Embedded systems are microprocessors or microcontrollers that are “embedded” in the circuitry of an electronic device, generally as a control or computational element. Thus, developing an embedded system bridges both hardware design and software design. They can be used in some of the most hostile environments and the most critical. For example, in many applications, such as a pacemaker, these systems must not ever fail, or the user dies.
Writing absolutely bullet-proof code for embedded computers, often called firmware, can be a challenging engineering task. Embedded systems engineers are trained through EE programs, CS programs, or the blending of these two disciplines to form a computer engineering program, or CE program.
Digital systems are also gaining great visibility with the emergence of autonomous vehicles. Today, even basic automobiles can be characterized as mobile computing networks, containing up to 100 networked embedded devices. If you layer on top of this the additional computing power and sensors necessary to replace a driver, you can begin to understand the impact of modern embedded systems.
The recent explosion of data demands high-speed and energy-efficient hardware. In addition, computing machines existing everywhere require a way to effectively utilize them. These motivate state-of-the-art system architectures and advanced techniques such as privacy-preserving cyber-physical system design. This area includes, but is not limited to, real-time embedded systems, FPGA design for specialized accelerators, hardware verification and testing, secure hardware, and PCB design.
The UW Bothell ECE graduate curriculum includes courses on embedded systems design and digital system design with FPGAs. B EE 525 and B EE 526 cover the basic and advanced concepts of course design, testing, debugging, and validation of modern embedded systems and systems-on-silicon. B EE 525 covers the introduction to embedded programming languages for hardware and software, designing with FPGA cores, real-time operating systems, and modern synthesis tools; and B EE 526 covers advanced concepts in design and validation of mission-critical hardware and software, performance optimization techniques and hardware-assisted debug and validation. B EE 590 explores advanced concepts in convolutional neural network inference algorithms into FPGA-based implementations. For deeper knowledge, students are encouraged to pursue B EE 600 Independent Study or B EE 700 Thesis with a faculty member.
Career pathways
Experiences from classes in this key focus area of Computer Engineering will prepare students for employment in this field in several capacities. Students should be prepared for competitive consideration of employment positions such as:
- Hardware Development Engineer
- Hardware Engineer
- Azure Hardware Systems Engineer
- Embedded Software Engineer
- R&D Hardware Engineer
Faculty in Computer Engineering
Research at UW Bothell
Dr. Arnold Berger’s current research areas include design and development of on-chip debugging methods, teaching undergraduate EE labs via remote access technology, and developing methods to teach systematic debugging methods to undergraduates.
Study Computer Engineering
The curriculum reflects depth and breadth of faculty research expertise and provides graduate students with a solid foundation in signal processing and digital image processing. Relevant courses include:
- B EE 525 Embedded Systems Design
- B EE 526 Advanced Topics in Embedded Systems Design
- B EE 590 Advanced Digital System Design with FPGAs
Learning objectives
In this technical area, students will learn:
- Designing, testing, and validation of modern embedded systems and systems-on-silicon. Topics include introduction to embedded programming languages for hardware and software, designing with FPGA cores, real-time operating systems, and modern synthesis tools.
- Debugging, validation and system integration of embedded systems and systems-on-silicon. Topics include design and validation of mission-critical hardware and software, performance optimization techniques and hardware-assisted debug and validation.
- Methodologies for advanced digital system design using field-programmable gate arrays (FPGAs). It will focus on converting software implementations or algorithms of real-world applications, such as digital image processing, machine learning, and encryption primitives, into FPGA-based hardware implementations.
Emphasis on project-based learning through class projects
Many of the courses listed above provide class projects that will enhance student learning. Particularly, students in a team-oriented project learn important skills such as collaboration, communication, and presentation.
[B EE 525] Embedded Systems Design
Recently, privacy has been emphasized in cyber-physical systems and Internet-of-Things. To experience a solution to this issue, the students taking B EE 525 in Winter 2021 developed privacy-preserving real-world applications using Raspberry Pi development boards and the Microsoft open-source library for homomorphic encryption.
[B EE 526] Advanced Topics in Embedded Systems Design
This is a projects-based class, taught as a weekly seminar. Each student, or student team, researches and proposes a project that they intend to create for the class. Each team then proceeds to present a weekly project update, with the rest of the class serving as general audience, advisors, and critical reviewers. Past projects have included:
- Hand-held oscilloscope,
- FPGA-based image processor,
- Weather station,
- Autonomous drone control system,
- Self-driving model car,
- Image tracking video camera,
In addition to their projects, student research a topic of interest to them and write an analysis paper. The course also includes guest speakers from industry.
[B EE 590] Advanced Digital System Design with FPGAs
Students translate convolutional neural network inference algorithms into FPGA-based implementations. Specifically, parameters obtained from reference software are stored in on-chip memory, and numerous custom computing cores placed in an FPGA run in parallel for acceleration. This gives students experience implementing AI accelerators that have received a lot of attention in recent years.
Selected faculty publications
- Arnie Berger, “Debugging Embedded and Real-Time Systems: The Art, Science, Technology and Tools of Real-Time System,” Newnes, 1st Edition, 2020
- Arnie Berger, “Hardware and Computer Organization,” Newnes, 1st Edition, 2005
- Arnie Berger, “Embedded Systems Design: An introduction to Process, Tools and Techniques,” CMP Books, 1st Edition, 2001