Stanford Engineering Everywhere | CS106A - Programming Methodology | Lecture 1 - Welcome to CS106A Stanford University stanford engineering Stanford Engineering Everywhere SEE Menu Home Courses Using SEE Survey Contact Us CS106A - Programming Methodology Lecture 1 - Welcome to CS106A To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video Expand/Collapse Video Bookmarks Playlist Info Bookmarks 00:00:22 Welcome to CS106A 00:04:17 Course Staff 00:05:48 Why is the class called Programming Methodology? 00:10:33 Are you in the right class? 00:15:19 Class Logistics 00:20:46 Assignments and Grading 00:28:09 Extensions 00:30:53 Midterm and Final 00:32:00 Grade breakdown 00:34:32 The Honor Code 00:44:21 Why Karel? Lectures 1 - Welcome to CS106A 2 - Handout Information 3 - Karel and Java 4 - The History of Computing 5 - Variables 6 - readInt() and readDouble() 7 - The Loop and a Half Problem 8 - Information Hiding 9 - Strings 10 - Importance of Private Variables 11 - The GImage Class 12 - Enumeration 13 - String Processing 14 - Memory 15 - Pointer Recap 16 - Array 17 - Multi-dimensional Arrays 18 - A Wrap Up of Multi-dimensional Arrays 19 - An Interface 20 - GUI 21 - Review of Interactors and Listeners 22 - Overview of NameSurfer - The Next Assignment 23 - Introduction to Lecture's material - Searching 24 - Principles of Good Software Engineering for Managing Large Amounts of Data 25 - Defining a Social Network for Our Purposes 26 - Introduction to the Standard Java Libraries 27 - Life After CS106A 28 - The Graphics Contest Winners About the Lecture TITLE: Lecture 1 - Welcome to CS106A DURATION: 50 min TOPICS: Welcome to CS106A Course Staff Why is the class called Programming Methodology? Are you in the right class? Class Logistics Assignments and Grading Extensions Midterm and Final Grade Breakdown The Honor Code Why Karel? Course Details Show All Course Description This course is the largest of the introductory programming courses and is one of the largest courses at Stanford. Topics focus on the introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Programming Methodology teaches the widely-used Java programming language along with good software engineering principles. Emphasis is on good programming style and the built-in facilities of the Java language. The course is explicitly designed to appeal to humanists and social scientists as well as hard-core techies. In fact, most Programming Methodology graduates end up majoring outside of the School of Engineering. Prerequisites: The course requires no previous background in programming, but does require considerable dedication and hard work. Syllabus DOWNLOAD All Course Materials Instructor Sahami, Mehran I joined the Computer Science Department at Stanford University as Associate Professor (Teaching), Associate Chair for Undergraduate Education, and Director of Educational Affairs. From 2001 to 2006, I also taught in the CS department at Stanford as a Lecturer. From 2002-2007, I was a Senior Research Scientist at Google, where I continue to maintain a consulting appointment in the research group. My research interests include computer science education, machine learning, and information retrieval on the Web. Please see my publications web page for more information. Previously, I worked for several years as a Senior Engineering Manager at Epiphany. Prior to working at Epiphany, I completed my PhD in the Computer Science Department at Stanford. I was also an undergrad at Stanford and I loved it so much that I didn't want to leave. Outside of work, I enjoy spending time with family, playing the guitar, going on outdoor excursions, and sleeping (which seems to be getting rarer and rarer these days). Handouts Lecture 1 01-general-information.pdf 02-syllabus.pdf 03-course-placement.pdf 04-honor-code.pdf Lecture 2 05-downloading-eclipse.pdf 06-karel-in-eclipse.pdf 07-assignment-1-karel.pdf 08-submitting-work.pdf Lecture 3 09-karel-examples.pdf Lecture 4 10-section-handout-1.pdf Lecture 5 No Handouts Lecture 6 10a-section-1-solutions.pdf 11-prog-patterns.pdf 12-control-statements.pdf 13-assignment-2-simple-java.pdf Lecture 7 14-methods.pdf 15-section-handout-2.pdf Lecture 8 16-random-number-examples.pdf Lecture 9 15a-section-2-solutions.pdf 17-coding-style.pdf 18-variables.pdf Lecture 10 19-assignment-3-breakout.pdf 20-section-handout-3.pdf 20a-section-3-solutions.pdf 21-bouncing-ball-example.pdf Lecture 11 22-graphics-events-examples.pdf 23-ufo-game-example.pdf Lecture 12 No handouts Lecture 13 24-section-handout-4.pdf 25-strings.pdf 26-strings-and-ciphers.pdf Lecture 14 27-assignment-4-hangman.pdf 28-practice-midterm.pdf 29-practice-midterm-solutions.pdf Lecture 15 24a-section-4-solutions.pdf Lecture 16 No Handouts Lecture 17 30-section-handout-5.pdf 31-ArrayList.pdf 30a-section-5-solutions.pdf Lecture 18 33-debugging.pdf 34-section-handout-6.pdf 34a-section-6-solutions.pdf 35-assignment-5-yahtzee.pdf Lecture 19 No Handouts Lecture 20 36-graphics-contest.pdf Lecture 21 37-interactors-examples.pdf 38-section-handout-7.pdf 38a-section-7-solutions.pdf Lecture 22 39-assignment-6-name-surfer.pdf Lecture 23 40-musicshop-program.pdf Lecture 24 41-section-handout-8.pdf 41a-section-8-solutions.pdf Lecture 25 42-assignment-7-facepamphlet.pdf 43-flytunes-data-structure-example.pdf Lecture 26 44-packaging-jar-files.pdf Lecture 27 45-section-handout-9.pdf Lecture 28 46-practice-final-exam.pdf 45a-section-9-solutions.pdf 47-practice-final-solutions.pdf Assignments Section Assignments Assignment Solutions Distributed Assignment 1 Solutions Lecture 4 Assignment 2 Solutions Lecture 7 Assignment 3 Solutions Lecture 10 Assignment 4 Solutions Lecture 13 Assignment 5 Solutions Lecture 16 Assignment 6 Solutions Lecture 18 Assignment 7 Solutions Lecture 21 Assignment 8 Solutions Lecture 24 Assignment 9 Solutions Lecture 27 Programming Assignments Assignment Instructions Starter Code Distributed 1. Karel 07-assignment-1-karel.pdf Assignment1.zip Lecture 2 2. Simple Java 13-assignment-2-simple-java.pdf Assignment2.zip Lecture 6 3. Breakout! 19-assignment-3-breakout.pdf Assignment3.zip Lecture 10 4. Hangman 27-assignment-4-hangman.pdf Assignment4.zip Lecture 14 5. Yahtzee! 35-assignment-5-yahtzee.pdf Assignment5.zip Lecture 18 6. NameSurfer 39-assignment-6-name-surfer.pdf Assignment6.zip Lecture 22 7. FacePamphlet 42-assignment-7-facepamphlet.pdf Assignment7.zip Lecture 25 Exams Practice Midterm Questions Solutions Practice Final Questions Solutions Software Windows Users Stanford Eclipse for Windows Vista and XP - Download Java 1.6 JRE installer for PC - Download Macintosh Users Stanford Eclipse for Macintosh Users - Download Software Resources ACM packages JavaDoc Sun Java Tutorials Eclipse Project Course Sessions (28): Show All Lecture 1 Watch Online: Download: Right Click, and Save As Duration: Now Playing Download 50 min Topics: Welcome to CS106A, Course Staff, Why is the class called Programming Methodology?, Are you in the right class?, Class Logistics, Assignments and Grading, Extensions, Midterm and Final, Grade Breakdown, The Honor Code, Why Karel? Transcripts HTML PDF Lecture 2 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 48 min Topics: Handout Information, Section Sign-up, Karel Commands, An Algorithm vs Program, Syntax of a Karel Program, Running a Karel Program, Creating Methods, SuperKarel, A for Loop, A While Loop, Karel Conditions, If Statement, Putting it All Together Transcripts HTML PDF Lecture 3 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 51 min Topics: Karel and Java, Common Errors, Comments, Pre-conditions and Post-conditions, Decomposition, The DoubleBeepers Example, Importance of Good Software Engineering, The Right Decomposition, The CleanUpKarel Example Transcripts HTML PDF Lecture 4 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 48 min Topics: The History of Computing, Computer Science vs Programming, What Does the Computer Understand?, The Compilation Process, Java is an Object Oriented Language, Inheritance, Instance of a Class, The acm.program Hierarchy, Your First Java Program, A ConsoleProgram Example, The Graphics Window, The Sending-Messages-to-a-GLabel Example Transcripts HTML PDF Lecture 5 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 49 min Topics: Variables, Data Types for Variables, Syntax for Using Variables, Classes as Types, Objects as Variables, Invoking Methods on Objects, Graphics Coordinates, Operations on the GObject Class and its Subclasses, Drawing Geometrical Objects, A FunGraphics Example, Expressions and Operators Transcripts HTML PDF Lecture 6 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 56 min Topics: readInt() and readDouble(), The Division Operator w.r.t ints and Doubles, Order of Precedence for Operators, Type Casting, Shorthands, Constants, The Boolean Data Type, Value Comparisons, Boolean Expressions, Short Circuit Evaluation, Statement Blocks, Scope of Variables, Cascading if, The Switch Statement, The For Loop, The While Loop Transcripts HTML PDF Lecture 7 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 51 min Topics: The Loop and a Half Problem, For Versus While Loop, The CheckerBoard Program Example, Methods in Java, Examples of Methods, The FactorialExample Program, Returning Objects from Methods Transcripts HTML PDF Lecture 8 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 49 min Topics: Information Hiding, The Void Return Type, Parameter Passing Between Methods, Bad Times with Methods, Using Classes, Instance variables vs Local Variables, The RandomGenerator Program Example, The RollDice Program Example, The setSeed() Method Transcripts HTML PDF Lecture 9 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 52 min Topics: Strings, Writing Your Own Class, Public and Private Visibility, Creating a New Class, The Constructor Method, Shadowing of Variables and the 'this' Keyword, Using the Created Class, Objects are Called by Reference not Called by Value, Class Variables, The JavaDoc, The Student Program Example Transcripts HTML PDF Lecture 10 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 47 min Topics: Importance of Private Variables, Extending the Student Class, Overriding Methods, The acm.graphics Package, GCanvas, Methods Common to All GObjects, Interfaces and Methods Defined by Them, The BouncingBall Program Example, The Geometry of the GLabel Class, The GArc Class Transcripts HTML PDF Lecture 11 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 50 min Topics: The GImage Class, The GPolygon Class, The GCompound Class, Event Driven Programs, The ClickForFace Program Example, Responding to Mouse Events, Responding to Keyboard Events, The UFO program Example Transcripts HTML PDF Lecture 12 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 49 min Topics: Enumeration, Characters, The ASCII Subset of Unicode, Reading Characters, Math on Characters, char as a Primitive Type; the Character Class, Strings and Their Manipulations Transcripts HTML PDF Lecture 13 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 47 min Topics: String Processing, Tokenizers, Encryption Transcripts HTML PDF Lecture 14 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 46 min Topics: Memory, Different Sections of Memory for Different Types of Variables, Memory Allocation Mechanics, The Pointer Viewpoint, The Binky Pointer Fun Video Transcripts HTML PDF Lecture 15 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 48 min Topics: Pointer Recap, Why are Objects 'Call by Reference' Instead of 'Call of Value'?, Wrapper Classes for Primitive Types, Files, Code for Opening, Reading and Closing Files, Exceptions, Code for Writing Files Transcripts HTML PDF Lecture 16 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 50 min Topics: Array, Creating a New Array, The ++ Operator, Actual Size / Effective Size of the Array, An Array as a Parameter, Initialize an Array During Creation, An ArrayList Transcripts HTML PDF Lecture 17 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 50 min Topics: Multi-dimensional Arrays, An ArrayList, The Template Class, Methods in the ArrayList Class, An Example Program Using ArrayList, ArrayLists Hold Objects, An Example Program with an ArrayList of Glabels, The GrayImage Example Program Transcripts HTML PDF Lecture 18 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 47 min Topics: A Wrap Up of Multi-dimensional Arrays, The ArrayList Way, Pros and Cons : ArrayList vs. Array, Debugging, Approaches to Debugging, The Debugger in Eclipse Transcripts HTML PDF Lecture 19 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 50 min Topics: An Interface, How are Interfaces Implemented, A Map, The HashMap Class, Methods of the HashMap, The Collection Hierarchy, The Map Hierarchy, An Iterator, A HashMap Example Transcripts HTML PDF Lecture 20 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 45 min Topics: GUI, Interactors in the Context of a Java Program, The Swing Interactor Hierarchy, Window Regions, Creating Interactors, Example Programs, Exploring More Interactors, The InteractiveDrawFace Program Example Transcripts HTML PDF Lecture 21 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 48 min Topics: Review of Interactors and Listeners, Example Programs, The Use of the Two Ways Shown in the Examples - Using getSouce and getActionCommand, TextField Example, Layouts, The Temperature Conversion Example, The TextAndGraphics Example Transcripts HTML PDF Lecture 22 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 46 min Topics: Overview of NameSurfer - The Next Assignment, Components and Containers, Listeners for Components, Create a Program Which Extends Program, The ComponentListener Interface, The MusicShop Example Program, The MusicShopDisplay Example Program Transcripts HTML PDF Lecture 23 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 51 min Topics: Introduction to Lecture's material - Searching, Sorting and Algorithmic Efficiency, Searching, Linear Search, Efficiency of Linear Search, Binary Search, Efficiency of Binary Search, Comparing Search Efficiencies, Sorting, The Selection Sort Algorithm, Efficiency of Selection Sort, The Radix Sort Algorithm Transcripts HTML PDF Lecture 24 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 47 min Topics: Principles of Good Software Engineering for Managing Large Amounts of Data, Principles of Design, The Collection Hierarchy, Useful Methods of Collection, The FlyTunes Example Program - An Online Music Store, Defining the Song Class, Defining the Album Class, Seeing the Program Run, Considering the Data Structures Needed, Reusing Data - Shallow Copy vs. Deep Copy, The FlyTunesStore Program Code Transcripts HTML PDF Lecture 25 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 47 min Topics: Defining a Social Network for Our Purposes, See What the Program Needs to Do, The Six Degrees of Separation Phenomenon, Concurrency, A Thread, The Runnable Interface, Creating a Thread, Example Program, Having Shared Data Between Your Threads Transcripts HTML PDF Lecture 26 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 42 min Topics: Introduction to the Standard Java Libraries, A JAR File, Creating a JAR File, Creating an Applet, Standard Java Programs Without Using the ACM Libraries, Other Resources - Learning More Java Transcripts HTML PDF Lecture 27 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 42 min Topics: Life After CS106A, The CS Major, Other Possible Majors Transcripts HTML PDF Lecture 28 Watch Online: Download: Right Click, and Save As Duration: Watch Now Download 42 min Topics: The Graphics Contest Winners, Review for the Final, Example Question 1, Example Question 2, A Wrap-up Transcripts HTML PDF Stanford Center for Professional Development Contact Us Facebook Twitter LinkedIn YouTube Google+ Stanford University Stanford Home Maps & Directions Search Stanford Emergency Info Terms of Use Privacy Copyright Trademarks Non-Discrimination Accessibility © Stanford University, Stanford, California 94305