程序设计技术和方法
(2014 春季)

(教科书:Structure and Interpretation of Computer Programs)

课程通知(更新: 2015-11-28 课堂幻灯片(更新: 2015-11-28
课程作业页(更新: 2015-11-28
课程讨论组(在北大教学网)
课程地点:2教413教室  时间:周三晚9-11节(18:30-21:20)
上机:理科一号楼1235  时间:周一晚10-11节(18:40-20:30)
答疑:理科一号楼1480  时间:周三下午16:00-17:30

期末考前答疑:理科一号楼1493教室。答疑时间:周二(2014年6月17日)下午14:00-17:00,周三(6月18日)上午9:00-12:00

与前几年课程的情况相比,本课程内容有些变化,适当讨论教科书的一些重要内容与常规(基于C/C++的)程序设计的关系,以及对常规程序设计的可能启示。
课程中将特别关注程序的组织和组合技术,以及程序语言在这方面的作用。

课程简介   课程进度计划
教科书《计算机程序的构造和解释》中文版图书信息勘误表

Structure and Interpretation of Computer Program 英文原书链接,本书的英文全文压缩文件(来自 MIT OpenCourseware,请在原作者和出版社的许可范围内使用)。

MIT 开放课程 Structure and Interpretation of Computer Program 幻灯片(本地下载)

教学参考书

阅读材料:一个新兴企业的故事,这里是一位以前参加本课程同学的 译文

Scheme 系统

Racket
建议用 Racket (原 PLT Scheme) 完成本课程的编程。其用户界面比较好,使用方便。 相关资源如下:
PLT Scheme 系统使用入门Racket 网站 有大量相关信息和资源。
Racket 系统本地下载:用于 32 位 Windows 的系统用于 64 位 Windows 的系统。

使用 Racket 做教科书上的程序和习题可能遇到一些问题,可以安装与 MIT Scheme 的兼容包,见链接 www.neilvandyke.org/racket-sicp/
对简单程序,在 R5RS 语言选项下装入文件 predefined.scm 可以解决绝大部分问题。

MIT Scheme
也可以用 MIT Schme 系统完成课程练习,尤其是后面部分的作业与 MIT 系统有些关系。采用其他系统,书上的代码需要做一些修改,比较麻烦。

使用这个系统请先看看 MIT Scheme 系统的简单使用入门
安装系统后有详细的帮助文件,请在本机参考,或从这个链接找到
更多信息可以到 MIT/GNU Scheme 系统网址 查看。
MIT Schme 系统本地下载:MIT-Scheme 9.1.1(20M)参考手册用户手册SOS手册IMAIL手册

联机阅读 MIT Scheme 手册

这里有许多与 Scheme 语言和系统有关的信息(国外页面)

Scheme 语言手册

第5修订报告(Revised Report 5)
第5修订报告中文翻译版(王咏刚翻译). 本地下载

第6修订报告(Revised Report 6)
第6修订报告-标准库(Standard Libraries)
第6修订报告-阐释(Rationale)
第6修订报告-非规范附录(Non-Normative Appendices)。This document contains non-normative appendices to the Revised 6 Report on the Algorithmic Language Scheme. These appendices contain advice for users and suggestions for implementors on issues not fit for standardization, in particular on platform-specific issues.

教学小组
任课教师: 裘宗燕 (办公室:理科楼1480)
2014 春季辅导教师: 郭 炜 总负责
刘海洋 分工负责:数学学院和其他学院同学
徐源盛 分工负责:信息学院同学
2012 辅导教师: 陈璐瑶 分工负责:信息学院同学
胡婷婷 分工负责:数学学院和其他学院同学
2011 辅导教师: 罗国杰 分工负责:信息学院09级同学
张可 分工负责:其他同学
2010 辅导教师: 雷锦江 分工负责:数学学院 08 级同学
罗睿辞 分工负责:信息学院 08 级学号 234 之前同学
姚金宇 分工负责:其他,包括数院06/07级,元培,和信息学院其他同学
2009 辅导教师: 秦 腾 分工负责:数学学院和元培学院同学,以及信息学院学号100以内的同学
姚金宇 分工负责:信息学院学号100以上的同学
2008 辅导教师: 孙 俊:数学学院05级,元培学院,信息学院学号00648001-098
王盛颐:数学学院06和07级
杜仲轩:信息学院学号00648099以上
本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。 其他使用需得到作者(相关作者)许可。

访问数(2008.6开始):159875 最后更新: 2015-11-28