CS 2000 - Fall 2025.


[Home]

Welcome to CS 2000! 12/03/2025

Video of the Day

The Title of the Song, Da Vinci's Notebook. How meta can you get?

Computer science is the science of abstraction.

In lectures, I sometimes present my high level analysis for all movies. The protagonists face challenges and adversity and discover the true meaning of love and friendship. This works for Casablanca, Gone with the Wind, Star Wars, Rocky, etc. It occurs to me that this course has been a similar journey. As a student, you faced the challenges of the problem sets and exams, and now, I conjecture that you have achieved, if not a love of computer science, at least friendship with Python, UNIX, and recursion.

Logical problem of the day

In biology, ontogeny recapitulates phylogeny In computer science courses, pedagogy recapitulates ontogeny (and phylogeny). That is, the order of presentation of topics in a course generally follows the historic order of development of the field. This is not some mere convention. Just as the developments in the field depended on earlier discoveries, the student's understanding of advanced concepts builds on a comprehension of more basic ideas. Newton famously stood on the shoulders of giants.

The topics in this course included the following:

See CS 200 Jupyter Notebooks including Machine Learning.

Rank the topics from the course in order from most useful or interesting (top) to least useful or interesting (bottom).

https://pollev.com/slade You may also download the app to your phone. Use the "slade" poll ID.

Poem of the Day

From Claude Sonnet 4
Here's a limerick about the one-time pad:

A cipher that's perfectly strong
Uses keys that are random and long
Each bit is XOR'd once
(No cryptanalyst hunts!)
But key sharing still goes quite wrong

Or another one:

There once was a pad, oh so keen
The most secure cipher you've seen
But the key must be new
And as long as words too—
Perfect crypto, but hard to routine!
  

The one-time pad is theoretically unbreakable when used correctly, but the practical challenges of key distribution and ensuring true randomness make it difficult to implement in real-world scenarios!

Canvas Quiz of the Day (need daily password)

Most days, there will be a simple canvas quiz related to the lecture. You need a password to activate the quiz, which I will provide in class. These quizzes will count toward your class participation grade. The quiz is available only during class. Note: each quiz is now worth 5 points.

Click for today's quiz.

Lecture 25: Final Review.

Administrivia

  • Final exam date has been announced: Monday, December 15th at 9am. DL 220. (See below)

  • I have office hours Wednesdays from 4-6 pm, on Zoom, ID 459 434 2854. NOT NEXT WEEK

  • ULA office hours are found at Ed Discussions on Canvas.

  • CS Peer Advisers. Fall 2025 Peer Advisors Office Hours Schedule.

  • Homework assignments: [Assignments]. hw7 is now available.

    Announcements

  • The Data on Self-Driving Cars Is Clear. We Have to Change Course. December 2, 2025. New York Times.

  • Self-driving car lecture 2015.

    CS 2230 - Data Structures

    Many of you are considering taking CS 2230, Data Structures, next semester. The online syllabus and lecture notes are quite detailed. The textbook is the The C Programming Language by Kernighan and Ritchie. It is the most influential programming book ever written. It is the Bible. You can get it from Amazon. There are also numerous Youtube videos starring Kernighan and others discussing C and UNIX.

    My advice is to write as many C programs as possible over the break.

    LinkedIn

    Many of you may have social media accounts on Facebook, X, Instagram, and others. You may also use github as a code repository and portfoliio to show to prospective employers.

    All good. I recommend that you also create a LinkedIn account as an online resume. I invite all of my Yale students to connect to me on LinkedIn to leverage my network, such as it is. I also am interested in following your trajectory, but not in a creepy way.

    Final Exam

    Monday December 15th, 9am. DL 220.

    Here is a practice final exam and practice final solutions.

    Here are the important concepts from Stamp:

    Plus concepts from hw7 including xor, base64, shell scripts.

    Shell scripts: I might ask you to write a shell script. You should know the for loop.

    The following topics were part of this course and are in scope for the final:

    If your grade on the final exam is higher than your lower midterm grade, it will replace that grade. The quality of mercy is not strained.

    Alas, we did not get to machine learning. See scikit learn aka, sklearn. Python module for machine learning. Machine learning jupyter notebook

    Cryptography

    Cryptography notebook Chapter 2, slide 10.

    See hw7hints.py You may need to install the module: wordsegment. (May need to run on lion using python 3.10. Sigh.)

    pip install wordsegment
      

    Review of encode and decode shell scripts. See openssl man page.

        openssl --help
        openssl enc --help
      

    Getting to know UNIX

    UNIX Introduction Completed!

    Startup file for mac terminal: ~/.bash_profile instead of ~/.bashrc

    Farewell and Gratitude

    Valedictory Cavafy: Ithaka

    More appropriate: Billy Collins (who wrote the hw7 poems. The following is poem2. Think about your mother over break.) youtube


    [Home]