RIT MPS
Apples and Oranges: Teaching Computational Thinking via Colorimetry
Apples and Oranges: Teaching Computational Thinking via Colorimetry
Flip Phillips
Skidmore College Rochester Institute of Technology
Skidmore College Rochester Institute of Technology
ABSTRACT
ABSTRACT
In our “Computational Methods for Psychology and Neuroscience” course, we teach undergraduate students the fundamentals of computational thinking (as opposed to traditional “programming”) using a project-based approach. Over the years project topics have ranged from linguistics, video image analysis, driven data collection, analysis and presentation, machine learning, and beyond. Most recently, we chose colorimetry and psychophysics as our project theme. Using the Connected Devices framework and an Arduino for data collection, we build a machine learning model from publicly available hyperspectral data that could reliably discriminate fruit types from simple, low-dimensional spectral scans.
The resulting project was well received by students and covered a broad range of topics that are useful in neuroscience including: procedural programming of the Arduino, basic electronics, sensor based data acquisition, functional programming in Wolfram Language, instrument calibration, analysis, visualization, and machine learning. Here we discuss the various challenges and successes in this 15-week class.
Dynamic[]
The resulting project was well received by students and covered a broad range of topics that are useful in neuroscience including: procedural programming of the Arduino, basic electronics, sensor based data acquisition, functional programming in Wolfram Language, instrument calibration, analysis, visualization, and machine learning. Here we discuss the various challenges and successes in this 15-week class.
Biting off more…
Biting off more…
Computational things in psych/ns have existed since the beginnings
Offeri\bng this class at Skidmore since 1998
Specialized software (RSVP, NN software, eel, World Building)
Robots (Lego Logo)
Python
Mathematica
Analysis & modeling
Stimulus synthesis
Experiment control
Data acquisition
Psychophysics
Psychophysics
Out[]=
Out[]=
Previous projects
Previous projects
More details at my blog at flipphillps.com
Cartoon Face Recognition
Cartoon Face Recognition
Rat Behavior Monitoring
Rat Behavior Monitoring
Evolution of a Sensing Creature
Evolution of a Sensing Creature
Simulating Visual Systems of Other Animals
Simulating Visual Systems of Other Animals
Modeling Prosopagnosia
Modeling Prosopagnosia
Predicting Voter Behavior*
Predicting Voter Behavior*
Simulating an Asteroid Strike*
Simulating an Asteroid Strike*
Spring 2019 Project
Spring 2019 Project
Goals
Goals
Project-based familiarity with ‘computation’
Programming
Data
Hardware
situated in psychology & neuroscience.
Programming
Programming
You do not become a ‘programmer’ nor do you ‘learn a language’ in a single class / semester / year / career.
Data
Data
Getting it, manipulating it, looking at it, reasoning about it.
Hardware
Hardware
Controlling it, not throwing it out the window.
Spring 2019 Project - Identifruit™
Spring 2019 Project - Identifruit™
Goal
Goal
Teach a program to distinguish fruit from spectral information.
Phases
Phases
Collect spectral data paired with category data
Collect spectral data paired with category data
Hardware
Hardware
Firmware
Firmware
Documentation
Documentation
Observation
Observation
Teach ML
Teach ML
Convert scan data to Dataset for training
Design network
Iterative vs bulk
Feedback / status?
Deployment
Deployment
Same hardware
Status indicator
WL
WL
Flipped class
EIWL chapters
Streaming notebooks or video sharing
Charrette code sharing and review
Hardware
Hardware
IO and Calibration
IO and Calibration
Very simple procedural programming in Arduino
Basic electronics
Mathematica interface to argyll-cms
AS7262
AS7262
Sensor
Sensor
6 channel I2C device via Device Framework
Device
Device
Measurements
Measurements
Response
Response
Classifier
Classifier
Hyperspectra
Hyperspectra
Each pixel has 400 wavelength measurements, 42 fruits inside/outside
The good news
The bad news
Autoencoder
Autoencoder
Data amplification
400 Channels network adjusted with ambient data
400 Channels network adjusted with ambient data
Cutting the channels (leave 70 to 251)
Cutting the channels (leave 70 to 251)
Normalize the data
Normalize the data
Network Training
Network Training
Test Network with its own data
Test Network with its own data
Create a new network to associate 6 channel data with the fruit class
Create a new network to associate 6 channel data with the fruit class
Results
Results
98 % accuracy!
All together now
All together now
Summary
Summary
A 15 week class for upper level neuroscience and psychology students without programming experience
Small teams 2019 one team
Built simple photometer, spectrophotometer for acquisition
Learned basic Arduino, electronics, and procedural programming concepts
Used Mathematica Classifier and ML to do data analysis and modeling
Did end-to-end acquisition to prediction
Didn’t teach students to:
Program
Engineer
‘Make’
Taught students to:
Think
RTFM
Collaborate
Solve