笔记(十三)哈佛大学开放课程《计算机科学》cs50

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/johnwillwin/article/details/89929029

介绍了计算机科学,计算机科学不只是编程,程序设计只是一个工具,是达到目的的一种手段。编程是给计算机发出指令。

Week 0.算法,程序设计,语言等

1.通过一个撕电话本找人名的例子来举例什么是算法,通过计算机思维将一个问题直观高效地解决掉。

2.一种点名方法

1).stand up

2).think to yourself:I am #1

3).pair off with someone standing,add your numbers toghther,and adopt the sum as your new number

4).one of you should sit down;the other should go back step 3

3.通过一个Scratch的软件讲解了什么是编程。一个大的问题是由很多小问题串联起来的,将想象中的东西通过人机交互的形式展现出来,例如网页制作,应用程序制作。

4.课程寄语

Demanding,but definitely doable.

Social,but educational.

A focused topic,but broadly applicable skills.

CS50 is the quintessential Harvard course.

算法,数据存储,磁盘,程序设计

1.不是学习编程,是学习解决问题的思路,以及提高效率的方法。例如如何自动管理邮件。

2.数据在计算机中以0,1的形式存储。

3.数据的存储,磁盘的构成以及工作原理,格式化或者删除文件时只是修改了极小一部分数据使设备找不到文件,其实文件仍然存在与磁盘原来的位置,这是数据可以恢复的原因。

Week 1.C语言,源代码,编译器(1)

1.一步一步的构建编程和解决问题的思路,重点在于设计,编程是最后一步,要注意编程规范。

statments声明 loops循环 variables变量 Boolean expression布尔表达式

conditions条件 arrays数组 Standard library标准库 printf一个泽被后人的函数

escape sequence转义字符 math primitive types基本类型 precedence优先级

2.compiler编译器GCC. C语言中a char size is 1 byte or 8 bits.

3.程序要有容错性,就要有足够多的检查。

C语言,源代码,编译器(2)

Week 2.函数,全局变量,参数,返回值

typecasting 类型转换

参数,返回值

functions 函数 scope范围 global variables 全局变量

Week 3.线性搜索、二进制搜索

1.secret-key crypto 文件加密的多种方法

2.代码一定要加上注释。

符号、递归、冒泡排序

GDB 调试工具

排序效率 时间复杂度大不相同

Week 4.归并排序、结构体、动态内存分配、堆和栈、指针、调试

归并排序,利用递归实现

演示了很多排序的动画

函数库、堆和栈、指针、文件输入输出、辩学、链表

Week 5.数独、计算机史上最有名的bug

sudoku 数独

魂斗罗游戏、如何分配内存

Week 7.

位图

堆LIFO(ADT)先进后出

队列FIFO 先进先出

Week 8.

TCP/IP协议

HTML 描述语言,告诉计算机怎样显示一些东西

HTTP协议 Hyper Text Transfer Protocol

IP协议 internet Protocol

CSS 层叠样式表属性(Cascading Style Sheet property)

猜你喜欢

转载自blog.csdn.net/johnwillwin/article/details/89929029
今日推荐