0% found this document useful (0 votes)
285 views25 pages

Introduction To CS 106A

This document provides an introduction and overview of CS 106A, an introductory computer science course at Stanford University. It discusses why computer science is a valuable field of study, highlighting high employment and salary prospects. It also outlines the course staff, syllabus, assignments, grading policy, and contests. Academic integrity is enforced through Stanford's Honor Code.

Uploaded by

api-127299018
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
285 views25 pages

Introduction To CS 106A

This document provides an introduction and overview of CS 106A, an introductory computer science course at Stanford University. It discusses why computer science is a valuable field of study, highlighting high employment and salary prospects. It also outlines the course staff, syllabus, assignments, grading policy, and contests. Academic integrity is enforced through Stanford's Honor Code.

Uploaded by

api-127299018
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Introduction to CS 106A

Eric Roberts CS 106A April 2, 2012

Why 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 Employment (thousands) high, sometimes exceeding the $100,000 mark. Growth Top 10 job growth categories (2006-2016) 2006 2016 In 2005, Money magazine rated software engineer 262the number53.4 as one 1. Network systems and data communications analysts 402 job in America. 2. Personal and home care aides Employment in this area is vital for the economy. 767 1,156 50.6
Home health aides Computer software engineers, applications Veterinary technologists and technicians Google financial advisors to hire this years Personal and Facebook are fighting hard weve heard, and crop of computer science graduates, ground Stanford. Most of the Makeup zero is even though graduationclass of 2008 already artists, theatrical and performance have job offers is months away. Last year, salaries of up to $70,000 were common for the Medical assistants year, Facebook is said to be offering best students. This $92,000, and Google has increased some offers to $95,000 Veterinarians to get their share of graduates. Students with a Masters degree in Computer Science are being offered as Substance for associate product managerdisorder much as counselors $130,000 abuse and behavioral jobs at Google. 787 507 71 176 2 465 62 83 1,171 733 100 248 3 148 84 112 48.7 44.6 41.0 41.0 39.8 35.4 35.0 34.3

3. 4. 5. 6. 7. 8. 9. 10.

Source: U.S. Department of Labor, Bureau of Labor Statistics, Employment Projections: 2006-16, December 2007.

Why Study Computer Science


Phil Levis, http://csl.stanford.edu/~pal/ed/
Doctorate Masters Bachelors Job openings 161,857 129,045

94,889

49,200 31,357 10,075

57,127

55,208

Physical Sciences

Biological Sciences

Engineering

Computer Science

The educational data comes from the National Center for Education Statistics IPEDS (Integrated Postsecondary Education Data System) Data Center. The data used is for degrees granted in the 2008-2009 academicvery happy with the students that we get from this We are year. The employment data comes from the Department of Labors Occupational Outlook Handbook for times as many of them. 2010-11. This handbook includes employment for 2008 as well as a 10-year projection to 2018. I Bill Gates at I calculated job openings per year manually selected which occupations mapped to which degrees.Stanford, February 19, 2008 as 10% of the expected job growth over 2008-2018 plus 2.5% of the number of jobs in 2008. This second term describes the number of jobs opening as people retire. It assumes that people work for 40 years and leave a job at a uniform rate; the latter is of course not true in difficult economic times.

university. . . . We just wish we could hire two to three

Why 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 the economy.

Beyond its marketability, computer science is an intellectually challenging and highly creative discipline. It can also be a great deal of fun. In CS 106A, we will cover many of the ideas and skills you need to begin a career in this field. At the same time, we try as hard as we can not to lose sight of the creativity and fun, making sure you have ample opportunities for both.

CS 106A Staff
Professor: Eric Roberts
[email protected]

Office Hours (Gates 202): Tuesdays 9:30-11:30

Head TA: Jeremy Keeshin


[email protected]

Office Hours (Gates 160): TBA

Is CS 106A the Right Course?

Important Administrative Notes


You must sign up for a section to be enrolled in the course. Section signups will start at 5:00P.M. on Thursday and close at 5:00P.M. on Saturday. Be sure to sign up during that time at
http://cs198.stanford.edu/section/

Undergraduates must take CS 106A for 5 units. Unfortunately, the default on Axess is 3 units, so make sure that you change this value as you register.
All handouts, assignments, lecture slides, and announcements are posted on the course web site at
http://cs106a.stanford.edu/

Both the midterm and the final are given at two scheduled times as shown in Handout #2. Special arrangements can be made for those who cannot make either time.

SyllabusWeek 1

April 2 Administration CS and the Honor Code Meet Karel the Robot

4 Simple Karel programs Extending the Karel class The concept of inheritance Control structures in Karel

6 Problem-solving in Karel Program decomposition The idea of an algorithm

Friday Four-Square
Read: Karel, Chapters 1-3 Read: Karel, Chapters 4-6

SyllabusWeek 2

9 Programming by example Classes and objects The Program hierarchy Simple graphical objects

11 Variables and values Arithmetic expressions Common idioms

13 Control statements Boolean data Simple animations

Read: Java, Chapter 1

Read: Chapters 2 and 3

Read: Chapter 4 Due: HW #1 (Karel)

SyllabusWeek 3

16 Methods The role of parameters

18 Pseudorandom numbers The RandomGenerator class Reading javadoc

20 Objects and classes Constructors Inheritance

Read: Chapter 5 Due: Karel contest

Read: Sections 6.1-6.2 Due: HW #2 (Simple Java)

Read: Sections 6.3-6.6

SyllabusWeek 4

23 The acm.graphics package Responding to mouse events The Java listener model

25 Graphical structures The GPolygon class Creating compound objects

27 Character data Using Javas String class

Read: Sections 9.1-9.3 Read: Sections 10.1-10.3

Read: Section 9.4 Due: Parameter Problem Set

Read: Sections 8.1-8.4

SyllabusWeek 5

30 String manipulation Problem-solving with strings

May 2 Data representation Objects and memory

4 Arrays in Java

Read: Section 8.5

Read: Chapter 7 Due: HW #3 (Breakout)

Read: Sections 8.1-8.4

SyllabusWeek 6

7 Debugging strategies

9 Multidimensional arrays

11 Pixel arrays Image manipulation

Midterm Exam Tuesday, May 8 9:00 A.M. or 3:15 P.M. Read: Section 11.7 Due: HW #4 (TurtleGraphics)

Due: Graphics contest

Read: Section 11.6

SyllabusWeek 7

14 Swing interactors The JComponent hierarchy Action listeners

16 The ArrayList class Simple file I/O

18 Java collection classes The HashMap class Iterators

Read: Sections 10.5-10.6

Read: Sections 11.8, 12.4

Read: Chapter 13 Due: HW #5 (ImageShop)

SyllabusWeek 8

21 The acm.gui package The TableLayout class Designing GUIs

23 Large-scale data structures Data-driven programs

25 Overview of Adventure!

Read: Sections 10.7-10.8

Read: Adventure handout Due: HW #6 (NameSurfer)

SyllabusWeek 9

28 Memorial Day

30 Sorting and searching Algorithmic analysis

June 1 Looking ahead: Recursion Concurrency Programming patterns

(no class)

Read: Sections 12.1-12.3

Read: Chapter 14

Dead Week and Beyond

4 Frontiers of computing (optional)

Review session: Wednesday, June 6 7:00-9:00 P.M.

Final Exam times: Friday, June 8 Monday, June 11 8:30-11:30 A.M.

Due: HW #7 (Adventure) Due: Adventure contest

Assignments in CS 106A
Assignments in CS 106A are due at 5:00P.M. Assignments that come in after 5:00 will be considered late. Everyone in CS 106A 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 the TA, Jeremy Keeshin. 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.

The CS 106A Grading Scale


Functionality and style grades for the assignments use the following scale: A submission so good it makes you weep. Exceeds requirements. Satisfies all requirements of the assignment. Meets most requirements, but with some problems. Some more serious problems.

Even worse than that.


Why did you turn this in?

Contests
CS 106A will have three contests as follows:
The Karel Contest associated with Assignment #1 The Graphics Contest associated with Assignment #3 The Adventure Contest associated with Assignment #7

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. Entering a contest also earns house points for your class in the style of the Hogwarts School from Harry Potter. 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.

Honor Code Rules


Rule 1: You must indicate on your submission any assistance you received.

Rule 2: You must not share actual program code with other students.
Rule 3: You must not look at solution sets or program code from other years Rule 4: You must be prepared to explain any program code you submit.

Encouraging Academic Integrity


No one likes exams. Unfortunately, as long as the rate of Honor Code violations remains high, we have no real option. This quarter, I will adopt the following strategy to encourage academic integrity. The weight of the final exam will be 15% + 5% for each Honor Code case filed this quarter

The weight assigned to the homework will be whatever is left after the announced weights are assigned to the various other components, subject to a minimum of 15%.
For example, if no Honor Code cases come up this quarter, the final will count for 15% and the homework will count for 60%. If, however, there are three cases (as there were when I taught 106A in 2009), the final will count for 30% and the homework for 45%. And so on . . .

Meet Karel the Robot


Karel the otheris surrounded of streetsprimitive commands: it Initially, Robot was that exist insolid Stanford are Richard The onlyKarel objectsdeveloped four and avenuesby which Karels world understands only ahere atwall through beepers, composed by Karels world numbered which move. Depending Since emit a quiet beeping eastcannot are 30 yearsMove forwardin Manhattan, streets runmany from oversmall plastic cones that problem, there given noise. Pattisthe southwest corner. on the then Karel has may also be ago. (As one square move() In turnLeft() CS of north-south.) leftthis world, Karel walls inworld, for 106A students gentle introduction is west and avenues example,degrees toa block Karels the corner generations interiorrunthe world thattheIn beeper topassage. to this the of Turn 90 Ive added a pickBeeper() Pick up solving. of 1st Street and problem a facing east at andnd Avenue. beeper from the current square programming the2corner of 1st Street and 1st Avenue.
putBeeper() Put down a beeper on the current square

+
1

+
2

+
3

+ 4

+
5

Your First Challenge


How would you program Karel to pick up the beeper and transport it to the top of the ledge? Karel should drop the beeper at the corner of 2nd Street and 4th Avenue and then continue one more corner to the east, ending up on 5th Avenue.

+
1

+
2

+
3

+ 4

+
5

The End

You might also like