Online Courses and Tutorials

Onlinecourses.tech provides you with the latest online courses information by assisting over 45,000 courses and 1 million students.

Learn programming, marketing, data science and more.

Get started today

Skip to main content

Теория отраслевых рынков (Industrial Organization)

About this course: Курс посвящен факторам, влияющим на размер компаний и структуру рынка. Почему на одних рынках преобладают малые компании, а на другом крупные? Продавцы принимают решения стратегически, однако их стимулы в свою очередь зависят от структуры рынка и от предшествующих решений. Как разделить между зоной предопределенных и свободных решений? Например, сговор как модель ценового поведения – предопределен структурой рынка или служит результатом свободного волеизъявления? Способны ли укоренившиеся на рынке продавцы препятствовать входу новичков, защищая свою рыночную долю и свою прибыль? Каковы лучшие способы предотвращения ценовых сговоров продавцов? Нужно ли (или по крайней мере желательно) запрещать или ограничивать слияния между крупными продавцами? Есть ли необходимость для государственной политики налагать ограничения на условия договоров между производителем и дистрибьютором? Как в этих условиях должна быть организована государственная политика (применение антимоноп…

C++程序设计

C++程序设计

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

Created by:  Peking University

  • Jiaying Liu 刘家瑛, Ph.D.
    Taught by:  Jiaying Liu 刘家瑛, Ph.D., Associate Professor
    Institute of Computer Science & Technology

  • 郭 炜
    Taught by:  郭 炜, 讲师
    北京大学信息科学技术学院教学所
Basic Info
Course 3 of 7 in the 程序设计与算法 Specialization.
Commitment每周4-8小时
Language
Chinese (Simplified)
How To PassPass all graded assignments to complete the course.
User Ratings
Average User Rating 4.8See what learners said
Syllabus
WEEK 1
快来加入我们吧!
在完成了计算导论和C程序设计两门课程之后,你是不是被编写程序中逻辑思维的过程与设计精秒的小程序解决实际生活中的问题所深深吸引?你是不是有时也会为大篇幅的程序设计中查错、复用等问题而纠结?快来加入专项课程的第三门课程《C++程序设计》中来吧,为你撑起“面向对象”的另一片天地!通过这门课程的学习,你将有能力驾驭大规模的程序开发,提升自身的编程素养,并为后续的算法、数据结构等课程的学习奠定坚实的基础!PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)
2 videos2 readings
  1. Video: 专项课程介绍
  2. Video: 欢迎加入C++程序设计课程
  3. Reading: 如何学好这门课?
  4. Reading: 课程教材-《新标准C++程序设计》,郭炜编著,清华大学出版社
WEEK 2
从C走进C++
C++是在C语言的基础上创建的一门功能更为强大的面向对象程序设计语言。在正式开始C++程序设计学习之初,我们首先回顾C语言中的高级内容,包括函数指针、命令行参数、位运算和动态内存分配,并在此基础上对C语言进行扩充,引入了引用、const关键字和常量、内联函数和重载函数、函数缺省参数等内容,为后续的C++程序设计的学习打下基础。面向对象的程序设计更接近于真实世界,它要分析待解决的问题中,有哪些类事物,每类事物都有哪些特点,不同的事物种类之间是什么关系,事物之间如何相互作用。本模块将初步介绍面向对象的程序设计的基本内容,尤其是“类”和“对象”这两个重要概念。PS:我们这门课程一直处在不断地建设与优化当中,吸取了很多以往课程的经典视频,所以如果你看到视频中出现了不同课程的名字,也不要惊讶哦,因为你正在集百家所长:)
12 videos2 readings
  1. Reading: 程序AC你必须知道的秘密
  2. Video: 函数指针
  3. Video: 命令行参数
  4. Video: 位运算
  5. Video: 引用
  6. Video: const关键字和常量
  7. Video: 动态内存分配
  8. Video: 内联函数和重载函数
  9. Video: 函数缺省参数
  10. Video: 面向对象程序设计方法
  11. Video: 面向对象语言的发展历程
  12. Video: 从客观事物抽象出类的例子
  13. Video: 类成员的可访问范围
  14. Ungraded Programming: 编程平台测试(不计分)
  15. Reading: 课程Slides
Graded: 从C走进C++
Graded: C++初探
Graded: 编程作业—C++初探
WEEK 3
类和对象
在对类和对象有了初步的了解后,大家已经知道类是C++中十分重要的概念,它是实现面向对象程序设计的基础。类是所有面向对象的语言的共同特征,所有面向对象的语言都提供了这种类型。本模块将进一步介绍类和对象的相关深入概念与内容,包括用于初始化的构造函数,以及复制构造函数,析构函数等。 
10 videos1 reading
  1. Video: 内联成员函数和重载成员函数
  2. Video: 构造函数
  3. Video: 复制构造函数
  4. Video: 类型转换构造函数
  5. Video: 析构函数
  6. Video: 静态成员变量和静态成员函数
  7. Video: 成员对象和封闭类的概念
  8. Video: 友元
  9. Video: this指针
  10. Video: 常量对象、常量成员函数和常引用
  11. Reading: 课程Slides
Graded: 类和对象
Graded: 编程作业—类和对象
WEEK 4
运算符重载
如果不做特殊处理的话,C++的“+”“-”“*”“/”等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。我们希望对象之间也能用这些运算符进行运算,例如,复数之间是可以进行四则运算的,两个复数对象相加如果直接用“+”运算符完成,那不是很直观和简洁吗?本模块将介绍利用C++提供的“运算符重载”机制,赋予运算符新的功能,就能解决对象之间运算的问题。 
6 videos1 reading
  1. Video: 运算符重载的基本概念
  2. Video: 赋值运算符的重载
  3. Video: 运算符重载为友元函数
  4. Video: 实例 – 长度可变的整型数组类
  5. Video: 流插入运算符和流提取运算符的重载
  6. Video: 自增/自减运算符的重载
  7. Reading: 课程Slides
Graded: 运算符重载
Graded: 编程作业—运算符重载
WEEK 5
继承与派生
代码重用是提高软件开发效率的重要手段,因此C++对代码重用有很强的支持,继承与派生就是支持代码重用的机制之一。例如,要编写一个学生管理程序,必然要设计一个“学生”类,“学生”类会包含学生共有的姓名、学号等属性,但是中学生、大学生、研究生又有各自不同的属性和方法,如果为每种学生单独编写一个类会造成重复与浪费。本模块将介绍通过继承和派生机制,可以在基类的基础上派生出不同的类,从而达到代码重用的目的。 
5 videos1 reading
  1. Video: 继承和派生
  2. Video: 复合关系和继承关系
  3. Video: 基类/派生类同名成员和protected访问范围说明符
  4. Video: 派生类的构造函数
  5. Video: public继承的赋值兼容规则
  6. Reading: 课程Slides
Graded: 继承与派生
Graded: 编程作业—继承与派生
WEEK 6
多态与虚函数
多态是指同一名字的事物可以完成不同的功能,例如有几个相似而不完全相同的对象,有时人们要求在向它们发出同一个消息时,它们的反应各不相同,分别执行不同的操作。在C++中,所谓多态性是指由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应。多态性是面向对象程序设计的一个重要特征,能有效增加程序的灵活性。 
6 videos1 reading
  1. Video: 多态和虚函数的基本概念
  2. Video: 使用多态的游戏程序实例
  3. Video: 更多多态程序实例
  4. Video: 多态实现原理
  5. Video: 虚析构函数
  6. Video: 纯虚函数和抽象类
  7. Reading: 课程Slides
Graded: 编程作业—多态与虚函数
WEEK 7
文件操作和模板
计算机中为了便于数据的管理和检索,引入了“文件”的概念。在程序中,要使用一个文件,先要打开,打开后才能读写,读写完后要关闭。本模块将介绍C++流类相应的成员函数来实现文件操作的功能。此外,你还将学习到如何通过编写模板进行泛型程序设计,所谓“泛型”就是算法只要实现一遍,就能适用于多种数据类型。也可以说,泛型程序设计就是大量编写模板、使用模板的程序设计。 
5 videos1 reading
  1. Video: 文件操作
  2. Video: 函数模板
  3. Video: 类模板
  4. Video: string类
  5. Video: 输入输出
  6. Reading: 课程Slides
Graded: 文件操作和模板
Graded: 编程作业—文件操作与模板
WEEK 8
标准模板库 STL-1
本模块将介绍C++的标准模板库(Standard Template Library,STL),这是泛型程序设计最成功的应用实例。STL是一些常用数据结构(如链表、可变长数组、排序二叉树)和算法(如排序、查找)的模板的集合。有了STL,你就不必编写大多的、常用的数据结构和算法。即便不想用面向对象的程序设计方法编程,学习STL也是大有裨益的。 
5 videos1 reading
  1. Video: STL-概述
  2. Video: STL-概述(续)
  3. Video: 顺序容器Vector
  4. Video: List和Deque
  5. Video: 函数对象
  6. Reading: 课程Slides
Graded: STL-1
Graded: 编程作业—STL1
WEEK 9
标准模板库 STL-2
本模块将继续介绍C++的标准模板库(Standard Template Library,STL),这是泛型程序设计最成功的应用实例。STL是一些常用数据结构(如链表、可变长数组、排序二叉树)和算法(如排序、查找)的模板的集合。有了STL,你就不必编写大多的、常用的数据结构和算法。即便不想用面向对象的程序设计方法编程,学习STL也是大有裨益的。 
5 videos1 reading
  1. Video: Set和Multiset
  2. Video: Map和Multimap
  3. Video: 容器适配器
  4. Video: 算法
  5. Video: 算法(续)
  6. Reading: 课程Slides
Graded: STL-2
Graded: 编程作业—STL2
WEEK 10
期末考试
基础Wow~ 恭喜你已顺利完成了C++课程八个模块知识点的学习,在被魔兽世界各种虐心虐神之后,有没有对于C++有着一点高屋建瓴的别样体会啊?快来最后体验一下我们的期末测试吧(这是原汁原味的北京大学该课程试题,没有任何改动)!也希望与大家相聚在专项课程的下一门《算法设计》课程中,有了C和C++两种程序语言的基础,你需要进一步提升自身的算法设计技巧,让程序跑的通,还要跑的妙! 
Graded: 期末考试-选择题
Graded: 期末考试—编程试题
WEEK 11
[选学] C++高级主题和C++11新特性
[选学] C++高级主题和C++11新特性: 本模块给大家介绍一些C++程序设计的进阶内容,以及最新C++11标准的部分新特性。该模块内容不属于本课程必须掌握的教学内容,但是通过了解和学习必将为你打开一扇C++学习的新门,继续探索程序设计的各种精妙与美好! 
4 videos1 reading
  1. Video: C++11新特性
  2. Video: C++11新特性(续)
  3. Video: 强制类型转换
  4. Video: 异常处理
  5. Reading: 课程Slides
WEEK 12
结束语
每一次的结束与分离,都是为了我们下一次更好的相遇。期待与你相会在《算法基础》课程!这次的视频我们来点儿不一样的吧 ^_____^ 
1 video
  1. Video: 我们的结束语
How It Works
Coursework
Coursework
Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.
Help from Your Peers
Help from Your Peers
Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.
Certificates
Certificates
Earn official recognition for your work, and share your success with friends, colleagues, and employers.
Creators
Peking University
Peking University is determined to make its education openly accessible to students in China and around the world. With over 3000 faculty members, Peking University offers excellence in teaching and learning. Founded in 1898, Peking University (PKU) was the first national comprehensive university in China. For the past 115 years, with its hundreds of thousands of outstanding alumni, Peking University has made prominent contributions in the humanities and sciences to further China's prosperity and progress.
Learn more about this course

Comments

Popular posts from this blog

An Introduction to Interactive Programming in Python (Part 1)

About this course: This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse. In part 1 of this course, we will introduce the basic elements of programming (such as expressions, conditionals, and functions) and then use these elements to create simple interactive applications such as a digital stopwatch. Part 1 of this class will culminate in building a version of the classic arcade game "Pong".
Who is this class for: Recommended Background - A knowledge o…

Introduction to Data Science in Python

About this course: This course will introduce the learner to the basics of the python programming environment, including how to download and install python, expected fundamental python programming techniques, and how to find help with python programming questions. The course will also introduce data manipulation and cleaning techniques using the popular python pandas data science library and introduce the abstraction of the DataFrame as the central data structure for data analysis. The course will end with a statistics primer, showing how various statistical measures can be applied to pandas DataFrames. By the end of the course, students will be able to take tabular data, clean it,  manipulate it, and run basic inferential statistical analyses. This course should be taken before any of the other Applied Data Science with Python courses: Applied Plotting, Charting & Data Representation in Python, Applied Machine Learning in Python, Applied Text Mining in Python, Applied Social Ne…

Learn to Program and Analyze Data with Python

About This Specialization This Specialization builds on the success of the Python for Everybody course and will introduce fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. In the Capstone Project, you’ll use the technologies learned throughout the Specialization to design and create your own applications for data retrieval, processing, and visualization. Created by: 5 courses Follow the suggested order or choose your own. Projects Designed to help you practice and apply the skills you learn. Certificates Highlight your new skills on your resume or LinkedIn. Courses

Archive