Welcome to CS 125!

I'm Bill Chapman, your instructor for CS125, "Introduction to Computer Science." I am excited to be working with you on your journey into computer science. It is important to me that you do well, both in CS 125 and in the future. Please read this message carefully—it will save you some heartache.

This is a demanding course—it's fast-paced, challenging and fun. CS 125 is designed for students that want to become computer scientists or earn a minor in CS. It's not necessary to have programmed before. We start by assuming you have no prior experience in programming and computer science. We will move swiftly from there though, so it is necessary to stay organized, be self-motivated to do the readings before each lecture, and stay on top of the material. This course is not about getting a good grade—it's about preparing your mind and giving you skills that will set you up for life and for future courses. If you're not prepared to work hard (12+ solid hours per week) on learning and push your brain to analyze and solve technical problems, then this course is not for you. This course requires a significant time commitment, but more importantly, it's a commitment to your future self.

If learning the foundations of computer science is a 2017 priority for you, then welcome—you've come to the right University and you've signed up for the right course! We cover the high school AP materials in ten lectures. We'll be moving fast. Master CS125 and you can call yourself a young computer scientist.

If you're taking overload credits, then you will not have enough time for this course. If you're taking this course just to satisfy a quantitative reasoning requirement—then sign up for another CS course instead—you won't have the right mindset to ride this bullet train. You cannot "go easy" for a week with this course; it's impossible to catch up. If you miss a lecture, go to office hours to catch up. If you miss a discussion section, go to office hours, or another section in the same week.

Many non-CS Majors drop from the course when they discover just how challenging and time-consuming this course is. Last semester about 80 students dropped this class because they did not make it a priority and did not consistently work hard enough. They would be better served by taking a course such as INFO 103, CS101 (and it's really hard to change after one week). Note—CS101 is often full, but slots always open as students drop. So if you want to get into CS101, just start by attending the lectures!

CS125 has programming assignments, weekly quizzes, (the first one is the third week) and a final exam. There's preparation to do before each lecture (online reading plus Turings Craft). This is where most of your learning will happen. Also, you'll have weekly programming assignments which get harder throughout the semester. You'll learn the most from these programming assignments if you start early so you can get help before the grading deadline. Weekly quizzes you will take during your quiz section will assess whether you have kept up with the readings, Turings-Craft exercises, programming problems and lectures. All programming assignments must be attempted, attendance at all lectures and discussion sections is required.

Finally, be prepared to help others and be helped yourself. You will work with other students in lectures, lab-discussion sections, and in several pair programming and peer review assignments. Working with other students is the most efficient and fun way to learn this material, and more importantly, develop life-long friendships.

Looking forward to meeting you all and to a great semester,

Bill and the CS 125 Team