一、每周作业汇总
1.第一周作业
学习目标
课程概论
工业革命与浪潮之巅
信息与信息安全
计算机系统概论
计算机安全
计算的限制
计算思维
2.第二周作业
学习目标
数字化
信息安全
自学教材
3.第三周作业
学习目标
数字分类与计数法
位置计数法
进制转换
模拟数据与数字数据
压缩与解压
数字化
信息安全
4.第四周作业
学习目标
门电路
组合电路,逻辑电路
冯诺依曼结构
CPU,内存,IO管理
嵌入式系统,并行结构
物理安全
5.第五周作业
学习目标
Pep/9虚拟机
机器语言与汇编语言
算法与伪代码
测试:黑盒,白盒
6.第六周作业
学习目标
Polya如何解决问题
简单类型与组合类型
复合数据结构
查找与排序算法
算法复杂度
递归
代码安全
7.第七周作业
学习目标
数组与链表
基于数组和基于链表实现数据结构
无序表与有序表
树
图
子程序与参数
8.第八周作业
学习目标
功能设计与面向对象设计
面向对象设计过程
面向对象语言三要素
汇编、编译、解释、执行
9.第九周作业
学习目标
操作系统责任
内存与进程管理
分时系统
CPU调度
文件、文件系统
文件保护
磁盘调度
10.第十周作业
学习目标
信息系统
数据库与SQL
人工智能与专家系统
人工神经网络
模拟与离散事件
排队系统
天气与地震模型
图形图像
11.第十一周作业
学习目标
计算机网络
网络拓扑
云计算
网络安全
Web
HTML,CSS,Javascript
XML
12.第十二周作业
学习任务
加入云班课,参考本周学习资源
自学教材
《C语言程序设计》第11章并完成云班课测试
13.第十三周作业
学习任务
加入云班课,参考本周学习资源
自学教材
《C语言程序设计》第12章并完成云班课测试
14.第十四周作业
学习任务
加入云班课,参考本周学习资源
自学教材
《C语言程序设计》第13-14章并完成云班课测试
实验汇总
1.【实验一】Linux 基础命令实践
2.【实验二】基本控制结构编程练习
3.【实验四】函数与数组编程练习
4.【实验六】文件与结构体编程练习
5.【实验七】缓冲区溢出实验
6.【实验八】基于 LAMP 部署 WordPress
整体评价一下第1周作业中自己提出的问题是不是抓住了学习重点
第一周的时候,我对课程没有形成完全的认知,当时自己只知道看着书,提出一些自己好奇的问题,却没有结合课程整体的知识框架,部分问题没有抓住学习重点,但这些问题在一定程度上还是帮助我学习到计算机的部分知识点,为今后学习计算机打下基础。
回答一下第1周作业中自己提出的问题
第一章
- 1. 如何理解计算硬件在“云”上
计算硬件在“云”上意味着将计算硬件资源如服务器、存储等放置在云端数据中心,用户可通过网络按需访问和使用这些资源,无需自己购置和维护大量硬件设备,实现资源的灵活调配和共享。这就如同将个人的计算能力从本地的小空间扩展到了一个巨大的、可随时调用的资源池,用户可以根据自己的业务需求,灵活地获取和释放计算资源,而无需关心硬件的具体物理位置和维护细节。 - 2. 编程的概念和价值
编程是使用特定编程语言编写指令,让计算机执行任务、实现功能的过程。其价值在于能实现自动化,提高效率,创建各种软件应用、系统等,推动科技发展和创新。比如,通过编程可以开发出各种手机应用程序,方便人们的生活;也可以创建复杂的企业管理系统,提高企业的运营效率;还能用于开发人工智能算法,推动人工智能技术的发展。
第二章
- 3. 各进制数有何意义
不同进制数在不同场景有其意义。二进制是计算机底层数据存储和处理的基础,易于实现和运算,因为计算机的硬件是基于电子元件的开关状态来表示数据的,0和1正好对应开关的两种状态;八进制、十六进制常用于计算机编程中表示数据,可简化二进制的表示,例如在表示内存地址等数据时,十六进制更为简洁直观;十进制是人们日常生活中最常用的计数方式,符合人们的计数习惯;其他进制在特定领域如时间(六十进制)等也有应用,方便特定数据的表示和处理。
第三章
- 4. 各种编码方式的优缺点
ASCII编码简单,兼容性好,但只能表示有限的英文字符等,它主要用于早期的计算机系统和基本的文本处理;Unicode编码能表示全球所有字符,通用性强,但占用空间较大,对于一些需要存储大量文本数据的场景,可能会增加存储成本;UTF - 8是Unicode的一种可变长度编码,可兼容ASCII,又能高效表示各种字符,应用广泛,但编码和解码相对复杂,不过在现代计算机性能的支持下,这种复杂度对大多数应用来说影响不大。
第四章
- 5. 各种“门”的区别及作用
常见逻辑门有与门、或门、非门、与非门、或非门、异或门等。 - 与门只有输入都为真时输出才为真,用于逻辑判断,比如在一个安全系统中,只有当多个条件(如多个传感器都检测到安全状态)都满足时,才输出安全信号。
- 或门只要有一个输入为真输出就为真,可用于多种条件满足其一即可的场景,例如在报警系统中,只要有一个报警器触发,就发出报警信号。
- 非门实现逻辑取反,可用于将信号的状态反转,如将高电平变为低电平。
- 与非门、或非门是与门、或门和非门的组合,可实现更复杂的逻辑功能。
- 异或门输入不同时输出为真,可用于数据校验等,比如在数据传输中,通过异或运算可以检测数据是否发生了变化。它们是数字电路的基本单元,用于构建各种复杂的逻辑电路和计算机硬件。
第五章
- 6. 处理器都有哪些类型
按应用场景可分为: - 通用处理器(如PC中的CPU),适用于多种类型的计算任务,能够运行各种不同的软件,具有较强的通用性和复杂指令集处理能力。
- 嵌入式处理器(用于智能手环等嵌入式设备),通常针对特定的嵌入式应用进行优化,具有低功耗、小尺寸、低成本等特点。
- 图形处理器GPU(主要用于图形处理),在处理图形数据、进行图形渲染等方面具有很高的性能,也常用于一些需要大规模并行计算的场景。
- 数字信号处理器DSP(用于数字信号处理),专门用于对数字信号进行快速处理和分析,如音频、视频信号的处理等。
按指令集可分为复杂指令集(CISC)和精简指令集(RISC)处理器等,CISC指令集复杂,功能强大,但执行效率相对较低;RISC指令集简单,执行效率高,更适合流水线操作等。
第六章
- 7. 指令码的工作原理
指令码是处理器能够识别和执行的二进制代码。处理器从内存中读取指令码,通过指令译码器将其解析为操作码和操作数等信息,然后根据操作码执行相应的操作,如算术运算、数据传输等,操作数则指定操作的对象或参数,整个过程由控制器协调控制。例如,当指令码表示加法操作时,操作数会指定要相加的两个数据的地址或数值,处理器根据指令码的要求从相应的内存位置或寄存器中取出数据进行加法运算,并将结果存储到指定的位置。
第七章
- 8. 各种排序方式的优缺点
- 冒泡排序简单易理解,但时间复杂度高,效率低,尤其是在数据量较大时,排序速度会明显变慢。
- 快速排序平均时间复杂度低,效率高,但最坏情况时间复杂度退化,比如当数据基本有序时,其性能会下降。
- 插入排序在数据基本有序时效率高,代码简单,但一般情况下效率不如其他高级排序算法,对于大规模无序数据的排序速度较慢。
- 归并排序稳定,时间复杂度稳定为O(nlogn),但需要额外空间,在空间资源紧张的情况下可能不太适用。
- 9. 递归算法的简单概念
递归算法是指在函数的定义中使用函数自身的方法。它将一个大问题分解为规模更小的相同问题,通过不断调用自身来解决问题,直到达到某个基础情况(递归终止条件)。例如计算阶乘n!,可以定义为n * (n - 1)!,当n为0或1时,阶乘为1,这就是一个典型的递归算法,通过不断将问题规模缩小,直到达到终止条件。
第八章
- 10. 参数的存在意义
参数是函数或方法中用于传递数据的变量。它使函数具有通用性和灵活性,通过传入不同的参数值,函数可以执行不同的操作、处理不同的数据,避免了编写大量重复代码,提高了代码的可维护性和可扩展性。比如一个计算两个数之和的函数,通过传入不同的参数,就可以计算任意两个数的和,而不需要为每一对数字都编写一个单独的求和函数。
第九章
- 11. 命令式范型与声明式范型各自作用
- 命令式范型强调通过一系列指令来明确告诉计算机如何执行任务,注重操作的过程和步骤,适合描述底层、对性能要求高的操作,比如在编写操作系统内核、图形渲染引擎等对性能和底层控制要求严格的程序时,命令式范型可以让程序员精确控制每一步的操作。
- 声明式范型则强调描述要实现的目标,而不是具体的执行步骤,让计算机自动决定如何实现,使代码更简洁、易读,适合处理复杂的逻辑和数据操作,例如在数据库查询中,使用声明式的SQL语言可以更方便地表达复杂的查询逻辑,而无需关心具体的数据检索和处理过程。
第十章
- 12. 内存管理各种类型的适用范围
- 静态内存管理在编译时就确定内存分配,适用于内存需求固定、生命周期明确的情况,比如一些简单的嵌入式系统中,某些数据结构的大小和生命周期在编译时就可以确定,使用静态内存管理可以提高内存使用效率和程序的稳定性。
- 动态内存管理在运行时根据需要分配和释放内存,适合内存需求不确定的场景,例如在开发一些需要处理大量动态数据的应用程序时,如数据库管理系统,数据的大小和数量在运行前是不确定的,动态内存管理可以根据实际需求灵活地分配和释放内存。
- 自动内存管理通过垃圾回收机制自动回收不再使用的内存,提高了开发效率和安全性,常用于高级编程语言和框架中,比如Java、Python等语言,开发者无需手动管理内存的释放,减少了内存泄漏等问题的发生,提高了开发效率,但自动内存管理可能会带来一定的性能开销。
第十一章
- 13. 文本文件和二进制文件区别
- 文本文件以字符形式存储数据,可直接用文本编辑器查看和编辑,内容直观,便于人类阅读和处理,例如普通的TXT文档,人们可以直接打开查看和修改其中的文字内容,但存储效率相对较低,因为每个字符都需要一定的存储空间来表示。
- 二进制文件以二进制形式存储数据,不直接显示文本内容,适合存储图像、音频等非文本数据,存储效率高,能快速读取和写入,例如图片文件、视频文件等都是以二进制形式存储的,但处理时通常需要特定的解析方法,不同类型的二进制文件有不同的格式和解析方式。
第十二章
- 14. 结构化查询语言的简单理解
结构化查询语言(SQL)是用于数据库管理和操作的语言。它可以用于创建、修改和删除数据库对象,如表格等,还能对数据库中的数据进行插入、查询、更新和删除等操作,通过简单的语句实现对复杂数据的管理和处理,是数据库应用开发的重要工具。例如,可以使用SQL语句从数据库中查询出符合特定条件的记录,或者向数据库中插入新的数据记录,其语法简单直观,易于学习和使用。
第十三章
- 15. 图灵测试意义
图灵测试是判断机器是否具有智能的一种方法,其意义在于为人工智能的发展提供了一个可操作的标准,推动了人工智能领域的研究和发展,促使人们深入思考智能的本质和机器的智能边界等问题。它让人们能够通过一种相对客观的方式来评估机器的智能水平,虽然图灵测试并非完美,但它在人工智能发展的历史上具有重要的里程碑意义。 - 16. 机器人的运作原理
机器人通过传感器感知外部环境信息,将这些信息传输给控制器,控制器根据预设的程序和算法对信息进行处理和分析,然后发出指令控制执行机构(如电机、机械臂等)进行动作,实现各种任务和行为。例如,机器人的视觉传感器可以获取周围环境的图像信息,通过控制器中的图像识别算法对图像进行分析,判断出物体的位置和形状,然后控制机械臂去抓取物体。
第十四章
- 17. 模型和构造模型是否相同
模型是对现实世界中事物、系统等的抽象表示或简化描述,用于理解、分析和预测等,比如一个城市的交通流量模型,可以帮助人们了解交通状况并进行预测;构造模型是创建模型的过程,包括选择合适的方法、收集和处理数据、确定模型结构等。两者不同,模型是结果,构造模型是获得结果的过程,构造模型是为了得到能够准确反映现实情况的模型。
第十五章
- 18. 网络不同类型的各自作用
- 局域网(LAN)用于小范围内设备的互联,如办公室、家庭等,方便设备间快速通信和资源共享,例如在办公室局域网中,员工可以共享文件、打印机等资源。
- 广域网(WAN)覆盖范围广,用于远距离的网络连接,实现不同地区网络的互联,如互联网就是一个巨大的广域网,使得全球各地的用户可以进行信息交流和资源共享。
- 无线网络提供了便捷的移动接入方式,使用户可在一定范围内自由移动并保持网络连接,比如人们可以使用手机通过Wi-Fi或移动网络在不同地点访问网络资源。
- 物联网网络用于连接各种物联网设备,实现设备间的通信和数据交互,例如智能家居系统中,各种智能设备通过物联网网络相互连接,实现智能化的控制和管理。
第十六章
- 19. 搜索引擎的工作原理
搜索引擎首先通过网络爬虫抓取网页信息,将抓取到的网页数据存储到索引数据库中,然后对网页内容进行分析和索引,建立关键词与网页的对应关系。当用户输入搜索关键词时,搜索引擎在索引数据库中查找相关网页,并根据一定的算法对搜索结果进行排序,将最相关的网页展示给用户。例如,当用户在搜索引擎中输入“人工智能”时,搜索引擎会在索引数据库中找到与“人工智能”相关的网页,并按照相关性和其他因素对这些网页进行排序,然后将排序后的结果呈现给用户。
第十七章
- 20. 信息安全的重要意义
信息安全关乎个人的隐私保护,防止个人信息泄露导致的身份盗窃、诈骗等问题;对于企业而言,信息安全关系到商业机密的保护、业务的正常运营和企业的声誉,如企业的客户数据泄露可能会导致客户流失和法律纠纷;在国家层面,信息安全涉及到国家安全、社会稳定等,如关键基础设施的信息系统被攻击可能会影响国家的正常运转。 - 21. 密码的种类
密码种类繁多,常见的有对称加密密码,如AES(高级加密标准)等,加密和解密使用相同的密钥,加密效率高,但密钥管理困难;非对称加密密码,如RSA等,使用公钥和私钥进行加密和解密,安全性高,便于密钥管理,但加密和解密速度较慢;哈希密码,如MD5、SHA - 256等,主要用于数据完整性验证和用户身份认证等,将数据转换为固定长度的哈希值,无法通过哈希值还原原始数据。
第十八章
- 22. 计算的限制能否解除
从理论和技术发展的角度来看,计算的限制在一定程度上是可以被突破的。随着硬件技术的不断进步,如芯片制造工艺的提升、新型计算材料的研发等,计算机的性能在不断提高,能够处理更复杂的任务和更大规模的数据。软件算法的创新也可以提高计算效率,突破一些原有的计算限制。然而,从根本上来说,计算的限制可能无法完全解除,因为存在一些物理和逻辑上的固有约束,如量子力学的限制、哥德尔不完备定理等,这些限制从理论上限制了计算的能力和范围。
课程收获与不足
收获:对于计算机系统有了认识,自己的C语言编程能力得到提高,会解决一些计算机程序的问题,也对各种网络工具有了认识和利用。
不足:没有花太多时间投入C语言学习之中,自己的编程能力只是初级水平,对于计算机各种算法也没有太熟练,还是要多练。
给开学初的你和学弟学妹们的学习建议
1、去花时间投入计算机学习之中,不要大把浪费时间在没有意义的事情上,时间就是金钱,效率就是生命。
2、不要觉得计算机学起来是乏然无味的,要理解掌握就要强迫自己去接受。
3、积累,计算机学习不是一蹴而就的,每天都要多练。
4、复习、预习的工作要做好。
问卷调查
你平均每周投入到本课程多长时间?18h
每周的学习效率有提高吗?有
学习效果自己满意吗?一般
课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)可能不会了,未来会更忙,但我尽量。
你觉得这门课老师应该继续做哪一件事情?重视博客学习
你觉得这门课老师应该停止做哪一件事情?平台上的资源,没必要放在一个平台上,没有人看,直接发到学习群里。
你觉得这门课老师应该开始做什么新的事情?发现更多帮助学生学习的工具。