< CS101

CS101 Syllabus

CS101, Introduction to Computing Principles, is a course created by Nick Parlante to teach the essential ideas computers to an audience with no prior computer experience. CS101 is geared to use live code exercises most days in class -- bringing the ideas to life, but without bogging down too much in computer idiosyncrasies. It is recommended to bring a laptop or tablet to lecture each day to follow along with the work. CS101 is not as demanding as a full introductory-programming course like CS106A.

What "essential ideas of computer science" means we will revisit many times. For now we'll say that, despite appearances, computers have a few simple, deep qualities which govern how they work, and understanding those qualities is useful for anyone.

CS101 Theme

The background story for CS101 goes like this...

CS101 Online etc.

Google generously supported the initial research to create some of the materials that have gone into CS101. I'm also experimenting with putting the materials up on the web as a MOOC, and making the materials freely available for others to mix and re-use.

Course Details

Course Format

Grading / Partners

We'll have regular homeworks (homework = 35% of grade). There will be 1 in-class midterm and 1 final exam (exams = 65% of grade). The exam problems will very much resemble the homework problems, so really the point of the homeworks is giving you practice on problems you can then do on the exams. You must pass the final exam to pass the class. If someone does terrible on the midterm but gets it together to do well on the final, I will count their midterm less.

You can do the homeworks with one partner if you prefer. You cannot switch partners mid-homework (e.g. homework-1), but you can switch for a later homework. Given the high similarity between the homeworks and exams ... letting your partner do all the work would be a big mistake. If you are both learning the material, it's fine.

Late Days

Every student gets 3 "late days" to use to extend the deadline of an assignment. No permission is required to use these .. just turn the work in late. These are to account the various problems and miscues real life, allowing you a little extra time to turn in high quality work. On the other hand, 3 days is not much, so plan to hit the deadlines and save the late days for real emergencies. We record how late each assignment is turned in and do an accounting at the end of the quarter.

The goal of the late-day system is treating all the students the same. After the late days are used up, work loses a half letter grade per day. If you have an exceptional circumstance, contact Nick to see about getting some sort of accommodation.

Honor Code

In the spirit of collegial and cooperative learning, you are free to discuss ideas and approaches with other students, and then implement the solution yourself. The key is this: all the code you submit you should type in and get working yourself. In particular, it is not appropriate to email or share multi-line code phrases to be pasted in (except with your partner). The Computer Science department produces many honor code cases at Stanford. This is not because CS is a magnet for cheating; it's just that online submissions provide a large body of evidence, and computer science has tools which do an extremely good job of finding cheating.

Each homework submission has a "README" section where you can write notes for the grader. If you think a bit of collaboration may have crossed the line, mention it in your README notes for that homework. You can never get in honor code trouble for collaboration mentioned in this way. We'll have a separate document about the logistics of turning in homework.

Javascript Computer Language

We'll be using a variant of the Javascript computer language for our coding exercises. We will definitely not be learning or using the whole language. Instead, we'll explore coding in a few well carved-out areas, doing examples and exercises within those areas. CS101 provides substantial "foundation" code that your code will be built on ... allowing us to focus on key ideas without writing entire computer programs.

Firefox and other Browsers

The CS101 infrastructure that supports our work within the browser is pretty advanced, so it only works with the most recent versions of Firefox, Chrome and Safari, with Firefox probably being the best choice: get firefox. Microsoft Internet Explorer is a little iffy but might work.

Topics and Weekly Schedule

Below is an weekly topic plan. Some weeks focus on coding, and other weeks have topics lectures such as "networking" or "bits and bytes".

CS101 - The Big Picture

CS101 uses some neat code exercises to teach the key ideas of computing. Those ideas are useful for everyone.