Based on a play by Shakespeare, with music by a Yale graduate, this number captures the feeling of hope, promise, uncertainty, and even trepidation felt by many of us in this course. Welcome back!
https://pollev.com/slade You may also download the app to your phone. Use the "slade" poll id. Note: you do not need to register. We don't grade these submissions.
Discussion of Course and Instructor: Stephen Slade
Sophie Park
MW 11:35am - 12:50pm, plus sections.
Introduction to computer science and Python programming with domain-specific applications. Students learn how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, web development, and statistical tools. Students learn to apply computing techniques in the fields of social sciences & humanities by analyzing data. No previous programming experience is required. This course is intended for students of social sciences & humanities majors.
Instructor varies by section
MW 11:35-12:50
Development on the computer of programming skills, problem-solving
methods, and selected applications.
Roy Lederman
TTh 2:30pm - 3:45pm
Computational, programming, and statistical skills are no longer
optional in our increasingly data-driven world; these skills are
essential for opening doors to manifold research and career
opportunities. This course aims to dramatically enhance knowledge and
capabilities in fundamental ideas and skills in data science,
especially computational and programming skills along with inferential
thinking. YData is an introduction to Data Science that emphasizes the
development of these skills while providing opportunities for hands-on
experience and practice. YData is accessible to students with little
or no background in computing, programming, or statistics, but is also
engaging for more technically oriented students through extensive use
of examples and hands-on data analysis. Python 3, a popular and widely
used computing language, is the language used in this course. The
computing materials will be hosted on a special purpose web server.
If you're thinking of taking CPSC 201, please do the following.
![]()
Come join STEM Navigators at our Spring Kickoff + STEM Extracurricular Bazaar on Friday, January 17th, from 3:00–4:00 PM at the Poorvu Center, Room 120A! Enjoy hot chocolate and cookies while meeting STEM Navigators mentors and members from 13 of Yale’s STEM organizations, representing fields ranging from healthcare to computer science and engineering. This is a fantastic opportunity to learn more about the STEM Navigators program, explore Yale’s STEM extracurriculars in a focused and intimate setting, and discover ways to engage with the STEM community. RSVP here, and check out the list of participating extracurriculars here. Everyone is welcome to attend, regardless of involvement in STEM Navigators!”
Perlis epigram 19: A language that doesn't affect the way you think about programming is not worth knowing.
The language we'll use this term, Racket, is an offshoot of Scheme, which is an offshoot of LISP, which was designed as a higher-level language for writing artificial intelligence programs. We choose Racket because it is high-level, functional (as opposed to imperative), emphasizes recursion, and is unfamiliar to almost all students taking CPSC 201. It is definitely not widely used in industry. One goal is for you to learn new tools and paradigms for programming, to "affect the way you think about programming." It will be frustrating at times -- no assignment statements, no obvious analogs of for and while statements -- but it will expand your view of what programming can be.
We conclude with a gentle demonstration of Scheme (Racket) in action: 0113.rkt in which we do the following:
(num-to-word 9) ==> "nine"
To some of you, the organization of topics in this course may seem hazy, like the shadows in Plato's cave. I want to assure you that, like in Blackadder, there is a cunning plan.
For years, academic computer scientists have debated the role of programming in introductory computer science courses. Many have argued that an introductory science course should expose the student to the great ideas of the discipline. Thus, an introductory biology course should cover topics such as evolution and molecular genetics, but not how to build a microscope. Accordingly, a computer science course should emphasize the major intellectual issues of computing, not how to write programs.Here is the our framework.We do not agree with this position. First, programming is a major intellectual issue in computer science. Second, the comparison of programming to building a microscope misses the point. Writing programs in computer science is more like building a living organism in biology. If biology had advanced to a stage that permitted introductory students easily to construct amoebas and clams and roses and rabbits, there would be little debate over the intellectual content of such exercises. (Slade, The T Programming Language, 1987)
Note: there are three other rules for public speaking...