程序设计与算法 Specialization

Started Jun 26

程序设计与算法 Specialization

程序设计与算法 Specialization

About This Specialization

本专项课程旨在系统培养你的程序设计与编写能力。系列课程从计算机的基础知识讲起,无论你来自任何学科和行业背景,都能快速理解;同时我们又系统性地介绍了C程序设计,C++程序设计,算法基础,数据结构与算法相关的内容,各门课之间联系紧密,循序渐进,能够帮你奠定坚实的程序开发基础;课程全部配套在线编程测试,将有效地训练和提升你编写程序的实际动手能力。并通过结业实践项目为你提供应用程序设计解决复杂现实问题的锻炼,从而积累实际开发的经验。因此,我们希望本专项课程能够帮助你完成从仅了解基本的计算机知识到能够利用高质量的程序解决实际问题的转变。

Created by:

Industry Partners:

courses
7 courses

Follow the suggested order or choose your own.

projects
Projects

Designed to help you practice and apply the skills you learn.

certificates
Certificates

Highlight your new skills on your resume or LinkedIn.

Courses
Beginner Specialization.
No prior experience required.
  1. COURSE 1

    计算导论与C语言基础

    Current session: Jun 26 — Sep 25.
    Commitment
    每周4-8小时
    Subtitles
    Chinese (Simplified)

    About the Course

    你有没有好奇过:计算机为什么能够进行计算?计算机程序是怎样运行的?你是否想知道:计算机未来可能的发展趋势有哪些?程序是如何编写出来的?如何学习程序设计语言?程序设计语言的基本成分有哪些?《计算导论》这门课将帮助你解决这些疑惑。 学完这门课,你将能够解释计算机和程序的基本运行原理以及它们的特性,向你的朋友讲述计算机的历史和发展趋势;同时,你也将充分“热身”,迎接“计算机程序设计语言”的学习!
  2. COURSE 2

    C程序设计进阶

    Current session: Jun 26 — Sep 4.
    Commitment
    每周4-8小时
    Subtitles
    Chinese (Simplified)

    About the Course

    如果说学习过《计算导论与C语言基础》,你已经迈入了C语言的殿堂,那么《C程序设计进阶》将帮助你更上一层楼,理解“结构化程序设计的基本思想”,掌握“C程序设计的基本技巧”,养成“良好的编程习惯和编程风格”,编写出“真正具有生命力的计算机程序”。完成这门课的学习,你将能解释C程序设计语言的基本概念与知识,并且使用C语言编写计算机程序解决生活工作中的实际问题。
  3. COURSE 3

    C++程序设计

    Current session: Jun 26 — Sep 25.
    Commitment
    每周4-8小时
    Subtitles
    Chinese (Simplified)

    About the Course

    北京大学《C++程序设计》这门课将向你讲授C++程序设计有关的概念和语法,使你能够使用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序。我们建议你在开始本课程之前已经熟悉了C语言和基本程设编写。这门课则将带你掌握C++语言中类、对象、运算符重载、继承、多态等面向对象的程序设计方法,以及模板、标准模板库STL等泛型程序设计的机制,体会和领悟面向对象程序设计方法和泛型程序设计方法的优势。
  4. COURSE 4

    算法基础

    Current session: Jun 26 — Sep 18.
    Commitment
    每周4-8小时
    Subtitles
    Chinese (Simplified)

    About the Course

    算法代表着用系统的方法描述解决问题的策略机制,北京大学《算法基础》课程将带你一一探索枚举、二分、贪心、递归、深度优先搜索、广度优先搜索、动态规划等经典算法,体会他们巧妙的构思,感受他们利用计算解决问题的独特魅力。顺利完成本课程,你将不但能够掌握这些算法的原理,还能够对这些算法进行灵活应用以及准确实现。本课程的中的编程任务,将充分训练你的思维能力和动手能力,促成全面、缜密思考问题的习惯。达到本门课程的要求,即意味者你具备了初步的算法基础和较强的编程实现能力。
  5. COURSE 5

    数据结构基础

    Current session: Jun 26 — Sep 4.
    Commitment
    每周4-8小时
    Subtitles
    Chinese (Simplified)

    About the Course

    学了C/C++ 语言,我们已经会编程解题了,那怎么用来处理实际的问题呢? 怎么设计数据结构来有效地管理企业人员?如何编写程序没让人才和岗位达到最佳匹配?如何安排旅行计划,找到最佳行程路径?这些学习、工作、生活中常常困扰我们的问题,你将在《数据结构基础》课程中找到答案。 数据结构是计算机程序设计的基础,告诉我们数据在计算机里是如何组织与存储的,能帮助我们刻画实际问题中的信息及其相互关系。当我们对一个实际问题本身有了一个结构化的认识之后,就可以选择合适的解决方法了。 完成这门课之时,你将掌握线性表、栈与队列、字符串、二叉树、树、图等经典的数据结构,并运用这些基础数据结构和相关算法解决实际应用问题。扎实的数据结构知识是项目开发与结构层次设计的关键,学好这门课会让你在高年级的计算机专业课程以及毕业项目设计中事半功倍,同时也将为你成为一名优秀的程序设计人员打下坚实的基础。 附:本课程的内容来自教材:《数据结构与算法》(张铭、王腾蛟、赵海燕 编著),高等教育出版社,2008年。
  6. COURSE 6

    高级数据结构与算法

    Current session: Jun 26 — Sep 4.
    Commitment
    每周4-8小时
    Subtitles
    Chinese (Simplified)

    About the Course

    学习了基本的数据结构后,我们已经可以用程序来解决现实中的一些问题了。但是,怎样提升程序在运行效率呢? 如何快速地把图书按序号从小到大整理好?如何通过一个ID编号在数据库中高效地查找相对应的信息?如何迅速找到所有内容中含有“数据结构”的文档?《高级数据结构与算法》将通过使用高级的数据结构和高效的算法,让你学会如何解决这些对运行时间要求比较严格的问题。 高级数据结构和算法能够根据实际情况,满足一些复杂问题对数据规模、运行时间的要求,帮助我们更有效地解决问题。当我们面对实际问题的时候,高级数据结构和算法让我们有更广泛的空间,选择出与问题本身最为契合的数据结构,并利用相关算法来提升运行效率。 完成这门课之时,你将掌握多维数组、广义表、Trie树、AVL树、伸展树等高级数据结构,并结合内排序、外排序、检索、索引有关的算法,高效地解决现实生活中一些比较复杂的应用问题。合理使用这些高级数据结构和相关算法是程序运行效率的关键因素,学好这门课会让你在之后的计算机专业课程以及项目设计中更得心应手,同时也将让你站在更高的角度去理解问题、设计程序。
  7. COURSE 7

    程序开发项目实践

    Upcoming session: Jul 31 — Sep 4.
    Commitment
    4 周课程, 2-4 小时/周
    Subtitles
    Chinese (Simplified)

    About the Capstone Project

    作为“程序设计与算法”系列专项课程的结业实践项目,我们联合腾讯公司,为大家设计了一个实际应用问题——搜索引擎设计。这是互联网公司中极具代表的实际开发项目。如何高效地进行检索?如何有效地提升搜索的精度?… 将要求你解决一系列搜索引擎设计中面临的实际问题。通过这个项目实践,我们希望能够对你的实际编程能力进行衡量,也希望你能够充分展现自己所学到的知识和技能。我们将在项目展开的过程中提供腾讯资深工程师的专业解答,并从完成项目的学习者中选拔部分同学参与在腾讯公司的现场交流。完成本实践项目,表明你已经具备了在企业承担程序研发工作的能力。 第一期的结业实践项目初步定为2016年6月。

Creators

  • Prof. Ming Zhang 张铭

    Prof. Ming Zhang 张铭

    教授
  • Ge Li  李戈, Ph.D.

    Ge Li 李戈, Ph.D.

    Associate Professor
  • Jiaying Liu 刘家瑛, Ph.D.

    Jiaying Liu 刘家瑛, Ph.D.

    Associate Professor
  • 郭 炜

    郭 炜

    讲师

FAQs

More questions? Visit the Learner Help Center.