计算机科学概论读后感

计算机科学概论

用了很长时间,通读了一遍《计算机科学概论》第12版,首先说一下整体印象,在计算机科学层面,老外的书比国内的某些“大教授”编写的教科书明显不是一个档次,老外用通俗易懂的语言教人理解计算机科学,“大教授”用晦涩难懂的语言让人远离计算机科学。

这本书一共分为13章,包含绪论,数据存储,数据操控,操作系统,组网及因特网,算法,程序设计语言,软件工程,数据结构,数据库系统,计算机图形学,人工智能,计算方法。鉴于时间原因及从核心出发的思想,我学习了前十章节,后三章留待日后学习或者从其他专门书籍中学习。

从绪论章节开始,讲述了计算机科学的历史来源,涉及的主题及基本方法论,学习完绪论章节,能对计算机科学有一个大概认识,并对算法,抽象,创新,数据,程序设计,因特网及社会影响几大核心主题有一个结构化的理解。

第一章是关于数据存储的,其核心主题是:计算机世界里,信息是通过0和1这两个符号表示和传递的,通过使用0和1,计算机可以表示文本(ASCII及UNICODE编码),数字(整数用二进制补码表示,实数用二进制浮点表示法表示),图像(通过位图,矢量图的形式表示),声音(通过采集方式或者乐谱形式表示),视频(图像集合+声音数据);并通过简单的门电路及触发器原理讲述了存储二进制位的实际电路构成,并以此介绍了计算机的主存储器(内存),海量存储器(外存,包括磁盘存储器,光盘存储器,闪存存储器)的基本构成特点及性能;最后,介绍了Python语言的数据存储语法及基本的运算符及表达式,数据压缩的通用技术及通信差错的处理方法。

第二章是关于计算机内部数据操作的,其核心是:计算机的核心体系结构包括CPU(运算单元和控制单元),内存,总线;计算机可以通过存储程序概念保存程序及数据到内存单元,并通过机器指令形式操控机器部件及数据;通过总线,计算机(CPU+内存)可以与计算机外部设备(键盘,鼠标,打印机,显示器等)通过控制器进行通信,以存储映射输入输出的两种方式完成通信过程,并通过状态字机制处理通信过程中的不匹配问题;通过对Python中的数据操作方法的简要介绍(包括逻辑运算与移位运算,控制结构语法,输入和输出函数及自定义函数)将本章的主要概念实际演示出来;最后,介绍了计算机的其他体系结构包括流水线结构及多处理器机器的概念。

第三章开始,利用前两章的概念作为抽象工具,介绍了操作系统的历史(批处理系统,实时处理需要导致的分时及多任务处理概念,以及因此出现的多道程序设计方法),软件分类(系统软件+应用软件),操作系统的组成(用户界面+文件管理程序+设备驱动程序+内存管理程序),进程的概念(程序活动的执行),进程管理的方法(调度程序及分派程序),信号量(为临界区代码或设备提供标识符用于多进程互斥访问的方法)与死锁(多进程设计不良造成的进程无法前进状态)的分析表明了操作系统处理多进程并发的方法;最后,用操作系统安全性(问题与解决办法)的相关主题结束了本章节。

第四章主要介绍计算机网络的相关知识,包括:组网方法(总线型网络中的设备及带冲突检测的载波侦听多址访问协议,无线星型网络中的设备及带冲突避免的载波侦听多址访问协议),通过进程通信的方式引入了C/S模型及P2P模型,简要介绍了以网络为工具形成的软件系统形式:分布式网络;接下来,重点描述了因特网(网络的网络)的架构方法,设备,地址形式(IP地址及域名系统),在因特网环境中的网络应用(SMTP协议下的邮件应用,Voip及因特网多媒体流通信);在以上知识的基础上,构建了因特网特殊应用:万维网(WWW),并介绍了万维网中的标记语言-HTML,XML以及万维网客户端和服务器的活动;网络软件的四层架构及相应层级上的网络协议,重点介绍了TCP及UDP协议的区别与相似点;最后,以网络安全性问题及相关解决方案的介绍结束。

第五章介绍了计算机科学的核心主题:算法。包括:算法的本质及概念;算法的表示方法(原语,伪代码,流程图,机器语言,汇编语言与高级语言);算法的发现过程(自顶向下逐步求精及自底向上逐步求解的方法);算法的两种结构(迭代及递归),基本算法(顺序搜索算法,二分搜索算法,插入排序算法,选择排序算法,冒泡排序算法);算法的效率分析(时间复杂性及空间复杂性,本书主要介绍了时间复杂性的计算方法)及软件正确性验证(形式化验证方法)。

第六章涉及程序涉及语言方面的相关主题,通过本章学习,我了解到了:程序设计语言的概念及发展(机器语言->汇编语言->高级语言),程序设计的四大范型(命令型范型,函数式范型,说明性范型及面向对象范型),传统程序设计的概念(变量,常量,字面量,数据类型,数据结构,控制语句,表达式及注释,函数),语言实现的过程(语法分析,词法分析,代码生成),面向对象程序设计的基本概念(类和对象,构造函数,继承,封装,多态性概念),程序设计并发活动(线程的概念及创建线程方法,对数据访问的控制方法由线程控制或者数据自身的监控程序控制)。

第七章描述了现代软件工程方面的主题,包括:软件生命周期(开发阶段,使用阶段,维护阶段),在开发阶段包括需求分析,设计及实现;软件模块化设计方法(命令型程序中的函数模块化,面向对象范型中的对象模块化,模块化的低耦合,高内聚以及信息隐藏的原则),在软件设计过程中使用的UML即统一建模语言(实际使用用例图,类图及序列图来描述软件系统),并通过软件质量保证(测试+形式化方法),软件相关文档(用户文档+系统文档+技术文档),人机界面及软件所有权方面的主题结束了本章节。

接下来到了第八章,本章介绍了数据结构的概念(通过语言设计数据集合,隐藏技术细节,使应用程序开发者使用概念结构操控数据),典型数据结构的概念(列表,链表,栈和队列,树及二叉树)及实现方法(使用指针),通过传统命令型程序中用户定义的数据类型及抽象数据类型的介绍引入了类与对象这种特殊的数据结构,并通过机器语言的指针实现方法引入了立即寻址,直接寻址及间接寻址的概念。

第九章介绍数据库系统,数据库系统包括(应用软件+数据库管理系统+实际数据库),通过SQL语言,可以借助数据库管理系统提供的访问数据库的例程访问实际数据库,可以从概念上访问数据库而不需要考虑存储细节,数据库设计的方法包括传统的关系型数据库及面向对象数据库,面向对象数据库从各种方面优于传统的关系型数据库;简要介绍了数据挖掘及数据仓库的概念以及数据库技术引发的社会问题。

一口气写完这篇,是为了在输入信息及知识的同时产生相关输出,整理自己的所学,从中发现问题,以为下一阶段学习提供参考,不得不说,这样一套学习下来,对计算机科学有了一个全景式的认知,并对计算机科学中的模型有了一个较为系统的认知,对常见的经典问题及解决方案也有了一个基础的理解,这本书先学到这里,接下来需要学习产品相关的理论书籍及实用方法,这本书先入书架,日后还将不断翻看。

作者:zhangmengxuan_csdn
来源:CSDN
原文:https://blog.csdn.net/zhangmengxuan_csdn/article/details/78625167
版权声明:本文为博主原创文章,转载请附上博文链接!# 欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

你可能感兴趣的:(概论)