Title: Introduction to CS 106B
1Introduction to CS 106B
Eric Roberts CS 106B September 21, 2009
2CS 106B Staff
Professor Eric Roberts eroberts_at_cs.stanford.edu O
ffice Hours (Gates 202) Tuesdays
930-1130 Wednesdays 430-530
Head TA Ilya Sherman isherman_at_stanford.edu Office
Hours (Gates 160) TBA
3Meeting Place
4Is CS 106B the Right Course?
5Learning More about C
CS 106B is a course about programming
abstractions, not about C itself. If you want
to learn the details, take CS 106L
6SyllabusWeek 1
7SyllabusWeek 2
8SyllabusWeek 3
9SyllabusWeek 4
10SyllabusWeek 5
Midterm Exam Tuesday, October 20 315 or 700 P.M.
11SyllabusWeek 6
12SyllabusWeek 7
13SyllabusWeek 8
14SyllabusWeek 9
15Thanksgiving Week
Thanksgiving week (no class)
16Dead Week and Beyond
Final Exam times Tuesday, December 8 Thursday,
December 10 1215-315 P.M.
17The Big Ideas in CS 106B
- Recursion. Recursion is an enormously powerful
technique that enables you to solve complex
problems that you would never be able to solve
without it. - Data abstraction. For most of the quarter, well
be learning about a variety of abstract data
types that will prove to be enormously valuable
as you write programs. - Algorithmic efficiency. As you will learn over
the course of the quarter, different algorithms
can vary enormously in terms of the amount of
time required to solve a particular problem. In
CS 106B, you will learn how to measure
algorithmic efficiency along with some general
techniques for developing efficient algorithms.
18Assignments in CS 106B
- Assignments in CS 106B are due at 500P.M.
Assignments that come in after 500 will be
considered late. - Everyone in CS 106B starts the quarter with two
late days that you can use at any time you need
some extra time. In my courses, late days
correspond to class meetings, so that, if an
assignment is due on Wednesday and you turn it in
on Friday, that counts as one late day. - Extensions can be approved only by Ilya Sherman.
- Assignments are graded by your section leader,
who discusses your work in an interactive,
one-on-one grading session. - Each assignment is given two grades one on
functionality and one on programming style.
Style matters. Companies in Silicon Valley
expect Stanford graduates to understand how to
write code that other programmers can maintain.
19The CS 106B Grading Scale
- Functionality and style grades for the
assignments use the following scale
20Contests
- CS 106B will have three contests as follows
- The Random Writer Contest associated with
Assignment 2 - The Recursion Contest associated with Assignment
3 - The BASIC Contest associated with Assignment 5
- First prize in the contest is a score of 100 on
one of the graded components of the course,
typically the final exam. - As an additional incentive, entering any of the
contests gives you chances to win an additional
grand prize in a random drawing at the end of the
quarter. - Securing a runner-up prize or an honorable
mention on any contest gives you additional
chances in the random drawing, as does having an
assignment submitted as a candidate. You can
also gain chances by reporting errors in the text
and by making useful suggestions for updating the
examples.
21Why Study Computer Science
- The computing industry offers some of the best
employment opportunities for college graduates in
the United States today - The number of jobs in the domestic software
industry are at an all-time high and are
projected to grow dramatically over the next
decade. - Salaries for newly minted B.S. graduates in
Computer Science are high, sometimes exceeding
the 100,000 mark. - In 2005, Money magazine rated software engineer
as the number one job in America. - Employment in this area is vital for national
competitiveness.
- At the same time, student interest in these
disciplines has plummeted. In the United States,
computing enrollments fell by almost 50 percent
from 2000 to 2006.
22Degree Production vs. Job Openings
160,000
Ph.D.
140,000
Masters
120,000
Bachelors
100,000
Projected job openings
80,000
60,000
40,000
20,000
Engineering
Physical Sciences
Biological Sciences
Adapted from a presentation by John Sargent,
Senior Policy Analyst, Department of Commerce, at
the CRA Computing Research Summit, February 23,
2004. Original sources listed as National
Science Foundation/Division of Science Resources
Statistics degree data from Department of
Education/National Center for Education
Statistics Integrated Postsecondary Education
Data System Completions Survey and NSF/SRS
Survey of Earned Doctorates and Projected Annual
Average Job Openings derived from Department of
Commerce (Office of Technology Policy) analysis
of Bureau of Labor Statistics 2002-2012
projections. See http//www.cra.org/govaffairs/co
ntent.php?cid22.
Sources
23The End
24A Thought Experiment about Offshoring
- Suppose that you are Microsoft and that you can
hire a software developer from Stanford whose
loaded costs will be 200,000 per year. Over in
Bangalore, however, you can hire a software
developer for 75,000 per year. Both are equally
talented and will create 1,000,000 annually in
value. What do you do?
- Although the developer in Bangalore has a higher
return, the optimal strategy is to hire them
both. After all, why throw away 800,000 a year?