课程详情
课程评价
spContent=本课程是北京大学信息科学技术学院本科生入学之后的第一门专业基础课程(校内课名:计算概论A),也是中国大陆最早发布的第一门计算机相关的MOOC课程(2013年9月于Coursera首次发布)。 在这里,你将与北京大学的同学们一起,学习程序设计的基础知识,感受计算机科学与技术的巨大魅力!
—— 课程团队
课程概述

    “计算概论与程序设计基础”(北京大学校内课程名“计算概论A”)是针对“信息科学技术学科一年级本科生”开设的一门专业基础主干课程。本课程的教学目标有二:其一,帮助学习者建立起“学习计算机科学技术知识所需的基本知识背景”;其二,帮助学习者“掌握计算机程序设计的基础知识”,培养学习者“独立设计计算机程序解决问题”的基本技能。


    本课程的内容主要分为两个部分:(1)计算概论部分,约占课时量的15%;(2)程序设计基础部分,约占课时量的85%


    计算概论部分,我们将为大家解答一些与计算机程序设计相关的基础问题,例如,“计算机为什么能够进行计算?”,“计算机程序在计算机中是如何运行的?”,“计算机的发展规律是什么?”,“下一代的计算机将会是什么样子?”等等。我们希望通过对这些问题的解答,达到两个目的:其一,培养起大家对计算机科学的兴趣;其二,帮助大家建立起学习计算机科学所需要的“背景知识框架”。


    程序设计基础部分,我们将以“C 语言”为主要学习对象,以典型的C++编程环境(如Visual Studio C++, Eclipse等)为工具,学习计算机程序设计的相关知识,并培养程序设计的基本技能。通俗讲,在这个部分,我们将教会大家“如何使用C语言编写计算机程序,甚至编写具有一定技术难度的程序”。

    对于第一次学习计算机程序设计的同学而言,通常会觉得学习过程比较困难。在这里,我们特别提示大家:“对于难学的东西,更要循序渐进,更要遵循学习规律——先打好基础,逐步进阶!”为此,我们把“程序设计基础”部分的学习划分为四个迭代周期

        周期一: 感性认识计算机程序; 

        周期二: 理性认识计算机程序;  

        周期三: 函数——结构化的程序; 

        周期四: 一些稍复杂的数据结构(指针、结构体、链表等);

    之所以称为“迭代周期”,是因为我们希望在每个周期中,同学们都能够编写出完整、可运行、能解决问题的计算机程序,而不是仅仅学习计算机程序设计语言的某个部分!所以,学习程序设计的过程,应该是一个“在实战中进阶”的过程,而不是一个“知识堆砌”的过程。希望这个迭代进阶的学习过程可以帮助大家顺利达成学习目标。

课程大纲
证书要求

要想获得结业证书,你需要完成相关学习内容,包括观看视频,提交作业,参与互评和讨论等等。你需要及时查看课程大纲及公告,了解获得课程证书的具体要求。课程团队将根据你的最后得分判断是否颁发证书。在获得合格证书的基础上,表现尤为优异的学生将获得优秀证书。注意:课程证书上的姓名将与你注册信息中的真实姓名信息一致,请确认你的信息无误。你可以点击页面右上方进入“设置”修改相关信息。

参考资料

基本资料:

主要参考本课程所提供的讲义资料,以及来自 http://ica.openjudge.cn/  的相关练习题。

参考教材:

[1] 《程序设计基础》(第二版),吴文虎,清华大学出版社,2006年7月 参考教材

[2] Computer Systems -A Programmer's Perspective, Randal E.Bryant, David O'Hallaron, Prentice Hall, 2002

[3] C++ Programming Today (2 edition), Barbara Johnston, Prentice Hall, 2007