引言内容概述: "讲什么"和"怎么讲"的思考Part I: 所谓编程第一章 编程 - 从数学谈起
- 其实你已经知道编程
- 编程的本质规律
- 所谓编程
- 基本的编程元素:
- 整数, 实数, 数组+它们的操作
- 三种控制结构 - Sequential, Decision/Selection, Repetition/Loop
- 编程确实是将解决步骤规范化地描述出来 "Dr. IPO"
- 幸好你知道框架的重要性
- 如何构建复杂的程序? - 函数的概念和函数调用
- 你要计算多组数据的GCD, 当然不能只是一个主函数里重复多次 - 引入函数, 和函数调用
- 数组上的运算
- 用几个例子更透彻地理解: 突出逻辑表述的重要性
- FindLargest
- 显然排序后找最大最小更快 - 引入编程的两个常见的任务: 排序和查找 - 排序往往是为查找服务的.
- 插入排序 -
- binary search -
- 所谓编程语言
第二章 来一点C语言 - 运行你的程序
- C语言也没那么难
- 工欲善其器必先利其具 - Code::Block
- 还需要了解下IO - 其实就是调用而已
- 你的第一个C语言程序
- 运行它 - 活用printf()语句
第三章 更复杂的例子 - 需要更复杂的数据结构和算法, 但是框架还是可复用的
- string? - 编程, 可以借助调用别人的代码来简化
- Insertion Sorting
- Binary Search
第四章 实际的编程语言开发工具也会提供一些现成的代码
- Basic IO - scanf(), printf()
- File - and its operations
Part II: 程序如何运行在计算机上第五章 二进制 - 所有的一切都可以用二进制表示
- 二进制?
- 与程序有关的元素都可转换为二进制表示
- 其实, 计算机硬件也是依赖二进制
第六章 现代计算机 - von Neumann architecture
- von Neumann Architecture - 现代计算机的基础, 各部件的功能
- 阐述程序执行的流程 - 要运行程序, 需要获得必要的资源: 内存, CPU等. 然后...
- 如何基于二进制开关实现加法器
- 计算机发展的简单历史 [在了解了基于开关实现加法器后, 计算机划分为四代的标志也就是实现"开关"的技术不同而已 - 真空管, 电子管/晶体管, IC, VLSI/Microprocesor - 其实, 后面的标志都还是晶体管为基础]
第七章 操作系统 - 为程序运行做好准备
- 在计算机上运行程序, 是需要准备资源的 - CPU, 内存, 甚至共享资源 - File, 磁盘等等
- 操作系统就是这样的一个软件 - 核心功能就是管理计算机的资源为运行程序做准备, 其次是为用户提供友好界面 (GUI)
- 突出的问题 - 多道程序运行: CPU切换, 线性内存分配多个程序
- 操作系统的核心任务也就是完成两个映射
- 从文件/程序的逻辑空间映射到内存(线性)空间
- 从文件/程序的逻辑空间映射到磁盘空间
第八章 运行别的计算机上的服务 - Internet编程
- 现代Internet基础 - TCP/IP
- Internet 编程的框架
- 简单的例子
Part III: 编程语言第九章 编程语言的历史
第十章 基于C语言的编程
- C 语言支持的数据类型及其操作:
- 字符串
- 指针
- 多维数组
- 结构体和结构体数组
- 文件也是个数据而已, 它也有相应的操作
- 高级编程案例1 - 提取字符串中的单词, 并计算单词出现的频率
- 高级编程案例2 - 线性链表及其操作, 兼论"数据结构"课程的学习
- 高级编程案例3 - 复杂数据结构的文件保存, 兼论数据库系统的实现
第十一章 其他语言简介
- 基于Java语言的编程 - 所谓面向对象语言
- 基于Pyhton语言的编程 - 所谓脚本语言
- 基于Haskell语言的编程 - 所谓函数语言
https://blog.sciencenet.cn/blog-112715-648500.html
上一篇:
不可思议的e下一篇:
一得集[II]:《计算机和计算:基于Code::Block的C编程实训》