哈尔滨工业大学

图片
课程概述

     每个人都应该学习给电脑编写程序的技术,因为这一过程能够教你如何去思考!                                                         ——史蒂夫·乔布斯

     对一名软件工程师来说,什么是最重要的?是编程语言吗?如果你问100名工程师,那么100个人回答可能都是“No”。

     编程语言层出不穷,不胜枚举,能够以不变应万变的奥秘何在?答案就是“编程之魂”。

     传统的编程入门课,都是从教授一种语言的基本语法开始的,试图通过语言来传达“编程之魂”,但这样也许你会将更多的精力用在理解语言的语法细节上,只见树木不见森林。

     为此,我们将“程序设计”这门课程拆成两门课程:程序设计基础,C语言程序设计精髓

     本课程的目标是为未来的编程高手打下最坚实的基础,将学习编程之前你该了解的那些事,从具体的语言中独立出来,剥茧抽丝,取其灵魂,聚焦于程序设计思维的建立。在其后继课程“C语言程序设计精髓”中,再以C语言为例,传授用语言表达思想的技术,聚焦于如何将编程之魂附着于C语言的躯体上。

     期望通过这样的内容安排和讲解,你在学完以后不只是简单地掌握了一种语言的语法,还能理解隐含在语法背后的思想,并初步具备灵活使用这些思想进行编写程序解决实际问题的能力。

     本课程面向的是零基础的人群,就像学钢琴要先学好乐理和练好指法而不要急于去弹小汤一样,我们会从你无论学习什么语言编程都应必备的基础知识讲起,这些内容不涉及代码,也与语言无关,但却对训练你的思维至关重要,学完这些你才能真正理解计算机为什么能解题以及计算机是如何解题的,而语言不过是实现这一求解过程的一种工具而已。当你回头看时,你会发现,学习编程的关键不是你能用自己熟悉的语言写出程序,而是能够针对要解决的问题,将问题转化为计算机求解的步骤。这也正是我们安排前6周课程的意义所在。      

     你一定感到奇怪:不学语言,也可以学习程序设计;不写代码,也可以运行“程序”吗?

     在本课程中,我们将用“编程之魂”武装你的大脑。

              人生怎能没有一次说走就走的旅行?跟着“机器侠”,让我们一起向着快乐出发吧。

证书要求

评分方案:

按照周测验、单元作业和期末考试的答题情况进行评分,周测验占60%,期末考试占40%。

证书:

设置“合格”(达到60分以上)、"优秀"(达到80分以上)两档标准,由任课教师签发课程结业证书,其中成绩“优秀”者将颁发优秀证书。

预备知识

本课程可以零基础学习,适用于没有编程基础但有一定数学基础的人群。

本课程不涉及任何编程语言,但可以对接任何编程语言。

大学计算机、计算思维导论等课程有助于深入理解本课程的部分内容,但这些课程的学习不是必须的。

授课大纲

1周 计算机ABC(主讲:叶麟,赵玲玲):

1.1   计算机与人工智能、计算机系统    

1.2   计算机程序设计语言

1.2.1 人与计算机是如何通讯的?  

1.2.2  机器语言与高级语言     

1.2.3  C语言简介

1.2.4  计算机的基本工作原理

1.3   数据的表示与存储   

1.3.1  二进制数

1.3.2  数据与内存 

2周 程序设计ABC(主讲:苏小红):

2.1   算法的概念与算法的描述方法

2.2   顺序结构和选择结构

2.3 循环结构

   2.3.1 循环的控制方式

   2.3.2 用循环实现累加和累乘运算

   2.3.3 嵌套循环

   2.3.4 进阶内容:循环不变式

3程序设计方法ABC(主讲:苏小红,赵玲玲):

3.1  基于流程图仿真的可视化计算工具RAPTOR介绍 

3.2   自底向上的程序设计方法

3.3 自顶向下、逐步求精的程序设计方法

3.4 进阶内容:结构化程序设计方法

3.5 进阶内容:模块化程序设计方法     

3.6 进阶内容:面向对象程序设计方法 

4问题求解策略ABC(主讲:苏小红,叶麟):

4.1  分治

4.2  穷举

4.3  递推

4.4  迭代

4.5  递归 

5周 查找算法ABC(主讲:苏小红,赵玲玲):

5.1  在RAPTOR中使用数组 

5.2  求最大最小值 

5.3  顺序查找

5.4 二分查找

5.5 进阶内容:分块查找

5.6 进阶内容:哈希查找 

第6周 排序算法ABC(主讲:叶麟):

6.1  冒泡排序

6.2  交换排序和选择排序

6.3  希尔排序和插入排序

6.4  进阶内容:归并排序

6.5  进阶内容:快速排序 

参考资料

1.  面向读者的教材网站http://book.sunner.cn) 

该网站的服务对象是我们自编教材的读者,提供教材课件、例题源代码、教材勘误表等资源,便于学生浏览和下载后自学,读者也可利用该网站反馈教材使用意见和建议。

2. 参考教材

1)苏小红等,《程序设计基础》,高等教育出版社,待出版

2) 程向前、陈建明,《可视化计算》,清华大学出版社,2013年1月,购书网址:淘书网

3)苏小红,王宇颖,孙志岗,《C语言程序设计(第2版)》,高等教育出版社,2013年8月,购书网址:淘书网,或者京东

4)苏小红,车万翔,王甜甜,《C语言程序设计学习指导(第2版)》,高等教育出版社,2013年9月,购书网址:淘书网,或者京东

5)苏小红,孙志岗,陈惠鹏,《C语言大学实用教程(第3版)》,电子工业出版社,2012年6月,购书网址:淘书网,或者当当网,或者京东

6)苏小红,孙志岗等,《C语言大学实用教程学习指导(第3版)》,电子工业出版社,2012年6月,购书网址:淘书网,或者当当网,或者京东

3.相关链接

爱课程国家精品资源共享课http://www.icourses.cn/coursestatic/course_3153.html

后续MOOC课程:C语言程序设计精髓http://www.icourse163.org/course/hit/0809HIT004B#/info

RAPTOR下载地址http://raptor.martincarlisle.com/

常见问题

Q:本门课程面向的授课群体是什么?没有任何基础能学习本课程吗?

A:本门课程面向零基础的学习者,适用于完全没有编程基础但又很想深入学习程序设计的人群。没有任何编程基础的人可以学习,而且建议在具体学习一门编程语言之前最好先学习本课程,本课程的内容是你学习编程语言前应必备的基础知识,对训练你的思维至关重要。

Q:绘制流程图有专门的工具吗?

A:绘制流程图使用率最高的软件之一是画图工具软件Visio。Visio属于Microsoft Office系列软件。Visio有多种绘图模版和工具,制作的图表范围十分广泛,可以绘制流程图、地图、企业标志等。Visio绘制的图形可以方便地复制到其他Office文档中,简单易学,容易上手,因此受到广泛欢迎。Office Visio 2010中的新增功能和增强功能使得创建 Visio 图表更为简单、快捷。 

Q:RAPTOR是什么?

A:RAPTOR是一种基于流程图的可视化程序设计环境,用户只需要将RAPTOR提供的基本流程图符号进行连接就可以设计和实现一个算法,然后在RAPTOR环境下调试和运行,就可以直接得到运行结果。该环境可以直观地显示当前执行符号所在的位置,所有变量的内容,帮助用户跟踪RAPTOR程序的指令流执行过程,从而帮助用户理解程序执行过程、修改错误。此外,RAPTOR还提供了一个简单图形库帮助用户开发图形界面。RAPTOR开发环境的最大优点是可以在最小化语法要求的情形下,帮助用户编写正确的程序指令,从而摒弃了学习一般程序设计语言的句法困难和不可视化的缺点。RAPTOR下载地址http://raptor.martincarlisle.com/

Q:为什么我的电脑没法运行raptor,提示程序已停止运行?

A:可能是因为没有安装.net frame 3.5,先安装这个就可以运行了。

Q:如果无法正常观看视频,我该怎么办?

A:如果无法正常观看视频,请尝试进行如下操作:

1.确认你使用了支持视频播放的浏览器。

2.清除浏览器的浏览数据及缓存。

3.关闭硬件加速。请在浏览器的 设置 - 显示高级设置 中,将“使用硬件加速模式”(如果可用)一项取消勾选,并重新启动浏览器。

4.检查你的网速。你可以尝试在其他视频网站播放视频(如优酷、土豆等),如果你在其他网站仍无法观看视频,那么你的网络连接很可能有问题。你需要重新连接你的网络或者切换至网速更快的网络以实现流畅的视频播放。