程序设计实习

Practice on Programming

《程序设计实习》课程是北京大学的本科生主干基础课程。课程的主要目标有二: 一、掌握C++语言的语法和标准模板库…

北京大学

分享

北大慕课程序设计实习Practice on Programming
  • 分类: 计算机
  • 平台: Coursera
  • 语言: 中文

《程序设计实习》课程是北京大学的本科生主干基础课程。课程的主要目标有二: 一、掌握C++语言的语法和标准模板库,能用C++语言以面向对象的方法来编写规模较大的程序。 二、掌握枚举、递归、搜索、动态规划等基本的算法思想。通过大量的高强度的编程训练,提高动手能力,做到能较为熟练、完整、准确地实现自己设计的程序,为进一步学习其他计算机专业课程,或在其他专业领域运用计算机编程解决问题奠定良好的基础。

课程概述

在北京大学信息科学技术学院,本科生程序设计类基础课程体系包含了四门课,按修课顺序分别为:计算概论、程序设计实习、数据结构与算法、算法分析与设计。其中“程序设计实习”课程是一门连接“计算概论”和“数据结构与算法”、承上启下的课程。
课程的主要内容主要分为两个方面:(1) C++语言面向对象的程序设计,约占课时量的65%;(2) 基本算法思想,约占课时量的35%。

在第一部分中,讲授C++语言中和面向对象有关的概念和语法,如类和对象、运算符重载、继承和多态、类模板和算法模板、标准模板库等。目标是使得学生能够用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序,初步领会面向对象程序设计方法的优势所在。

在第二部分中,讲授一些基本的算法思想(如枚举、递归、搜索、动态规划等),并进行大量的高强度的编程训练。训练的方式是在“在线程序评测平台”上提交程序,系统立即判定程序是否正确。此种形式能够有效促使学生全面细致地思考问题,提高编程的准确性,增强程序查错、调试的能力。通过训练,学生能够打下较为坚实的程序设计基础,为进一步学习其他计算机专业课程,或在其他专业领域运用计算机编程解决问题,创造良好的条件。

另外,本课程将ACM国际大学生程序设计竞赛中一些优秀的基础题引入课程教学,增加内容的趣味性,并提高学生学习的积极性和成就感。

授课大纲

第1周 从C走进C++
第2周 类和对象初探
第3周 类和对象进阶
第4周 运算符重载
第5周 继承与派生
第6周 多态与虚函数
第7周 输入输出,文件操作和模板
第8周 标准模板库STL (1)
第9周 标准模板库STL (2)
第10周 枚举算法
第11周 递归算法
第12周 动态规划算法
第13周 深度优先搜索算法
第14周 广度优先搜索算法

先修知识

先修课程:计算概论

参考资料

课程配套教材:
《新标准C++程序设计教程》,郭炜,清华大学出版社Ÿ,2012
《程序设计导引及在线实践》,李文新,郭炜,余华山,清华大学出版社,2007

授课形式

本课程由视频课程、在线练习、编程练习、期中/期末考试等部分组成。

常见问题解答

Q: 课程如何评分?
A: 评分按照日常作业的完成情况和期中期末考试的答题情况进行。课程参与(如论坛回答问题等) 5 %,C++作业 20 % ,在POJ在线提交的编程作业 20 %,期中考试(内容为C++语言) 25 %,期末考试(内容为在线提交的编程题) 30 %。

POJ作业在程序自动评测网站发布:http://cxsjsx.openjudge.cn/
课程参与做得特别好的同学,除了获得课程参与部分可得满分,还可以另外获得1-5分总分加分。
C++面向对象的编程内容讲完后进行期中考试,然后开始讲算法的内容。期末考试的内容主要是算法,不是必须要用到面向对象的知识。

Q: C++作业是什么形式的,如何评判?
A: 主要形式是选择题,系统自动评分。

Q: 如果我获得“通过”评分,能够获得证书吗?
A: 是的!完成课程并获得“通过”评分者将获得由北京大学授权主讲教师签署的成功完成课程学习的证书(获得“优秀”者将标明)。获得“通过”需要获得总分60或以上的分数,取得“优秀”需要获得总分85或以上的分数。

声明:MOOC中国收录之课程均源自下列机构,版权均归他们所有。本站仅作报道并尊重其著作权益,感谢他们对MOOC事业做出的贡献!(排名不分先后)
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc

Copyright © 2008-2015 MOOC.CN 慕课改变你,你改变世界