20231326《计算机基础与程序设计》课程总结

发布时间 2024-01-07 20:21:28作者: GisliW

20231326《计算机基础与程序设计》课程总结

每周作业链接汇总

第一周作业

通读教材《计算机科学概论》,提出问题,通过查阅资料、询问GPT尝试解决问题。
image

第二周作业

学习并区分了计算系统、计算机、操作系统等的概念,学会了linux环境下使用GCC编译c语言文件。
image

第三周作业

学习了十进制、二进制、八进制、十六进制,学会了进制之间数的相互转化。
image

第四周作业

学习了逻辑门电路,以及逻辑表达式;学会了冯诺依曼体系的构造和其他一些计算机部件。
image

第五周作业

学习了PEP/9机器语言和汇编语言,学会了C语言中printf(),scanf()两个函数的格式化
image

第六周作业

学习了数组、栈等数据结构,学会了排序的算法,并且在C语言中实现了这些算法,学习了函数的迭代和递归。学会了C语言的控制结构if和switch。
image

第七周作业

学习了四种抽象数据结构:栈、队列、图、树,学会了二叉树三种遍历方式、图的两种遍历方式;学会了循环结构for和while。
image

第八周作业

学习了面向对象的设计,了解了高级程序设计语言是如何编译、转化成机器语言,进而转换为二进制文件并由计算机执行;学习了程序设计的模块化设计和函数的相关内容。
image

第九周作业

学习了操作系统的作用,以及系统中的进程管理、内存管理、CPU调度的方法,学会了C语言之中的数组的定义与使用。
image

第十周作业

学习了信息系统,数据的管理,接触了人工智以及目前人工智能的应用,基于计算机的建模、图形学和计算机游戏;学习了C语言之中的指针以及指针数组、数组指针、寻址方法。
image

第十一周作业

学习计算机的网络结构、网络协议TCP/IP、网络地址IP和域名解析服务器DNS,学习web服务器、开发前端设计语言HTML、CSS以及交互式的程序脚本插件;学会了C语言中的字符串的使用、存放以及输入输出,字符串的比较、长度计算、比较、拼接等处理。
image

第十二周作业

学习了C语言中的数组与指针、字符串与数组、字符串与指针、函数与指针,学会了数组的动态内存分配。
image

第十三周作业

学习了C语言之中的结构体、联合体的使用,了解了C语言之中的单向链表,并用C语言实现。
image

第十四周作业

学习了C语言之中的文件和文件的相关操作:打开文件、写入文件,理解了打开文件的实际过程。
image

整体评价一下第1周作业中自己提出的问题是不是抓住了学习重点

我认为第一周提出的问题还是不够,在学习之中我解决了第一周的问题,又同时产生新的问题。

回答一下第1周作业中自己提出的问题

第一章

计算软件从第一代更迭到第五代,逻辑层次更多了,结构更复杂了,那对于计算机普及化、编程大众化的社会发展趋势,未来软件是该更复杂,还是迎合潮流向简化发展呢?是否有两全之计,可以不更改软件功能的同时,做到简化呢?

目前的趋势是朝着简化和易用性方向发展,以满足更广泛的用户需求。软件开发者可能会更注重设计直观、用户友好的界面,使得普通用户无需深入了解复杂的逻辑和结构就能使用软件。开发者应提供更多的低代码或无代码开发工具,使非专业程序员也能参与软件开发,从而促进编程大众化。构建更模块化的软件架构,使得软件更容易维护和扩展,同时保持其功能不受影响。

第二章

众所周知,现在主流计算机处理信息都是二进制下通过半加器、全加器等处理的,那么在全球能源问题的前提下为什么不开发更节能的三进制计算机呢?
开发节能的三进制计算机并非不可能,但目前主流计算机采用二进制系统的原因有以下几点:

  • 二进制计算机历史悠久且成熟:二进制计算机已经在过去几十年中得到广泛应用和发展,形成了庞大的生态系统和软硬件基础。这使得二进制计算机具有高度的稳定性、可靠性和兼容性,以及庞大的软件和算法库。与之相比,三进制计算机在这些方面相对较为薄弱。
  • 二进制计算机的逻辑设计简单:二进制计算机的逻辑设计相对简单,易于实现和优化。相比之下,三进制计算机的逻辑设计更为复杂,需要更多的硬件资源和开发工作,这可能会导致成本的增加。
  • 二进制计算机的软件生态系统成熟:二进制计算机已经积累了大量的软件和算法库,这些资源对于各行各业的应用和开发者来说至关重要。如果转向三进制计算机,需要重新开发和迁移现有的软件和算法,这将需要巨大的投资和时间。
  • 三进制计算机的能效优势有限:尽管三进制计算机在理论上可以提供一定的能效优势,但实际上这种优势可能并不明显。现代二进制计算机已经在能效方面进行了大量的优化和改进,例如引入了低功耗处理器、节能模式等技术。因此,三进制计算机相对于二进制计算机的能效优势可能并不足以抵消其在其他方面的劣势。
  • 综上所述,虽然开发节能的三进制计算机在理论上可能是可行的,但目前主流计算机采用二进制系统的历史、稳定性、成熟的软硬件生态系统以及现有的能效优化等因素,使得二进制计算机仍然是主流选择。

第三章

模拟信号与数字信号相互转化时势必会丢掉某些数据,即失真,我们现在用什么压缩编码技术尽可能减少失真呢?以音频为例

在音频领域,常用的压缩编码技术有无损压缩和有损压缩。
无损压缩技术通过压缩音频数据,但不引入任何失真。其中一种常见的无损压缩格式是FLAC(Free Lossless Audio Codec)。FLAC可以将音频数据压缩为较小的文件大小,但在解压缩后能够完全还原原始音频质量,不会有任何失真。
而有损压缩技术则在压缩过程中引入一定的失真,但通过优化算法,尽可能减少对人耳听觉的影响。其中最常见的有损压缩格式是MP3(MPEG-1 Audio Layer 3)。MP3通过删除音频中的听觉冗余信息,如无法被人耳察觉的高频信号,以及通过数据压缩算法减少文件大小。虽然MP3会引入一定的失真,但通常可以在人耳难以察觉的程度内保持较高的音质。
除了MP3,还有其他一些有损压缩格式,如AAC(Advanced Audio Coding)、WMA(Windows Media Audio)等。这些格式都通过不同的压缩算法和参数设置来尽可能减少失真,并在一定程度上平衡音质和文件大小。
综上所述,无损压缩和有损压缩是常用的音频压缩编码技术,它们在尽可能减少失真的同时,实现了音频文件的压缩和传输。选择使用哪种压缩编码技术取决于具体的应用需求和对音质和文件大小的权衡。

第四章

本章讲到了门电路,集成,CPU,那么按照摩尔定律,现在芯片工艺越来越接近1nm,我们如何继续发展呢、满足更高的算力需求呢?

随着芯片工艺不断接近摩尔定律的极限,确实提出了一些挑战,但也涌现出一些创新的发展方向,以满足不断增长的算力需求。例如:三维芯片技术传统的芯片是在平面上制造的,而三维芯片技术允许在垂直方向上堆叠多个层次,从而增加了芯片的密度,提高了算力;量子计算量子计算作为一种新兴的计算模型,有望在某些特定任务上实现远远超越传统计算机的性能。虽然目前还处于研究阶段,但量子计算有望在未来成为高度算力密集型任务的解决方案。神经元计算受到人脑结构的启发,研究新的计算模型,如神经元计算,以实现更高效的并行计算。

第五章

神经网络算法和并行计算有什么区别?

神经网络算法模拟了人脑神经元之间的连接,通过学习大量数据来进行模式识别和决策。并行计算是一种计算模式,旨在通过同时执行多个计算任务来提高计算效率。在神经网络的上下文中,可以将并行计算用于加速神经网络的训练过程。训练神经网络涉及大量的矩阵和向量运算,这些运算可以通过并行计算在多个处理单元上同时进行,以提高训练速度。例如,使用图形处理单元(GPU)进行并行计算可以显著加速神经网络的训练过程。

第六章

习惯直接将算法表达成高级程序语言的我们,是否还有学习伪代码的必要?

学习伪代码仍然是一个有价值的实践,尽管大多数人在日常编程中更多地使用高级程序语言。伪代码是一种抽象的、自然语言风格的算法描述方式,它不依赖于具体的编程语言语法,更注重算法逻辑和结构。

第七章

使用递归算法时会不会有陷入死循环造成宕机的风险?

递归本身不会直接导致宕机,但是递归算法在设计和实现时确实存在陷入死循环的风险,这可能导致程序宕机或堆栈溢出。常见宕机的情况有:缺少终止条件、终止条件不满足、递归深度太大,栈大小不足。

第八章

各种搜图的算法是根据图的哪些信息检索的?

各种搜图的算法是根据图的特征信息进行检索的。这些特征信息可以包括图像的颜色、纹理、形状、边缘等。搜图算法会对输入的查询图像提取相应的特征,并与数据库中的图像进行比较和匹配。通过计算相似度或距离度量,算法可以确定与查询图像最相似的图像或图像集合。常见的搜图算法包括基于直方图的颜色匹配、基于尺度不变特征变换(SIFT)的局部特征匹配、基于卷积神经网络(CNN)的深度学习特征匹配等。这些算法通过分析和比较图像的特征信息,实现了图像的快速检索和匹配。

第九章

本章讲解了各种高级程序设计语言通过解释器解释成机器识别的语言,那HTML语言又是通过什么被机器识别的呢?

HTML语言不需要通过解释器解释成机器识别的语言,因为HTML是一种标记语言,不是一种编程语言。HTML文档中包含了标签、属性和内容等元素,这些元素可以被浏览器解析和渲染成可视化的网页。浏览器会读取HTML文档,并根据其中的标签和属性来确定网页的结构和样式。因此,HTML语言不需要被解释器解释成机器识别的语言,而是直接被浏览器解析和渲染。

第十章

操作系统的启动需要分区引导,那是什么程序使用引导区呢?

操作系统的启动需要分区引导,使用引导区的程序是主引导程序(Master Boot Program,MBP)或引导加载程序(Boot Loader)。主引导程序位于引导区(通常是硬盘的第一个扇区),它负责加载操作系统的核心部分或引导加载程序。引导加载程序则负责加载操作系统的其他组件和模块,最终完成整个操作系统的启动过程。因此,主引导程序或引导加载程序使用引导区来控制操作系统的启动。

第十一章

文件扩展名和文件有必然联系吗?

文件扩展名通常与文件的内容或用途有关,但并没有绝对的必然联系。文件扩展名是文件名的一部分,通常位于文件名的最后,以点号分隔。它是用来标识文件类型或格式的一种常见方式。实际上,用户可以更改文件的扩展名,而不影响文件的内容。因此,不能仅仅依赖文件扩展名来确定文件类型,特别是在安全性和可靠性方面。一些文件可能没有扩展名,或者扩展名并不反映文件的真实内容。在某些情况下,文件类型可能需要通过其他手段来确定,例如文件的魔术数字(Magic Number)或文件头部信息。

第十二章

数据库管理模型的优势在哪?

数据库管理模型(DBMS)具有多个优势,这些优势使其成为有效管理和组织数据的工具。DBMS允许数据以表格的形式进行组织和结构化,使得数据更容易理解、管理和维护。表格中的行和列提供了一种直观的方式来表示和存储数据。DBMS支持多用户同时访问数据,允许多个应用程序和用户在同一时间访问和共享数据,而不会导致数据冲突或混乱。 DBMS提供了强大的查询语言(如SQL),使用户能够轻松地执行复杂的数据查询和分析操作。这有助于从大规模数据集中提取有用的信息。

第十三章

人工智能至今没有通过图林测试,主要是为什么?人工智能是否应该出现低级自我思维?

图灵测试旨在评估机器是否能够表现出与人类相似的智能,但目前尚未有人工智能系统能够通过这一测试。这是因为图灵测试要求机器在各种自然语言交互场景中表现得足够像人类,包括理解自然语言、推理、学习和灵活地应对各种问题。人工智能在某些方面仍然受到限制:理解语境、常识推理、灵活性和创造力。
一些研究者和专业人士主张在人工智能系统中实现一些低程度的自我思维,以使其更具适应性和智能。这包括对环境的适应性、学习能力和自主决策等方面的功能。

第十四章

常常说游戏、建模、绘图等对计算机显卡GPU的要求较大,那么GPU主要处理什么数据?

GPU(图形处理单元)主要用于处理图形相关的任务,因此其设计和优化针对图形和图像处理。 GPU 的主要任务之一是进行图形渲染,将虚拟场景中的三维模型转换为二维图像。这包括透视变换、光照计算、纹理映射等操作。 GPU 专注于图像处理,包括图像过滤、色彩校正、边缘检测、图像合成等。这些操作在游戏、图像编辑和计算机视觉等领域中广泛应用。 在游戏和动画制作中,GPU 被用于实现物理模拟,例如粒子系统、流体动力学等。

但有一点是,GPU不是计算机的必要部件。

第十五章

从IPv4到IPv6,除可接入设备变多外,还有什么巨大的变化?

  • 地址空间: 最明显的变化是IPv6的地址长度更长,从128位扩展到了IPv4的32位。这大大增加了可用的地址数量,从而解决了IPv4地址枯竭的问题。

  • 地址表示: IPv6地址使用冒号分隔的八个16位字段表示,更为简洁和易读,相较于IPv4的点分十进制表示法更为直观。

  • 地址配置: IPv6引入了新的地址配置机制,其中包括自动地址配置(SLAAC)和动态主机配置协议(DHCPv6)。这些机制简化了设备的地址配置过程。

  • 改进的网络层协议: IPv6引入了一些改进的网络层协议,如邻居发现协议(NDP)和更灵活的报文头部,提高了网络层的性能和功能。

第十六章

XML文件是怎么做到“万能转换”成其他文件的?是否有技术,可以将有效信息存在XML中,以特定方式转换才得到信件,而其他方式都得不到消息?

XML(可扩展标记语言)是一种用于表示和传输结构化数据的标记语言。虽然XML本身并没有“万能转换”的特性,但它的灵活性和通用性使得可以通过各种技术将XML文件转换成其他格式。 XML数据以树状结构组织,可以很容易地映射到其他数据模型。

可以通过定义XML Schema或DTD来规范XML文档的结构,并使用相应的转换技术(如XSLT)进行目标格式的映射。通过限制XML文档的结构和使用合适的工具,可以确保只有按照规定的方式进行转换时才能获取有效信息。

第十七章

目前为止比较常见的计算机攻击方式有哪些?

恶意软件:

  • 病毒(Viruses): 感染和传播到其他文件,可能破坏文件或系统。
  • 蠕虫(Worms): 自我复制,并通过网络传播到其他系统。
  • 木马(Trojans): 伪装成有用程序,实际上包含恶意功能。

网络攻击:

  • 拒绝服务攻击(DDoS): 通过超载目标系统或网络,使其无法正常提供服务。
  • 中间人攻击: 攻击者截取通信并可能篡改或窃取数据。
  • 网络嗅探: 监听网络流量,以窃取敏感信息。

身份验证攻击:

  • 密码破解: 尝试获取用户密码,通常使用暴力破解或字典攻击。
  • 钓鱼(Phishing): 通过伪装成可信实体来诱骗用户提供敏感信息。

社会工程:

  • 欺诈: 利用社交技巧欺骗用户,获取机密信息。
  • 假冒身份: 冒充他人身份以获取访问权限或敏感信息。

操作系统漏洞利用:

  • 零日漏洞攻击: 利用尚未被修补的系统漏洞。
  • 恶意软件利用漏洞: 利用系统或应用程序中已知的漏洞。
  • 缓冲区攻击取得root权限

Web应用程序攻击:

  • SQL注入: 利用不安全的SQL查询,以获取或篡改数据库中的信息。
  • 跨站脚本(XSS): 在网页上注入恶意脚本,以获取用户信息或执行操作。

第十八章

现阶段哪些技术是人类可以设想的但是由于计算机的限制而无法实现的?

大数据结构、大人工智能、气象模型、生命科学模拟、完全虚拟现实、交互现实、增强现实、混合现实与元宇宙、量子通讯等等

你有什么项目被加分,谈谈你的经验

作业:
第十二周作业
image

第十一周作业
image

自主学习:
双系统的部署
image

mermaid绘图
image

课程收获与不足

收获:
通过这个课程,我学习到了许多计算机基础的知识,拓展了我的思维,也为我之后学习专业知识、学习其他编程语言打下了思维基础。

不足:
在课程进行时,我总是缺乏实践操作,会出现有思维但是没思路、不会操作的问题。

给开学初的你和学弟学妹们的学习建议

总而言之,这门课对我们是比较重要的基础课程,它引导我们的思维更靠向计算机的方式,更有逻辑性。

问卷调查

  • 你平均每周投入到本课程多长时间?
    19h-20h左右
  • 每周的学习效率有提高吗?
    有,但不多
  • 学习效果自己满意吗?
    不是很满意,实践还欠缺

总结的链接和二维码

https://www.cnblogs.com/gisliw/p/17950268