[第1课] 课程简介

主题:欢迎来到CS106A,授课人员,为什么称之为编程方法?,你真的适合学习这门课程吗?,课程常规,作业与评分,课外拓展,期中期末考试,成绩评定细则,行为准则,为何要从Karel学起?

[第2课] 欢迎来到Karel的世界

主题:讲义相关,注册讨论小组,Karel基本命令,算法与程序孰轻孰重,Karel程序语法,运行一个Karel程序,创建函数的方法,超级Karel,For循环,While循环,Karel条件语句,If条件语句,综述

[第3课] Karel与Java

主题:Karel 与Java,常见的错误,注释,前提条件和后续条件,分解,例程序DoubleBeeper,养成良好编程习惯重要性,正确的分解,例程序CleanUpKarel

[第4课] 计算科学发展史

主题:计算机科学与程序设计的千丝万缕,电脑懂什么,编译过程,Java-面向对象的程序设计语言,继承,类,acm.program层次结构,第一个Java程序,例程序ConsoleProgram,图形化界面,例程序Sending-Messages-to-a-GLabel

[第5课] 变量

主题:变量的数据类型,调用变量相关语法,类的类型,对象变量,调用类成员函数的方法,图形坐标,对类GObject以及其子类的操作,描画几何对象,例程序FunGraphics,表达式与操作符

[第6课] 操作符

主题:readInt() 和 readDouble()函数,整形与浮点数的除法运算操作符,操作符优先级,类型转换,常量,布尔数据类型,值的比较,布尔表达式,短路求值,语句块,变量的作用域,if套嵌,switch语句,for循环语句,while循环语句

[第7课] 循环与“一半”问题

主题:For循环与While循环的对比,例程序CheckerBoad,在Java中创建函数,创建函数举例,FactorialExample程序,用函数返回对象

[第8课] 信息隐藏

主题:Void函数类型,在函数间传递参数,函数的缺陷,类的使用,整体变量与局部变量,例程序RandomGenerator,例程序RollDice,setseed()函数

[第9课]字符串

[第10课] 私有变量的重要性

主题:扩展Student类,函数重写,acm.graphics程序包,GCanvas,GObjects中的常用函数,其中的接口与函数,BouncingBall例程序,GLable类中的几何学,GArc类

[第11课] Gimage类

主题:GPolygon类,GCompound类,事件驱动程序,例程序ClickForFace,响应鼠标操作,响应键盘操作,例程序UFO

[第12课] 枚举

主题:字符,Unicode标准下的ASCII码,字符的读取,字符中的数学,基本类型char,字符对象,字符串及其操作

[第13课] 对字符串的处理

主题:编译器,加密

[第14课] 内存

主题:存放不同变量的内存区块,内存分配机制,对指针的看法,指针趣味小视频

[第15课] 指针要点回顾

主题:为什么要通过引用方式调用类,将封装类作为基本数据类型,文件,打开、读取、关闭文件的函数,异常状况,文件写操作函数

[第16课] 数组

主题:创建数组,++操作符,数组的真实长度与有效长度,将数组作为参数,初始化数组,数组列表

[第17课] 多维数组

主题:类模版,ArrayList类中的函数,使用ArrayList类的例程序,Glable数组列表例程序,例程序GrayImage

[第18课] 多维数组收尾

主题:数组列表方式,数组列表与数组的优劣分析,调试,程序调试的方法,Eclipse中的调试器

[第19课] 接口

主题:如何使用接口,映射,HashMap类,HashMap中的函数,中继器,HashMap例程序

[第20课] 图形用户界面

主题:Java程序中的Interactor,Swing Interactor层次结构,窗口区域,创建Interactor,例程序,探索更多Interactor,例程序InteractorDrawFace

[第21课] Interactor与Listener回顾

主题:例程序,例程序中应用的两种方法——使用getSouce或getActionCommand函数,例程序TextField,布局设计,温度换算例程序,例程序TextAndGraphics

[第22课] NameSurfer概述

主题:组件与容器,容器的监听器,设计可扩展程序,ComponentListener接口,例程序MusicShop,例程序MusicShopDisplay

[第23课] 搜索,排序与算法效率分析

主题:课程材料介绍——搜索,排序及其算法效率分析,搜索,线性搜索,线性搜索的效率分析,二分法搜索,二分法搜索的效率分析,排序,选择排序算法,选择排序效率分析,基数排序算法

[第24课] 管理大型数据中的良好软件工程原理

主题:设计思想,数据搜集层次结构,数据搜集实用函数,例程序:在线音乐商店FlyTunes,定义歌曲类,定义专辑类,鉴证程序运行,对所需数据结构的思考,数据的重复利用,浅拷贝与深拷贝

[第25课] 设计实用社交网络

主题:思考程序所需功能,分离现象的六种程度,并行性,一个线程,运行接口,创建一个线程,例程序,在线程间共享数据

[第26课] 介绍Java标准库

主题:JAR文件介绍,创建JAR文件,创建applet小程序,脱离ACM运行库创建标准Java程序,其他——深入学习Java

[第27课] CS106A后续课程介绍

主题:计算机专业简介,其他专业出路

[第28课] 宣布图形比赛结果

主题:期末复习,例题1,例题2,课程总结

斯坦福大学公开课:编程方法学

学校: 斯坦福大学

讲师: Mehran Sahami

集数: 28

授课语言: 英文

类型: 国际名校公开课 计算机 国际名校公开课

课程简介: 介绍了当代程序设计基本思想:面向对象,模块化,封装,抽象化与测试。《编程方法》将良好的编程思想连同广泛应用的Java语言一同讲授。着重教授良好的编程风格和Java语言的特色。这门同样课适合文科,主修社会科学的同学和编程爱好者学习观看。