Meetings: Tuesday 10:00 - 12:30, 216 College Center. Office Hours: MTW 12:30 - 2:00, or by appointment.
Readings: Arcadia by Tom Stoppard
Description: This is a lab course with no exams and little lecture. It meets once a week, and we work on various projects in class, while I go from group to group guiding and advising. You will need to continue your lab work outside of class and hand in a final report after each lab. Mathematics and computer science have a symbiotic relationship. On the one hand, computers provide us with tools to explore mathematics in deeper ways than ever before. They allow empirical testing of mathematical conjectures with elusive proofs. Computers enable us to experimentally analyze algorithms whose performance defies theoretical analysis. Computers support visualization of mathematical concepts, that would otherwise be too computationally heavy to construct by hand. On the other hand, mathematics provides a structure and formalism that turns the study of computers and their applications into a science and not just an engineering discipline. This course focuses on the delicate balance between theory and practice in computer science, revealing the dual and sometimes contradictory nature of computer science as both an engineering and a mathematical discipline.
Goals: To appreciate the symbiotic relationship between mathematics and computer science. To understand how mathematics is used to formalize computer science, and how computer science can be used as a tool to explore mathematics.
Labs and Expectations: The semester is divided up into approximately five different self-contained labs as time allows. Each lab is divided up into three parts:
Preparation and Programming
Experimentation and Exploration
Enrichment.
Everyone in class will work in groups of two or three. Before each lab, each group will prepare by doing the appropriate readings and meeting in advance to discuss them. In the first meeting of each lab, the topic of the lab will be introduced and reviewed, after which the groups will break out to work on their programming and problem solving. This time will be intense but interactive. It will be a collaboration as the groups use the problem sets to focus on learning the topic explored in that lab. The programs are used to explore open questions about the lab and related topics. The style will be fun and flexible. The idea is to reap the rewards of all the programming work.
Finally, each lab has an enrichment component that examines an aspect of the lab's topic relating to matters outside of computer science and mathematics. It may involve videos, group games, history, theatre, field trips, or simulations.
Sample Lab Topic - Cryptography, Number Theory, and the Internet
Here is an example of one of our labs and its three parts.
This lab studies the abstract mathematics of Greece and the Renaissance and how it relates to modern cryptography. Before the first meeting the students read and study a brief history of cryptography from ancient times to the present.
During the first two meetings, the students write programs to cement their understanding and implement various cryptographic methods. They simultaneously write solutions to problem sets on number theory, to make sure their understanding of the foundations is clear.
During the third meeting, the programs are used to encrypt and decrypt various information. A contest to see who can crack whose codes will commence. Experiments as to the practicality of breaking codes and the safety of e-commerce will be performed. Discussions of the future of the internet and its dependence on results in this area will complete the day.
Enrichment for this lab might discuss the life and times of Alan Turing, a famous pioneer computer scientist and mathematician who worked in England during World War II helping to crack German codes. Turing is also famous for being an outspoken homosexual, who was tormented by his own country (for his sexual preferences) despite his heroic contributions to science and the war. He eventually committed suicide at young age. There is an excellent PBS video on Alan Turing and his life, called Breaking the Code, as well as an acclaimed biography, and a Broadway play based on the biography. Another more modern movie is The Imitation Game, starring Benedict Cumberbatch, which touches on the issue of government control over encrypted information, regulation versus freedom.
Lab Report Format:
For each lab, every group will demonstrate that all programs execute correctly and are designed properly. In addition a lab report should be submitted with three parts:
A title page and introduction to the lab including how the math and computer science interact and assist each other.
Summarize the purpose and results of each program, and display and analyze the results and output. Respond to any explicit questions, problems and/or essays.
Impressions of the lab and/or enrichment: Discuss what you liked best, what you liked least, and what you learned.
Write with enough detail so that an educated reader can reconstruct the details of the lab, without having read through the web site's description.
Grading:
Altogether each group will have four (maybe 5) lab report grades. Final grades will consist of two parts: 80% is an even weighting of the lab report grades and 20% for individual participation, attendance, and interaction throughout the semester.
Useful Links: Mathworld Cut-the-Knot Math in CS
Lab 1 Fractals, Chaos, and Theatre
You should read the play Arcadia before the first day of class. We will watch three scenes from this excellent Berkeley college performance at 0:20, 27:20 and at 48:00.
This lab is an exploration into complex numbers, the scientific theory of chaos, and computer graphics, through the award winning Tom Stoppard play Arcadia. Here is the audio streamed. Here is a video of a high school production of Act I. And, a lovely music video celebrating the Mandelbrot set.
Lab 2 Cryptography
An exploration into the world of abstract number theory and its application to the modern world of e-commerce.
Lab 3 Compression
Lab 4 The Four-Color Theorem (may skip this)
An exploration of a proof with a computer. The proof implies an algorithm that defies analysis.
Interlude Man Versus Machine (may skip this)
Comparing an algorithm to human performance in SameGame.
Lab 5 A Mathematical Card Trick
A computational exploration of a trick where mathematical analysis falls short of a complete solution. A video explaining this lab.