Stanford CS106A 调研 计算教学实验中心 乔亚男 Programming Methodology 公开课主讲人:Mehran Sahami 介绍了当代程序设计基本思想: 面向对象,模块化,封装,抽 象化与测试。 《编程方法》将良好的编程思 想连同广泛应用的Java语言一同 讲授。着重教授良好的编程风 格和Java语言的特色。 目前主讲人(2013) Steve Cooper Instructor: Steve Cooper E-mail: coopers@stanford.edu Office: Gates 190 Phone: 723-9798 Office hours: Tuesday 3:30 P.M.–4:30P.M., Wednesday 10:30 A.M.– 12:00P.M., and Friday 2:30 P.M.–3:30P.M. Head TA: Lynn Cuthriell E-mail: lcuth@stanford.edu Office: Gates 160 Office hours: Tuesday 1:15P.M.–3:15P.M. and Thursday 1:15 P.M.– 3:15P.M. 10周课,每周一般3次,共28个课时 CS 106A—Programming Methodology.This course is the largest of the introductory programming courses and is one of the largest courses at Stanford (taken by approximately 1700 students a year). 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 Autumn, Winter, and Spring quarter this year. Section leaders and course helpers CS106A provides extensive assistance for students. Section Leaders and Course Helpers are available from Sunday through Thursday evenings each week in Tresidder LaIR to help with assignments. Check the web site http://cs198.stanford.edu/ and click on the "Helper Schedule" link for the latest schedule of LaIR Helper Hours. Texts Karel the Robot Learns Java The Art and Science of Java by Eric Roberts. Programming assignments there will be seven assignments (Assignment 1 – Assignment 7). ++ An absolutely fantastic submission of the sort that will only come along a few times during the quarter. To ensure that this score is given only rarely, any grade of ++ must be approved by the instructor and TA. Since your section leader would almost certainly want to show off any assignment worthy of a ++, this review process should not be too cumbersome. + A submission that is "perfect" or exceeds our standard expectation for the assignment. To receive this grade, a program often reflects additional work beyond the requirements or gets the job done in a particularly elegant way. √+ A submission that satisfies all the requirements for the assignment, showing solid funtionality as well as good style. It reflects a job well done. √ A submission that meets the requirements for the assignment, possibly with a few small problems. – A submission that has problems serious enough to fall short of the requirements for the assignment. – A submission that has extremely serious problems, but nonetheless shows some effort and understanding. – – A submission that shows little effort and does not represent passing work. From past experience, we expect most grades to be√ + and √ Late policy Because each of you will probably come upon some time during the quarter where so much work piles up that you need a little extra time, every student begins the quarter with two free "late days." "Late days" are class days, not actual days (i.e. from Monday to Wednesday is one late day). After the late days are exhausted, programs that come in late (up to a maximum of three class days) will be assessed a late penalty of one grade “bucket” per day (e.g., a + turns into a , and so forth). Assignments received later than three class days following the due date will not be graded. Examinations The midterm examination will be a two-hour test administered outside of class from 7:00-9:00 pm on Tuesday, May 7th. If you have a conflict with this time, and absolutely cannot make the regularly scheduled midterm, you must send a request by electronic mail to Lynn (lcuth@stanford.edu) by 5:00pm on Monday, April 29th to arrange an alternate exam time. The final examination is scheduled for Wednesday, June 12th from 8:30am-11:30am. For a variety of reasons (including university policy), there will be no alternate time for the final exam. Please make sure that you can attend the final exam at the specified time before enrolling in the class. All examinations are open-book (class course reader and textbook only), and you may use any notes, handouts, or materials from the class, but you cannot use electronic devices of any type (i.e. portable computers, PDAs, etc). Grading Final grades for the course will be determined using the following weights: 45% Programming assignments (weighted toward the later assignments) 30% Final examination 15% Midterm examination 10% Section participation 实验作业示例 Figure 1. The Breakout.java starter file /* * File: Breakout.java * ------------------* This file will eventually implement the game of Breakout. */ import acm.graphics.*; import acm.program.*; import acm.util.*; import java.applet.*; import java.awt.*; import java.awt.event.*; public class Breakout extends GraphicsProgram { /** Width and height of application window in pixels */ public static final int APPLICATION_WIDTH = 400; public static final int APPLICATION_HEIGHT = 600; /** Dimensions of game board (usually the same) */ private static final int WIDTH = APPLICATION_WIDTH; private static final int HEIGHT = APPLICATION_HEIGHT; 感想 内容真多(又讲语言又讲算法) 要求真高(针对全校所有专业?!) 管的真严(严格规定交作业时间,作业占分比例巨 大) 如何学得完?(美国人不用学外语等课) 不适合国情? 严进宽出和宽进严出 一门不过就打上烙印 学生打分 探索:如何本地化 谢谢!