As a CS major in a liberal arts college, you have a unique opportunity to "connect the dots" between the product-oriented technology industry, the research community, and the world at large. You also have a responsibility to problematize, reinvent, or rebuild popular computing if need be.
The purpose of 190 is twofold. First, we aim to teach you how to keep learning CS topics forever---by staying up to date on primary research sources, synthesizing information from several sources, explaining these topics to others in straightforward terms, and otherwise staying at the forefront of the field.
Second, 190 needs to give you an authentic capstone experience as a "CS person", whatever that means to you. For some, that means preparing for a senior research project; for others, it means deeply diving into an area of CS research and summarizing and synthesizing what you find; some students may want to stretch themselves in some way to become stronger computational thinkers; and some might want to participate in software as a social process, contributing to an open-source software project. We'll figure out one-on-one what a suitable and doable capstone experience looks like for you, individually, and lead that into a significant technical writing assignment.
One way or another, you will leave this course not only as a CS major, but as an expert in some narrow area of computing. You'll leave with the skills you've developed and a technical writeup detailing what you learned or done and how the pieces fit together.
This section's focus is on programming languages: where they come from, how they are built, how they grow, and why they are the way they are.
Week | Day | Date | Topic | Paper Milestone |
---|---|---|---|---|
1 | Tue | Aug 27 | Introduction | |
Pair Presentations | ||||
2 | Tue | Sept 3 | Language revision processes for Rust, Python, and C++. | |
3 | Tue | Sept 10 | Turing Award Lecture, Reflections on Trusting Trust | M0 - LaTeX Exercise, due Thursday night Sept 12 |
4 | Tue | Sept 17 | How ISO C Became Unusable for Operating Systems Development [Yodaiken 2022] | |
5 | Tue | Sept 24 | Turing Award Lecture, Notation as a Tool of Thought [Iverson 1979] | M1 - Topic Proposal |
6 | Tue | Oct 1 | Ranking Programming Languages by Energy Efficiency [Pereira et al. 2021] | |
7 | Tue | Oct 8 | Communicating Sequential Processes [Hoare 1978] | M2 - Bibliography |
8 | Tue | Oct 15 | Fall Break | |
Individual Presentations | ||||
9 | Tue | Oct 22 | TBD | M3 - Annotated Bib |
10 | Tue | Oct 29 | TBD | |
11 | Tue | Nov 5 | TBD | M4 - Intro + Outline |
12 | Tue | Nov 12 | TBD | |
13 | Tue | Nov 19 | Peer Reviews | M5 - Full Paper Draft |
14 | Tue | Nov 26 | TBD | |
15 | Mon | Dec 3 | TBD | M6 - Final Paper |
16 | Wed | Dec 11 | Final Paper Presentations |
Throughout this semester, you will read 12 assigned research papers. To help you engage with these readings and prepare for class discussions, I will ask you to submit a reading reflection each week. The format of the reflection is up to you---it can be written essay, a powerpoint slide dec, a video, or an audio recording---but it must include the following, to be submitted on Gradescope.
How to read a research paper. When you read a research paper, your goal is to understand the scientific contributions the authors are making. This is not easy, despite the deceptively short appearance of most published computer science papers, and it may require going over the paper several times. Expect to spend multiple hours to read a paper.
Here are some general guidelines for how to read a research paper (adapted from Michael Mitzenmacher's advice on how to read a research paper):
During the first half of the semester, each of you will present a research paper with an assigned partner. This presentation should be approximately 30 minutes and will be followed by a discussion. Your paper, presentation date, and partner will be assigned during the first week of class after you complete the intro survey.
During the second half of the semester, each of you will give a solo presentation on a research paper of your choice selected from the bibliography for your final 190 paper. This presentation should be approximately 15-20 minutes and will be followed by a brief discussion.
For your each presentation you must:
Your presentation will be evaluated on the following concepts:
If it helps, you can consider one of my research papers and corresponding presentatoin as an example.
For this exercise you will use πΏπ΄ππΈπ to create a βshort autobiography.β Your autobiography can focus on whatever youβd like (it can be fiction if youβd like). You do not have any word or page count requirements, but you do need to include each of the features listed below.
Some general advice before you get started:
Your document must at minimum include the following:
\title
,
\author
, and \date
(see Your first
LaTeX document)
\abstract
(see formatting
abstracts)\section
s (see paragraphs
and
sections)~\ref
) each of your figures,
tables, and lists (see Cross
referencing sections, equations and floats).bib
file~\cite
) each reference in textThis GitHub Repository has quite a few tricks that you should consider if you are writing a larger document.
Here are some of my favorite (personally required) packages:
Submit to gradescope.
See the final paper page for details about the final paper milestones and requirements.