DOC PREVIEW
Stanford CS 106A - Course Placement Information

This preview shows page 1 out of 3 pages.

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

Unformatted text preview:

Mehran Sahami Handout #3 CS 106A September 24, 2007 Course Placement Information Based on a handout by Eric Roberts Computers are everywhere in today’s world. The more you know about computers, the better 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 way that is both liberating and exciting. At the same time, programming is an intellectually challenging activity that comes easily to very few people. Taking a programming course requires a great deal of work and commitment on your part, but you will not be able to master 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 the demands of the material, you will be able to make computers do amazing things. As you begin your journey in computing at Stanford, it would serve you well to decide what are the best options for you along this route. What introductory programming course should I take? A very large percentage of Stanford students take a programming course from the Computer Science Department at some point during their undergraduate career. Because we need to accommodate students with a wide range of backgrounds and interests, the CS department offers several different introductory classes: • CS 105—Introduction to Computing. This course is designed as a general-education introduction to what this rapidly expanding field of computer science is all about. It attracts an audience of approximately 250 students a year, most of whom take the course primarily to meet the Stanford General Education Requirement in category DB-EngrAppSci (formerly GER:2b). If your only interest is in meeting that requirement, CS 105 is likely to be the most appropriate course. Like any programming course, CS 105 requires a reasonable amount of work, but not as much as CS 106A. CS 105 is offered in Autumn and Spring quarters. • CS 106A—Programming Methodology. This course is the largest of the introductory programming courses and is one of the largest courses at Stanford. CS106A teaches the widely-used Java programming language along with good software engineering principles. The course is explicitly designed to appeal to humanists and social scientists as well as hard-core techies. In fact, most CS 106A graduates end up majoring outside of the School of Engineering. The course requires no previous background in programming, but does require considerable dedication and hard work. CS106A is offered in the Autumn, Winter, and Spring. • CS 106B—Programming Abstractions. This course is the natural successor to CS 106A and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java. If you've taken the Computer Science AP exam and done well (scored 4 or 5) or earned a good grade in a college course, CS106B may be an– 2 – appropriate course for you to start with, but often CS106X is a better choice. CS106B assumes that you already have familiarity with good programming style and software engineering issues (at the level of CS106A), and that you can use this understanding as a foundation on which to tackle new topics in programming and data abstraction. CS106B is offered in the Winter and Spring this year. • CS 106X—Programming Methodology and Abstractions (Accelerated). CS106X currently operates as an "honors" version of our CS106B course. It is taught using the C++ programming language and covers the same topics as CS106B but with more in-depth coverage. 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 background comparable to our CS106A course, and should have sufficient maturity and dedication to tackle an intense challenge. If you’ve had previous programming experience, this class is an excellent way to learn C++ and brush up on your skills. If you haven’t done much 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 ―real engineers take CS 106X.‖ These days, most computer scientists and engineers (which would also include your current CS106A instructor when he was in your shoes) start with CS 106A, where they do just fine. The last thing you want to do is get in over your head. If you think you are ready for CS106X, you might want to see how you feel about the course expectations and pace after attending the first few classes. CS 106X is offered in the Autumn and Winter this year. Note: Students who have previously taken CS106A and wish to enroll in CS106X in place of CS106B (if CS106B is not offered that quarter) are free to do so. You just need be prepared for a fast paced course. I already know how to program—shouldn’t I skip the intro courses altogether? Many students entering Stanford today have had considerable programming experience in high school or from their own independent work with computers. If you are in that position, the idea of starting with a beginning programming course—even an intensive one like CS 106X—seems like a waste of time. Your perception may in fact be correct. In my experience, there are at somewhere between 10 and 15 students in each entering class 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 computing courses are quite weak and provide very little background in modern software engineering techniques. By taking CS 106, you will learn how the CS department at Stanford approaches programming and get a solid foundation for more advanced work. If you’re unsure where you should start the programming sequence, please talk with me. Other courses As computers become more powerful, it is possible to use them for increasingly sophisticated tasks without engaging in programming, at least in a traditional sense. The CS 106


View Full Document

Stanford CS 106A - 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?