CPSC 120 | Principles of Computer Science | Fall 2025 |
On this page:
Course Description and Objectives |
This course is an introduction to computer science. What does that mean? Programming is a key element of computer science, so we'll spend a fair amount of time thinking about and doing programming. But programming isn't all there is to computer science — the "principles" referred to in the course title include concepts like representation and abstraction and computability and skills like logical thinking and algorithm development. This course will focus on graphics and animation, with an emphasis on how we might write programs to replicate aspects of the natural world. Through labs and projects, students will program increasingly sophisticated interactive animated "sketches" which will showcase the concepts introduced in the course. This course is appropriate for students who are interested in computer science as well as those interested in employing computers in the creation of art (e.g. majors or minors in art, media and society, etc). No background in computer science or computer programming is necessary or expected. (If you've had previous programming experience, you should take CPSC 124 instead.) The course is intended to be taken by non-majors as well as those who might be considering majoring or minoring in computer science but want to test the waters before taking CPSC 124. (For those who continue on in computer science, this course will give you a head start by introducing concepts and skills that you'll revisit in CPSC 124 and later courses. CPSC 120 can also be counted towards the CS major or minor if taken before CPSC 124.) The course has three broad goals:
Note that this is not a course on general computer skills or on how to use particular software applications like Word or Excel. While you will gain experience and skills that will increase your computer literacy, the emphasis in this course is on the science of computing rather than on how to use a computer. This is also not a programming course as such. While a good deal of time will be spent programming and talking about programming, programming concepts will be introduced to service our twin goals of exploring key principles of computer science and creating nifty pictures — concepts will not be covered as broadly or as deeply as they would be in a course whose primary goal is proficiency in programming. Students who wish more programming experience after completing CPSC 120 should take an introductory programming course such as CPSC 124. By the end of the course, the successful student will be able to:
|
---|---|
Class Format and Expectations |
Computer science and programming are subjects best learned by doing. Most "lecture" class periods will be a combination of lecture, interactive examples, and hands-on group activities to practice applying the material. Friday classes will generally be used as lab sessions to work on the weekly lab assignment or (later in the course) topics problems. Graded assignments consist of weekly labs, topics problems, and a final project. There will be two kinds of proctored assessments: written exams (two midterms, one final) and presentation meetings. The presentation meetings are an opportunity to present and discuss one programming task from each lab and the final project. For this course, you are expected to:
(*) The assigned work is intended to take about this much time, though your experience may vary. However, if you routinely spend much less time, you may not be successfully mastering the material — or you should challenge yourself by tackling some of the extra credit! — and if you routinely spend substantially more time, especially if you feel like you are spinning your wheels and not making progress, you should visit the Teaching Fellows and/or office hours for help. |
Prerequisites |
None. |
Course Materials |
TextbookLearning Processing, 2nd edition The textbook is required, and should be purchased from the College Store or elsewhere. We will begin using the book right away so you should obtain it promptly. Chapter 1 is available as a PDF download from the book's website (use the "Download Sample" link) but be aware that we'll be on to chapters 2 and 3 by the second week of class. SoftwareThis course uses a programming language called Processing. Processing was developed specifically for people who want to program using graphics, images, interaction, and animation but who don't know anything about programming. One of the exciting things about Processing is that you can create very sophisticated-looking programs much more easily — and with a lot less knowledge — than you can in most programming languages. (Another advantage of Processing is that under the hood, it is really the same as the powerful and well-known language Java — Processing just strips and out simplifies a lot of the tricky stuff Java makes you do so you can create nifty graphical programs from day one. This means that should you decide to continue on in computer science, what you learn in this course will give you a good head start in CPSC 124.) Processing is available on the computers in Demarest 002, in the Math/CS department lab in Lansing 310, and remotely through the Linux VDI. It is recommended that you access Processing through Linux. However, it is also possible to set up your own computer. Processing can also be downloaded for free and is available for Windows, Mac, and Linux. (To be consistent with the lab environment, download Processing 4.3 rather than the newest version.) You will also need a file transfer program such as FileZilla. Other MaterialsYou will likely find it useful to have a notebook for taking notes in class and a folder for keeping track of class handouts. |