Thinking Machines

IDS 101

Prof. Calvin

21 Aug '24

Opening Days 1

Announcements

  • Welcome to IDS-101-13: Thinking Machines!
  • There was no summer homework.
    • Shouvik says I can't say it's because I forgot to make one because that will make a bad first impression.
    • Suffice to say: It was because of circumstances beyond Shouvik's control.
  • Things to do:
    • Access the course webpage at here!
      • There is also a link to the course webpage from the Canvas site
      • Probably searching something close to my name will get you there.
    • Join the class Discord server for ease of communication and announcements
      • I will email you a link!
    • Bring computer to class from now on.
      • Let me know if you need one; I'll figure something out

About Me

Name
Calvin (Deutschbein)
Call me
(Professor) Calvin
Pronouns
they/them
Office
Ford 3rd Floor
Office Hours
Discord me between 12:00 AM and 11:59 PM
Email:
ckdeutschbein@willamette.edu
~24 hour maximum response time, I do Discord before email
Website:
cd-public.github.io

Background

Thesis Title
Mining Secure Behavior of Hardware Designs
Plain English
Just as there are bugs in code that makes software, modern hardware is also written in code and therefore may contain bugs. I find these bugs.
Thesis
Specification mining can discover properties that can be used to verify the secure behavior of closed source CISC CPU designs, properties that can be used to verify the temporal correctness of CPU designs, and hyperproperties that can be used to verify that modules, SoCs, and CPUs have secure information flow.
Some partners
Intel Corporation, Semiconductor Research Corporation, Synopsys, MITRE, Cycuity

Background

Enhance!
Just as there are bugs in code that makes software, modern hardware is also written in code and therefore may contain bugs. I find these bugs.
Enhance!
Specification mining can discover properties that can be used to verify the secure behavior of closed source CISC CPU designs, properties that can be used to verify the temporal correctness of CPU designs, and hyperproperties that can be used to verify that modules, SoCs, and CPUs have secure information flow.

Background

My subject:
I study physical devices that either think, or do something an awful lot like thinking.
My technique:
I use code that is ran *on the devices I study* to measure how these devices think... or whatever they do instead of thinking.

Course Description

  • Artifical intelligence, machine learning, big data, and large scale computing have captured the collective imaginations of millions people across a range of technical expertise.
    • Yet each of these buzzwords is rooted in a central promise: that machines may think.
  • Guided by student inquiry, we will learn how to construct thinking - or the appearance thereof - from basic computation.
    • Using the shared language of computer code, we use programming as a way to bridge the gap between thinking humans and thinking machines.
    • With this shared experience, we will be able to reflect more thoughtfully on the implications of thinking machines on the self, culture, and society.

student inquiry

  • Let’s start the class off right away with an exercise designed for:
    • Groups
    • Discussion
    • Disagreement, and
    • Deep critical thinking

Be sure to introduce yourselves!

Group 1Group 2Group 3Group 4

Colab

  • Take notes
    • Navigate to https://colab.research.google.com
    • Make a "New Notebook"
    • Name it something, like CC_8_21, you'll remember
    • For each question, +Text and record
    • You can remove the "Code" block by clicking the trashcan
    • Share with your group and with me!

Question #1

What are the goals of a university education?
  • Think about a possible answer on your own
  • Discuss your answers with the rest of the group
  • Record a summary of each group’s discussion

Question #2

How does a person learn something new?
  • Think about a possible answer on your own
  • Discuss your answers with the rest of the group
  • Record a summary of each group’s discussion

Question #3

What do you reasonably expect to remember from your courses in 20 years?
  • Think about a possible answer on your own
  • Discuss your answers with the rest of the group
  • Record a summary of each group’s discussion

Question #4

What is the value of making mistakes in the learning process?
  • Think about a possible answer on your own
  • Discuss your answers with the rest of the group
  • Record a summary of each group’s discussion

Question #5

How do we create a safe environment where risk taking is encouraged and productive failure is valued?
  • Think about a possible answer on your own
  • Discuss your answers with the rest of the group
  • Record a summary of each group’s discussion

Closing Thoughts

  • Try! You will have to try very hard to work through this material. Trying is exactly what we’re after since it is ultimately what leads to innovative thinking.
  • Fail! More accurately, don’t be afraid to fail. You should write code, work problems, and form opinions then be completely unafraid to scrap what you’ve done and redo it from scratch.
  • Collaborate! You should collaborate with your peers with the following caveat:
    • Make sure to take the time you need to understand material yourself!
    • We learn best when we all learn together!
  • Enjoy! Part of the fun is that you get to experience what it is like being a scientist. It takes hard work but ultimately this should be fun!