Students in this pathway will focus on the hardware and software of computing systems, learning to leverage skills across the entire computing stack to develop the next generation of computer systems. Students will explore developing systems at all levels — from microprocessors and advanced VLSI chips that power computation, to embedded software and machine learning techniques to exploit these systems, and to programming methods that harness the power of all this technology and these techniques.
Students can pursue a general Computing pathway, or focus on sub-specialities in Computer Architecture, Digital VLSI, Embedded Systems, and/or Machine Learning. Combining Computing and Data Science pathways also provides an additional compelling skillset for the future. Similarly, students may also consider combining Computing with other pathways if they are interested in enabling new application areas of next-generation computing systems or selecting a complementary capstone course.
This pathway is a good fit for students who are interested in:
- Computing in all of its levels, from software development to computer hardware and the underlying electronics that make these computing systems possible.
- Jobs in high-tech industries, from small startups to the largest software and electronics companies
Do I need a graduate degree specializing in this area to be marketable to industry?
No. Although some sub-specialties strongly encourage pursuing a master’s degree, students with a bachelor’s degree can easily find employment. A master’s degree is always a good choice, as it will often give a student a ‘leg up’ toward a greater range of job options. A doctoral degree is generally required for research or teaching.
What are some examples of real-world areas of application?
Computing is at the heart of most technology today such as smartphones, jet aircraft, robots, wireless and wired networks, fast machine learning hardware, and many other systems.
Does this pathway touch on global impact, equity and/or quality of life?
Yes. Our world is ever more interconnected, electrified and digitized. While developing computing systems can be viewed as a mechanism for increasing the economic development of the rich, systems such as smartphones are also helping to improve the lives of people in low-resource environments. Overall, computing is a major force in all aspects of modern life.
Areas of Impact
Air and Space
From the embedded systems that control the flight systems in aircraft, to the autonomous guidance and driving of a Mars rover, computer engineers are experts in creating such hardware and software systems.
Computing Data and Digital Technologies
Development of computing systems focuses on the hardware and software underpinning of computational systems and in harnessing current and future digital technologies.
Environmental Sustainability and Energy
There is an evolving need for developing new sensing systems that can better monitor energy in homes and buildings, as well as better monitor the environment (wildfires, soil, air quality) so appropriate action can be taken on information these sensors deliver.
Health and Medicine
As health and medicine evolve to use ever greater amounts of electronics, development of computing systems helps to create these diagnostic and treatment systems. From a smartphone that can automatically detect disease to the electronics that capture data and recreate imaging from CT and PET scanners, this technology relies heavily on computing systems.
Infrastructure, Transportation, and Society
As the COVID crisis has shown, modern automobiles are reliant on a large number of digital chips and embedded systems to function. As we move toward self-driving automobiles, this will increasingly be the case. Development of computing systems brings together the hardware and software that underpins this technology.
Robotics and Manufacturing
Robotic systems couple hardware actuators with computing hardware and software to achieve a set of motions. Students following the Computing pathway, especially those who broaden into the related Control Systems pathway, will bring computation skills to these electromechanical systems.
Related Career Paths
Computing experts work in almost all companies focused on electronics or software. This ranges from most large tech companies like Apple, Microsoft, Google, IBM, Boeing and the like, to small startups developing the next generation of hardware or software.
These courses are suggested for those following the Computing pathway but are not required to complete the BSECE degree program:
EE 371 — Design of Digital Circuits and Systems
This course provides a theoretical background and practical experience with tools and techniques for modeling complex digital systems, using the Verilog hardware description language. Students will learn how to maintain signal integrity, manage power consumption and ensure robust intra- and inter-system communication.
CSE 373 — Data Structures and Algorithms
Fundamental algorithms and data structures for implementation. Techniques for solving problems by programming. Linked lists, stacks, queues, directed graphs. Trees: representations, traversals. Searching (hashing, binary search trees, multiway trees). Garbage collection, memory management. Internal and external sorting.
CSE 374 — Intermediate Programming Concepts and Tools
Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies.
EE 469 — Computer Architecture I
How does the machine code produced by a compiler translate into computation by a processor? How can we improve the performance of a processor, and what are the trade-offs that must be made? These questions and many more are answered by this course, as students receive an initial exposure to computer architecture and design their own processor in Verilog Hardware Design Language, an industry standard for hardware description.
Computing students will complete one of the following capstones:
EE 475 — Embedded Systems Capstone
In this capstone class, students will work in teams to apply knowledge they gained in EE 474, Introduction to Embedded Systems, and from other previous ECE courses to prototype and build a substantial project that mixes hardware and embedded software and communication. Students often build projects in specific application areas that include but are not limited to health, robotics, Internet of Things (IoT), and smart systems. Students will also hear from experts in embedded systems to learn about emerging platforms, trends and job opportunities/prospects.
EE 478 — Capstone Integrated Digital Design Projects
Students work in groups of three to implement design projects which have, in the past, included the design of an ultra-low-power mixed-signal sensor chip containing data-converters, integrated power electronics for energy-efficient computing, and higher-performance microprocessor implementations. Students will use a variety of industry standard tools to implement and validate their designs.
EE 497 (winter quarter) and EE 498 (spring quarter) — Engineering Entrepreneurial Capstone (ENGINE)
The Engineering Entrepreneurial Capstone program (ENGINE) is the culmination of a student’s electrical and computer engineering education at UW ECE. The program provides a unique opportunity for students to develop skills in collaborative systems engineering, project management, and most importantly, working in teams on real-world problems from industry-sponsored projects. The program is overseen by UW ECE faculty and students are guided by practicing engineers. The course culminates in a showcase of student projects, which is attended by industry sponsors and held at the end of spring quarter every year.
Students studying the Computing pathway should also consider the following pathways:
Enriching Your Path
Students may want to consider the following related courses to enhance their educational experience:
- EE 342 — Signal Processing 2
- EE 419 — Intro Networks
- EE 443 — Intro Machine Learning
- EE 474 — Embedded 1
- EE 470 — CompArch 2
- CSE 410 — OS
- CSE 413 — Compilers
- CSE 414 — Databases
- CSE 415 — AICSE416: ML