BS Computer Science – Devices Thread

Create devices embedded in physical objects that interact in the physical world.

The Devices thread is concerned with embedded computational artifacts that interact with people or the physical world. In this thread one learns how to create and evaluate devices that operate under physical constraints such as size, power and bandwidth. Examples include cell phones, robots, jet engines, and intelligent appliances.

The student who pursues Devices can combine it with Systems and Architecture to build devices that are small, power- and cpu-limited, with Intelligence to build automonous robots, with People to study human-robot interaction, or a number of other threads.


Early Preparation

  • Programming and Design
  • Numerical Methods
  • Linear Algebra
  • Dynamics and Control
  • Circuits and Sensor Design


Knowledge Goals

  • Power Management
  • Concurrent and Distributed Programming
  • Planning and Reactive Control
  • Synthesizing Sensors
  • Navigation

Skill Outcomes

  • Ability to design programs for resource-limited devices
  • Ability to implement motion planning algorithms
  • Ability to design and implement a simple control architecture


Resources and Role Models


If you are following one of the BSCS Threads study plans implemented before Summer 2012 or one of the BSCS study plans that were in place prior to Threads, click here.

Required Courses (For Students in the Program of Study that begins Summer 2012)

View the course prerequisites for the Devices Thread.

Although not required, we recommend that students use PHYS II to fulfill one of their Lab Sciences electives.

  • CS1301 Introduction to Computing and Programming, 3
  • CS1331 Introduction to Object-Oriented Programming, 3
  • CS1332 Data Structures and Algorithms, 3
  • CS2050 or CS2051 Introduction to Discrete Math for CS, 3
  • CS2110 Computing Organization and Programming, 4
  • CS2200 Computer Systems and Networks, 4
  • CS3251 Computer Networking 1, 3
  • ECE2031 Digital Design Laboratory, 2

Pick 1 of Algorithm Fundamentals:

  • CS3240 Languages and Computation, 3
  • CS3510 or CS 3511 Design and Analysis of Algorithms, 3

Pick 1 of Building Devices:

  • CS3651 The Art of Building Intelligent Appliances, 4
  • ECE4185 Embedded Microcontroller Design, 4

Pick 1 of Devices in the Real World:

  • CS3630 Robotics and Perception, 3
  • CS4261 Mobile Applications and Services for Converged Networks, 3
  • CS4605 Mobile and Ubiquitous Computing, 3

Elective Courses (pick and choose whatever courses you wish)

Free Electives (6 hours)

  • FREE-DEV1 Free Elective-Devices, 3
  • FREE-DEV2 Free Elective-Devices, 3

Algorithm Fundamentals

  • CS3240 Languages and Computation, 3
  • CS3510 or CS 3511 Design and Analysis of Algorithms, 3

Device Platforms

  • CS3220 Computer Structures: HW/SW Codesign of a Processor, 3
  • CS4210 Advanced Operating Systems, 3
  • CS4220 Programming Embedded Systems, 3
  • CS4261 Mobile Applications and Services for Converged Networks, 3

Intelligent Systems

  • CS3600 Introduction to Artificial Intelligence, 3
  • CS3630 Robotics and Perception, 3
  • CS4495 Computer Vision, 3
  • CS4616 Pattern Recognition, 3
  • CS4632 Advanced Intelligent Robotics, 3
  • CS4641 Machine Learning, 3
  • CS4649 Robot Intelligence: Planning

Devices for People

  • CS4470 Introduction to User Interface Software, 3
  • CS4605 Mobile and Ubiquitous Computing, 3
  • CS4685 Pervasive Systems and Networking, 3