程序设计与算法
Offered By: Peking University via Coursera
Course Description
Overview
Syllabus
- Offered by Peking University. ... Enroll for free.
Course 2: C程序设计进阶
- Offered by Peking University. ... Enroll for free.
Course 3: C++程序设计
- Offered by Peking University. ... Enroll for free.
Course 4: 算法基础
- Offered by Peking University. ... Enroll for free.
Course 5: 数据结构基础
- Offered by Peking University. 学了C/C++ 语言,我们已经会编程解题了,那怎么用来处理实际的问题呢? ... Enroll for free.
Course 6: 高级数据结构与算法
- Offered by Peking University. 学习了基本的数据结构后,我们已经可以用程序来解决现实中的一些问题了。但是,怎样提升程序在运行效率呢? ... Enroll for free.
Course 7: 程序开发项目实践
- Offered by Peking University. 作为“程序设计与算法”系列专项课程的结业实践项目,我们联合腾讯公司,为大家设计了一个实际应用问题——搜索引擎设计。这是互联网公司中极具代表的实际开发项目。如何高效地进行检索?如何有效地提升搜索的精度?… ... Enroll for free.
Courses
-
课程介绍视频可以访问这里。
本课程的内容主要分为两个部分:(1)计算机基础知识,约占课时量的15%;(2)C程序设计基础,约占课时量的85%;
在计算机基础知识部分,我们将为大家解答一些与计算机程序设计相关的基础问题,例如,“计算机为什么能够进行计算?”,“计算机程序在计算机中是如何运行的?”,“计算机的发展规律是什么?”,“下一代的计算机将会是什么样子?”等等。我们希望通过对这些问题的解答,达到两个目的:A 培养起大家对计算机科学的兴趣;B 帮助大家建立起学习计算机科学所需要的“背景知识框架”。
在C程序设计基础部分,我们将以“C 语言”为主要学习对象,以典型的C++编程环境(如Visual Studio C++, Eclipse等)为工具,学习计算机程序设计的相关知识,并培养程序设计的基本技能。通俗讲,在这个部分,我们将教会大家“如何使用C语言编写计算机程序,甚至编写具有一定技术难度的程序”。
对于第一次学习计算机程序设计的同学而言,通常会觉得学习过程比较困难。在这里,我们特别提示大家:“对于难学的东西,更要循序渐进,更要遵循学习规律——先打好基础,逐步进阶!”为此,我们把“程序设计基础”部分的学习划分为四个迭代周期:
周期一: 感性认识计算机程序;
周期二: 理性认识程序设计语言;
周期三: 学会使用——函数;
周期四: 学习使用C程序中的复杂成分(指针、结构体、链表、文件等);之所以称为“迭代周期”,是因为我们希望在每个周期中,同学们都能够编写出完整、可运行、能解决问题的计算机程序,而不是仅仅学习计算机程序设计语言的某个部分!所以,学习程序设计的过程,应该是一个“在实战中进阶”的过程,而不是一个“知识堆砌”的过程。希望这个迭代进阶的学习过程可以帮助大家顺利达成学习目标。
该课程是“北大-德稻网络公开课程”中的一门,由北京大学与德稻教育联合提供。
-
学了C/C++ 语言,我们已经会编程解题了,那怎么用来处理实际的问题呢? 怎么设计数据结构来有效地管理企业人员?如何编写程序没让人才和岗位达到最佳匹配?如何安排旅行计划,找到最佳行程路径?这些学习、工作、生活中常常困扰我们的问题,你将在《数据结构基础》课程中找到答案。 数据结构是计算机程序设计的基础,告诉我们数据在计算机里是如何组织与存储的,能帮助我们刻画实际问题中的信息及其相互关系。当我们对一个实际问题本身有了一个结构化的认识之后,就可以选择合适的解决方法了。 完成这门课之时,你将掌握线性表、栈与队列、字符串、二叉树、树、图等经典的数据结构,并运用这些基础数据结构和相关算法解决实际应用问题。扎实的数据结构知识是项目开发与结构层次设计的关键,学好这门课会让你在高年级的计算机专业课程以及毕业项目设计中事半功倍,同时也将为你成为一名优秀的程序设计人员打下坚实的基础。 附:本课程的内容来自教材:《数据结构与算法》(张铭、王腾蛟、赵海燕 编著),高等教育出版社,2008年。
-
学习了基本的数据结构后,我们已经可以用程序来解决现实中的一些问题了。但是,怎样提升程序在运行效率呢? 如何快速地把图书按序号从小到大整理好?如何通过一个ID编号在数据库中高效地查找相对应的信息?如何迅速找到所有内容中含有“数据结构”的文档?《高级数据结构与算法》将通过使用高级的数据结构和高效的算法,让你学会如何解决这些对运行时间要求比较严格的问题。 高级数据结构和算法能够根据实际情况,满足一些复杂问题对数据规模、运行时间的要求,帮助我们更有效地解决问题。当我们面对实际问题的时候,高级数据结构和算法让我们有更广泛的空间,选择出与问题本身最为契合的数据结构,并利用相关算法来提升运行效率。 完成这门课之时,你将掌握多维数组、广义表、Trie树、AVL树、伸展树等高级数据结构,并结合内排序、外排序、检索、索引有关的算法,高效地解决现实生活中一些比较复杂的应用问题。合理使用这些高级数据结构和相关算法是程序运行效率的关键因素,学好这门课会让你在之后的计算机专业课程以及项目设计中更得心应手,同时也将让你站在更高的角度去理解问题、设计程序。
-
北京大学《C++程序设计》这门课将向你讲授C++程序设计有关的概念和语法,使你能够使用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序。我们建议你在开始本课程之前已经熟悉了C语言和基本程设编写。这门课则将带你掌握C++语言中类、对象、运算符重载、继承、多态等面向对象的程序设计方法,以及模板、标准模板库STL等泛型程序设计的机制,体会和领悟面向对象程序设计方法和泛型程序设计方法的优势。
-
你有没有好奇过:计算机为什么能够进行计算?计算机程序是怎样运行的?你是否想知道:计算机未来可能的发展趋势有哪些?程序是如何编写出来的?如何学习程序设计语言?程序设计语言的基本成分有哪些?《计算导论》这门课将帮助你解决这些疑惑。 学完这门课,你将能够解释计算机和程序的基本运行原理以及它们的特性,向你的朋友讲述计算机的历史和发展趋势;同时,你也将充分“热身”,迎接“计算机程序设计语言”的学习!
-
如果说学习过《计算导论与C语言基础》,你已经迈入了C语言的殿堂,那么《C程序设计进阶》将帮助你更上一层楼,理解“结构化程序设计的基本思想”,掌握“C程序设计的基本技巧”,养成“良好的编程习惯和编程风格”,编写出“真正具有生命力的计算机程序”。完成这门课的学习,你将能解释C程序设计语言的基本概念与知识,并且使用C语言编写计算机程序解决生活工作中的实际问题。
-
算法代表着用系统的方法描述解决问题的策略机制,北京大学《算法基础》课程将带你一一探索枚举、二分、贪心、递归、深度优先搜索、广度优先搜索、动态规划等经典算法,体会他们巧妙的构思,感受他们利用计算解决问题的独特魅力。顺利完成本课程,你将不但能够掌握这些算法的原理,还能够对这些算法进行灵活应用以及准确实现。本课程的中的编程任务,将充分训练你的思维能力和动手能力,促成全面、缜密思考问题的习惯。达到本门课程的要求,即意味者你具备了初步的算法基础和较强的编程实现能力。
-
作为“程序设计与算法”系列专项课程的结业实践项目,我们联合腾讯公司,为大家设计了一个实际应用问题——搜索引擎设计。这是互联网公司中极具代表的实际开发项目。如何高效地进行检索?如何有效地提升搜索的精度?… 将要求你解决一系列搜索引擎设计中面临的实际问题。通过这个项目实践,我们希望能够对你的实际编程能力进行衡量,也希望你能够充分展现自己所学到的知识和技能。我们将在项目展开的过程中提供腾讯资深工程师的专业解答,并从完成项目的学习者中选拔部分同学参与在腾讯公司的现场交流。完成本实践项目,表明你已经具备了在企业承担程序研发工作的能力。 第一期的结业实践项目初步定为2016年6月。
Taught by
Ge Li 李戈, Ph.D., Jiaying Liu 刘家瑛, Ph.D., Prof. Ming Zhang 张铭 and 郭 炜
Tags
Related Courses
Probabilistic Graphical Models 1: RepresentationStanford University via Coursera Computer Security
Stanford University via Coursera Intro to Computer Science
University of Virginia via Udacity Introduction to Logic
Stanford University via Coursera Internet History, Technology, and Security
University of Michigan via Coursera