CS-291A: Bionic Vision

What would the world look like with a bionic eye?

This graduate course will introduce students to the multidisciplinary field of bionic vision viewed through the lens of computer science, neuroscience, and human-computer interaction.

The course will conclude with a programming project (teams of ≤ 3, any language/environment ok) in lieu of a final exam, giving students an opportunity to gain hands-on experience of working on open research problems using methods and tools best suited to their scientific background.

Course Objectives

The course will give an overview of current bionic eye technology designed to restore vision to people living with incurable blindness. By the end of the course, you should be able to:

  • identify various types of bionic eye technologies, their differences and similarities
  • explain how the retina and visual cortex support our sense of seeing
  • apply common computer vision & machine learning techniques for stimulus encoding
  • give a nuanced review of the HCI & ethics issues associated with implantable neurotechnology
  • demonstrate your hands-on experience of working on open problems in the field

The course is targeted to a diverse audience spanning computer science (computer vision, human factors, deep learning) to psychology (vision, psychophysics) and brain sciences (computational neuroscience, neuroengineering).


  • There are no official prerequisites for this course. The instructor will do his best to make the course content self-contained, including a crash course in neuroscience & computational vision.
  • However, homeworks and final projects will require programming. Homeworks will be based around pulse2percept, a Python-based simulation framework for bionic vision. Any suitable programming language/framework is ok for the final project.