|
Fall 2024
|
COMP 115: Problem Solving and Python Programming
There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well.
|
|
FYE 101 - AI, Big Data, and You
AI (Artificial Intelligence) is everywhere, including here with you in 2024. The short history and steady progress of AI has
featured more hype than reality, yet we now find ourselves faced with new data-driven models that exceed many of our expectations,
for example in the spaces of "writing" text (ChatGPT, Claude, Copilot, Gemini) or "creating" images (DALL-E 3, Midjourney).
New career paths are emerging for you and the jobs and careers of the near future will require computational skills that
leverage the human and machine interface. But what are the skills needed? This course will expose students to and provide practice with
working with data, computational tools, and the workflows that drive Machine Learning (ML) applications in almost all disciplines.
Skills include locating, storing, managing, "cleaning", statistically describing, plotting, and writing about data.
Exposure to machine learning workflows will include the use of tools for clustering and classifying data.
In parallel to the "hands on" computational work, we will collectively consider the broader potentials, implications,
and concerns with AI in our lives. Should we be concerned? Aren't some AI models biased? Isn't it cheating to work on
drafts of your next paper with an AI? And just how do you fight the instinct to trust a "human-sounding" machine?
|
Spring 2024
|
COMP 401: Senior Seminar: vAI
AI and Software Development:
Over the next three months, students will join a team of software developers over three sprints to release
a new version of Lexos, a web-app that provides a work flow for scholars who want to apply computational
methods to their digitized texts. In parallel, students will "level-up" areas of professional, computational,
and software development competencies.
|
|
COMP 121 -- Foundations of Computing Theory
An introduction to the (discrete) math that computer scientists need, including
number systems, logic, graphs, trees, matricies, automata, and regular expressions (but of course).
|
Fall 2023
|
FYE 101 - AI, Big Data, and You
AI (Artificial Intelligence) is everywhere, including here with you in 2023. The short history and steady progress of AI has
featured more hype than reality, yet we now find ourselves faced with new data-driven models that exceed many of our expectations,
for example in the spaces of ŇwritingÓ text (ChatGPT) or ŇcreatingÓ images (DALL-E 2, Midjourney).
New career paths are emerging for you and the jobs and careers of the near future will require computational skills that
leverage the human and machine interface. But what are the skills needed? This course will expose students to and provide practice with
working with data, computational tools, and the workflows that drive Machine Learning (ML) applications in almost all disciplines.
Skills include locating, storing, managing, ŇcleaningÓ, statistically describing, plotting, and writing about data.
Exposure to machine learning workflows will include the use of tools for clustering and classifying data.
In parallel to the Ňhands onÓ computational work, we will collectively consider the broader potentials, implications,
and concerns with AI in our lives. Should we be concerned? ArenŐt some AI models biased? IsnŐt it cheating to work on
drafts of your next paper with an AI? And just how do you fight the instinct to trust a Ňhuman-soundingÓ machine?
|
|
COMP 121 -- Foundations of Computing Theory
An introduction to the (discrete) math that computer scientists need, including
counting, graphs, trees, matricies, automata, and regular expressions (but of course).
|
Spring 2023
Sabbatical ...
Fall 2022
|
COMP 118 -- Object-oriented Programming
An introduction to the Object-Oriented Programming (OOP) paradigm.
Emphasis is placed on a review of purely procedural programming with a transition to the use of objects,
specifically the use of the C++ class mechanism.
Coverage will include detailed probes of memory used in the elementary data structures of variables,
arrays, and lists, including when allocated on either the runtime stack or heap.
Topics will include pointers, recursion, operator overloading, and the use of inheritance for code reuse and
extensibility.
|
|
COMP 255 -- Artificial Intelligence
AI ... is it everywhere? Do we worry about AutoML? This course
provides hands-on practice and work with the languages (Python and R)
and libraries to search wisely, preprocess data, build models, and consider the potential of AI techniques in new (think "start-up") domains. Particular attention will be paid
to some of the biases that exist in some models currently in use as we consider
best-practices for recognizing and addressing biases during model building.
|
Fall 2021
|
COMP 118 -- Object-oriented Programming
An introduction to the Object-Oriented Programming (OOP) paradigm.
Emphasis is placed on a review of purely procedural programming with a transition to the use of objects,
specifically the use of the C++ class mechanism.
Coverage will include detailed probes of memory used in the elementary data structures of variables,
arrays, and lists, including when allocated on either the runtime stack or heap.
Topics will include pointers, recursion, operator overloading, and the use of inheritance for code reuse and
extensibility.
|
|
COMP 499 -- Research in Machine Learning
|
Spring 2022
|
COMP 118 -- Object-oriented Programming
An introduction to the Object-Oriented Programming (OOP) paradigm.
|
|
COMP 121 -- Foundations of Computing Theory
An introduction to the (discrete) math that computer scientists need, including
counting, graphs, trees, matricies, automata, and regular expressions (but of course).
|
|
BIO 498 Advanced Topics in Genomics
Co-taught with Dr. Shawn McCafferty (Biology), selected topics from contemporary genomics and bioinformatics including High Throughput Sequencing technologies and pipelines, genome assembly and annotation, RNASeq, variant analysis, GWAS, and metagenomics.
|
Spring 2021
|
COMP 115 -- Robots, Games, and Problem Solving
Programming. There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well. (Python v3.x)
|
|
COMP 400 -- Senior Seminar
Time to stop being "a student". Students work in teams in a 12 week "start up" sprint, ending with a pitch to a panel of potential funders for future development.
|
Jan-term 2021
|
COMP 115 -- Robots, Games, and Problem Solving
Programming. There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well. Note: This course will be taught entirely online for four weeks. Assignments
will have a data science flavor. (Python v3.x)
|
2020
Short gig as Director of Digital and Computational Learning, Loomis Chaffee School, Windsor, CT.
Fall 2018
|
COMP 115 -- Robots, Games, and Problem Solving
Programming. There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well. (Python v3.x)
|
|
COMP 215 Algorithms Lab
|
|
COMP 398 Startup 1.0 - Machine Learning
“Machine Learning” is a new favorite phrase to include in a ramped-up business model. Next to including the term “block-chain” in your title, saying your app or experiment uses “machine learning” will generate attention. Machine learning represents a new third phase in the history of Artificial Intelligence (AI). This course is a semester-long, project-based experience that places students on teams within a (fictional) company to build prototype apps and products in a 15-week development cycle that ends with a pitch for continued funding. The emphasis includes a study and application of unsupervised and supervised methods for cluster and classification algorithms as implemented in Python and R. Each team’s software development model will build prototypes that interface with IoT (Internet of Things) devices that leverage voice (Alexa, Google Home, HomePod), continuous monitoring for health care, and/or the potential for voice-activated, elder/home care assistants.
|
Spring 2019
|
COMP 115 -- Robots, Games, and Problem Solving
Programming. There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well. (Python v3.x)
|
|
COMP 121 -- Foundations of Computing Theory
An introduction to the (discrete) math that computer scientists need, including
counting, graphs, trees, matricies, automata, and regular expressions (but of course).
|
|
COMP 399 -- Machine Learning
|
Fall 2017
|
DNA: a first-year seminar
An amazing blend of science and computing emerges when considering the molecule "Deoxyribonucleic Acid"
(DNA). DNA is the blueprint of life for all organisms on Earth and throughout evolutionary time.
Its distinctive and beautiful physical nature, a double helix of four bases, maps onto its functionality
as a bearer of information, generation after generation. Fully sequenced genomes including the human genome
and hundreds of microbial genomes have become the starting point for attempts to answer a wide range of
biological and quantitative questions. This is your life in 3.2 billion letters, your genome as 3.2 Gigabytes,
and your personalized medicine in a world of DNA from womb to tomb.
|
|
COMP 116 -- Data Structures
OOP using C++'s STL, introductory numerical methods, pointers and memory management, and technical writing.
|
Spring 2018
|
COMP 131 -- Computing for Poets
HTML5/CSS, W3C validation, XML, and scripting in Python to mine texts with examples
from the Anglo-Saxon and J.R.R. Tolkien corpora. In short: Digital Humanities on speed.
|
|
COMP 116 -- Data Structures
OOP using C++'s STL, introductory numerical methods, pointers and memory management.
|
|
COMP 499 - Bioinformatics Research
Six bioinformatics students engage with a heavy dose of Python's scikit-learn libraries and R to apply machine learning algorithms to RefSeq data.
|
Fall 2016
|
COMP 115 -- Robots, Games, and Problem Solving
Programming. There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well.
|
|
COMP 298 -- Startup v1.0: Medical Devices, Mobile Apps, and Machine Learning
Personal healthcare and computing are merging as a disruptive technology. The excitement around
access to data that has the potential to impact our health far exceeds the craze around wearables
that track our daily steps. From real time glucose monitoring and insulin dose changes to the
application of machine learning algorithms to detect situations that may lead to potential seizures before they occur,
the time is ripe for the development of new applications that interface medical wearables with mobile devices.
This course combines practice with startup experiences, mobile app development (e.g., learning AppleŐs new Swift language), machine learning algorithms,
and the newest wearable devices, e.g., Dexcom sensors and the Embrace watch from Empatica.
|
Spring 2017
|
COMP 111 -- Foundations of Computing Theory
An introduction to the (discrete) math that computer scientists need, including
counting, graphs, trees, matricies, automata, and regular expressions (but of course).
|
|
COMP 400 -- Senior Seminar
|
Fall 2015
|
Storytelling with Google Maps: a First Year Seminar.
If a picture is worth a thousand words, how many for maps? Writing stories for the iPad using Apple's iBook Author, Google Earth Pro,
Photoshop, and iMovie.
|
|
BIO/COMP 242 -- DNA
Scripting in Python to explore the wonders of genomes as texts. Threads:
the human microbiome project, ethical implications of personalized genomic medicine, reviewing a 23andMe report, computational experiments,
and scientific writing.
|
Spring 2016
|
COMP 116 -- Data Structures
OOP using C++'s STL, introductory numerical methods, pointers and memory management.
|
|
COMP 131 -- Computing for Poets
HTML5/CSS, W3C validation, XML, and scripting in Python to mine texts with examples
from the Anglo-Saxon and J.R.R. Tolkien corpora. In short: Digital Humanities on speed.
|
Fall 2014 -- Spring 2015
|
I had a year-long sabbatical traveling (France, Key West, Iceland), fishing, and working on two projects: (i) text mining -- our ongoing development of
the Lexos tools to help explore digitized texts; and (ii) I ported a manuscript of the travels and experiences
of my grandfather as he fought in WWI to the iPad; my brother, John, and I are retracing our gramp's steps from Maine to basic training in Massachusetts to England
by ship and then through France in the hell they called 'The Great War'.
| /
Literary Programming - NY Times April 01, 2012
Fall 2013
|
COMP 099 -- MOOC++
A half-credit course where students (i) finish an online course, e.g., Code Academy's PHP, (ii) complete
an oral assessment, and (iii) build something for a client.
|
|
BIO/COMP 242 -- DNA
Scripting in Python to explore the wonders of genomes as texts. Threads:
human microbiome project, ethical implications of personalized genomic medicine, sharing my 23andMe report, and Linux.
|
|
COMP 299 - Future Interactions
Take this: Google Glass, Leap Motion, Raspberry Pi, and Pebble watches. Now build something. Moving intellectually
curious students to creators and makers.
|
|
COMP 215 -- Algorithms Lab
C/C++ ... let's cut code ... and run experiments ...
|
|
COMP 499 -- Genomics Research
Investigation of Two Microbial Communities Using Next-Generation Data: Mengyang Li '14, Bioinformatics
|
Spring 2014
|
COMP 116 -- Data Structures
OOP using C++'s STL, introductory numerical methods, pointers and memory management
|
|
COMP 131 -- Computing for Poets
HTML5/CSS, W3C validation, XML, and scripting in Python to mine texts, examples
in the Anglo-Saxon and J.R.R. Tolkien corpora. Digital Humanities on speed.
|
|
COMP 499 -- Genomics Research
Investigation of Two Microbial Communities Using Next-Generation Data: Mengyang Li '14, Bioinformatics
|
Fall 2012
|
COMP 111 -- Foundations of Computing Theory
An introduction to the (discrete) math that computer scientists need, including
counting, graphs, trees, matricies, automata, and regular expressions.
|
|
COMP 115 -- Robots, Games, and Problem Solving
Programming. There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well.
|
|
COMP 299 -- iOS Development
Writing mobile apps.
|
|
COMP 499 -- Genomics Research
Machine Learning on the Human Microbiome
|
|
COMP 500 -- Honors Thesis (Anthony Castellani '13)
Forensic computing (working title)
|
Spring 2013
|
COMP 115 -- Robots, Games, and Problem Solving
Programming. There seems to be no end of the urgent need for more and more people to know how to script, how to write software, how to program.
This course is about learning how to program and how to do it well.
|
|
COMP 255 -- Artificial Intelligence
An emphais on the experimental side of AI. Like most of computing, AI includes many areas; we'll focus on three particular areas:
searching game trees, machine learning, and text mining.
|
Fall 2011
|
First-Year Seminar -- Storytelling Through Computer Animation
What's your story? A study of the rich story-telling in graphic novels and practice
with telling stories using the Alice animation environment and layout software Comic Life.
|
|
BIO/COMP 242 -- DNA
Scripting in Perl to explore the wonders of genomes as texts. Thread:
ethical implications of personalized genomic medicine.
|
|
COMP 499 -- Genomics Research
Detecting Horizontal Transfer in Microbial Genomes.
|
|
COMP 500 -- Honors Thesis: Cluster Verification
Donald Bass '12 (co-advised with Dr. Mike Kahn, Statistics).
|
Spring 2012
Fall 2010
First-Year Seminar -- Storytelling Through Computer Animation
COMP 215 -- Algorithms
Spring 2011
COMP 116 -- Data Structures
COMP 255 -- Artificial Intelligence -- Text Mining
COMP 399 -- Independent Study: iPhone/iPad apps
COMP 499 -- Independent Research: Experiments in Text Mining
COMP 500 -- Honors Thesis in Lexomics
Fall 2009
First-Year Seminar -- Storytelling Through Computer Animation
COMP/BIO 242 -- DNA
COMP 198 -- Topics in Bioinformatics
COMP 499 -- Research in Genomics: Horizontal Transfer
Spring 2010
COMP 131 -- Computing for Poets
COMP 116 -- Data Structures
Fall 2008
First-Year Seminar -- Storytelling through computer animation
COMP 335 -- Programming Languages
Spring 2009
COMP 115 -- Robots, Games, and Problem Solving
COMP 116 -- Data Structures
Fall 2007
COMP 215 -- Algorithms
COMP/BIO 242 -- DNA
Spring 2008
COMP 116 -- Data Structures
COMP 131 -- Computing for Poets
Fall 2006 - Spring 2007
Year-long sabbatical ...
Fall 2005
COMP 115 -- Programming Fundamentals (CS1 in C++)
COMP/BIO 242 -- DNA
COMP 398 -- C# and Mobile Devices
Spring 2006
COMP 111 -- Foundations of Computing Theory
COMP 335 -- Programming Languages
COMP 399 -- Phylogenetic Trees
New courses ...
COMP 111 -- Foundations of Computing Theory
COMP 131 -- Computing for Poets
COMP/BIO 242 -- DNA
|