DOC PREVIEW
Stanford CS 106B - Course Placement Information

This preview shows page 1 out of 2 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 2 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 2 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Eric Roberts Handout #1CS 106B April 1, 2009Course Placement InformationParts of this handout were written by Mehran Sahami.Computers are everywhere in today’s world. The more you know about computers, thebetter prepared you will be to make use of them in whatever field you choose to pursue.Learning to program computers unlocks the full power of computer technology in a waythat is both liberating and exciting. At the same time, programming is an intellectuallychallenging activity that comes easily to very few people. Taking a programming courserequires a great deal of work and commitment on your part, but you will not be able tomaster programming without putting in that level of work somewhere along the way.The payoffs, however, are quite real. If you make the effort and keep up with thedemands of the material, you will be able to make computers do amazing things.What introductory programming course should I take?A large percentage of Stanford students take a programming course from the ComputerScience Department at some point during their undergraduate career. Because we need toaccommodate students with a range of backgrounds and interests, the department offersseveral different introductory classes:• CS 105—Introduction to Computing. This course is designed as a general-educationintroduction to what this rapidly expanding field of computer science is all about. Itattracts an audience of approximately 250 students a year, most of whom take thecourse primarily to meet the Stanford General Education Requirement in categoryDB-EngrAppSci. If your only interest is in meeting that requirement, CS 105 is likelyto be the most appropriate course. Like any programming course, CS 105 requires areasonable amount of work, but not as much as CS 106A. CS 105 meets MWF at1:15P.M. in Hewlett 200.• CS 106A—Programming Methodology. This course is the largest of the introductoryprogramming courses and was for several years the largest course at Stanford.CS 106A is explicitly designed to appeal to humanists and social scientists as well ashard-core techies. In fact, most CS 106A graduates end up majoring outside of theSchool of Engineering. The course requires no previous background in programming,but does require considerable dedication and hard work. CS 106A is offered everyquarter; this spring, the course meets MWF at 3:15P.M. in Hewlett 200.• CS 106B—Programming Abstractions. This course is the natural successor toCS 106A and covers such advanced programming topics as recursion, algorithmicanalysis, and object-oriented design. It uses the programming language C++, which isrelatively easy to learn from a background in either C or Java. While CS 106B isdesigned primarily to serve as a follow-on to CS 106A, it also makes a good entrypoint into the sequence for students who have taken AP Computer Science A or somecomparable course in high school. (If you’ve taken the Computer Science AB courseand done well, you should consider skipping CS 106 altogether as described in thefollowing section.) This quarter, CS 106B meets MWF at 2:15P.M. in Hewlett 200.• CS 106X—Programming Methodology and Abstractions (accelerated). CS 106Xcurrently operates as an “honors” version of our CS 106B course. It is taught using theC++ programming language and covers the same topics as CS 106B but with more in-depth coverage in some areas. In order to get through that much material in a quarter,CS 106X moves at a very fast pace. Students are expected to have solid backgroundcomparable to our CS 106A course, and should have sufficient maturity and dedication– 2 –to tackle an intense challenge. If you’ve had previous programming experience, thisclass is an excellent way to learn C++ and brush up on your skills. If you haven’t donemuch programming before or don’t feel comfortable with your programming skills,you should take the CS 106A/B sequence instead. Don’t let anyone tell you that “realengineers take CS 106X.” These days, most computer scientists and engineers startwith CS 106A, where they do just fine. The last thing you want to do is get in overyour head. This quarter, CS 106X meets MWF at 10:00 A.M. in Gates B-3.I already know how to program—shouldn’t I skip the intro courses altogether?Many students entering Stanford today have had considerable programming experience inhigh school or from their own independent work with computers. If you are in thatposition, the idea of starting with a beginning programming course—even an intensiveone like CS 106X—seems like a waste of time. Your perception may in fact be correct.In my experience, there are at somewhere between 15 and 20 students in each enteringclass who should start at a more advanced point in the sequence. For most of you,however, the right place to start is with the CS 106 series. Most high-school computingcourses are quite weak and provide very little background in modern softwareengineering techniques. By taking CS 106X, you will learn how the CS department atStanford approaches programming and get a solid foundation for more advanced work. Ifyou’re unsure as to where you should start the programming sequence, please talk to theCS 106 course staff.Other coursesAs computers become more powerful, it is possible to use them for increasinglysophisticated tasks without engaging in programming, at least in a traditional sense. TheCS 106 courses teach you about programming, and not about a particular programminglanguage.If your goal is knowing more about how to use computers, you should investigate thefollowing courses:• CS 1C—Introduction to Computing at Stanford. This one-unit course is offered in theautumn quarter only and makes sure you have a level of “computer literacy” that willallow you to function effectively at Stanford. It does not teach programming at all.• CS 2C—Intermediate Computing at Stanford. This course is a continuation of CS 1Cand covers more advanced topics in web-page creation and applications likePhotoshop, Dreamweaver, and iMovie. Like CS 1C, the continuation is a one-unitcourse taught in the dorms that requires no programming


View Full Document

Stanford CS 106B - Course Placement Information

Download Course Placement Information
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Course Placement Information and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Course Placement Information 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?