# 2023-2024-1 20231408《计算机基础与程序设计》第二周学习总结

作业信息

这个作业属于哪个课程 <2023-2024-1-计算机基础与程序设计>
这个作业要求在哪里 <2023-2024-1计算机基础与程序设计第二周作业>
这个作业的目标 <熟练掌握《计算机科学概论》第一章,熟悉《C语言程序设计》第一章>
作业正文 https://www.cnblogs.com/jfxyh061028/p/17747847.html

教材学习内容总结

  1. 了解了计算机与计算系统的关系,即计算机是一种设备,是计算系统的硬件部分的一部分,而计算系统是一种动态实体,不仅是动态的,还可视地占有物理空间

  2. 计算系统可理解成洋葱的结构,它分为很多层,其中核心是它管理的信息,当然,这只是一种分层方式,课本就隐晦的提到了另一种,还有更多种。

  3. 一个心理模型——抽象,对计算系统进行分层也正是用到了抽象的思想。

  4. 信息隐藏。它源于抽象,本质上与抽象是同一种思想。

  5. 计算机硬件和软件的历史。注意计算机用户程序员这两个概念先重合后不完全相同的变化过程。

  6. 从业时应该具备的四个技巧:算法思想,表示法,程序设计,设计

  7. 学编程的意义:具备计算思维。学编程到底是要学什么:领会语法背后的计算思维。
    如今的时代是信息时代,人工智能更是带来了不小的变化,

如果我们能主导,参与,适应这些变化,那么就能更好的利用这些变化。

在这个过程中需要具备一种思维能力——计算思维
8. 什么是编程,什么时候编程,步骤有哪些。
9. 一切都是计算
10.多实验。

教材学习中的问题和解决过程

  • 问题1:我看了这一段文字

计算系统由硬件、软件和它们管理的数据构成。

有这个问题
根据课本上的图1-1,这两种分类分别依据什么,若让我分类,我是按照哪种都行吗?
我查了资料,有这些说法

在第1章中,我们介绍了硬件和软件的历史,并且用洋葱的结构来类比计算机系统的结构。计算机和它的机器语言构成了洋葱的芯,软件层和更复杂的硬件一层层地裹住了这个芯。首先介绍的是机器语言,然后是高级语言,包括FORTRAN、Lisp、Pascal、C、C++和Java。在介绍这些语言的同时,还介绍了利用它们进行程序设计的过程,包括自顶向下的设计和面向对象的设计。我们对抽象数据类型所扮演的角色及其实现的理解已经成熟了。操作系统及其资源管理技术(包括更大、更快的二级存储介质上的文件)包围着这些程序,并对它们进行管理。
接下来的一层由更复杂的通用或专用软件系统构成,它们覆盖了操作系统。这些功能强大的程序由计算机科学中的并行理论支持。最后一层由网络和网络软件构成,网络软件包括计算机之间通信必需的所有工具。Internet和万维网给这一层画上了最后一笔。
当这些层随着时间的推移逐渐出现时,用户对计算机系统的硬件接触得越来越少。每个层都是它下面的计算机系统的抽象。随着每个层的发展,新层的用户和内部层的用户联合起来,在经济领域的高科技部门创造了大量的生产力。本书的目的是提供各个层的概述,介绍基本的硬件和软件技术,使学生了解和欣赏计算系统的方方面面。

根据我的实践,我得到这些经验计算系统怎么分类都行,这个问题并不重要。但是我还是不太懂,我的困惑是如果让我讲解一下计算系统的组成,我按哪个说呢?课本写的是不是有点冗余?毕竟它后面都按分层结构讲了,前一种分类根本没提到。

  • 问题2:我看了这一段文字

程序设计层负责处理软件,用于实现计算的指令以及管理数据。……程序设计……目的……即解决问题……而应用层的重点则是用计算机解决真实世界的问题。

有这些问题软件是为了解决现成程序解决不了的问题才开发出来的,应用层的重点也是解决现实世界的各种问题,那么程序设计层和应用层在哪些方面有区别?
软件和程序是什么关系?
我查了资料,有这些说法

  • 功能和目标:程序设计层主要关注软件的设计和开发,注重实现算法、数据结构和程序逻辑等方面。它的目标是创建高效、可维护和可扩展的软件系统。应用层则更关注实际应用场景和用户需求,注重功能的实现和用户体验。它的目标是为用户提供具体的功能和服务。
  • 抽象级别:程序设计层位于更底层的抽象级别,它需要考虑底层的数据结构、算法和编程语言等技术细节。应用层则位于更高层的抽象级别,它更关注业务逻辑和用户交互等方面。
  • 范围和复杂度:程序设计层通常涉及整个软件系统的设计和实现,包括多个模块和组件的协作。它需要考虑系统的整体架构和各个组件之间的交互。应用层则更专注于具体的应用场景,可能只涉及系统的某个特定功能或模块。
  • 技术要求:程序设计层需要具备深厚的编程和软件工程知识,熟悉各种编程语言和开发工具。它需要关注性能优化、代码质量和系统的可维护性等方面。应用层对技术要求相对较低,更注重对业务需求的理解和功能的实现。
    总的来说,程序设计层更注重软件的底层实现和技术细节,而应用层更注重功能的实现和用户体验。两者相互关联,共同构成一个完整的软件系统。

软件和程序是密切相关的概念,可以说程序是构成软件的基本单元。
程序是一组计算机指令的有序集合,它由程序员使用编程语言编写而成。程序通过计算机的中央处理器(CPU)执行,以实现特定的功能和任务。程序可以包括算法、数据结构、逻辑判断等,用于指导计算机按照特定的步骤和规则进行操作。
软件是由一个或多个程序组成的集合,它是在特定的操作系统或平台上运行的。软件可以包括操作系统、应用程序、库文件、驱动程序等。软件通过程序的执行来实现各种功能和服务,为用户提供各种应用和工具。
简而言之,程序是软件的组成部分,而软件是由程序构成的。程序是实现软件功能的具体指令,而软件是程序的集合,通过执行程序来提供各种功能和服务。

根据我的实践,我得到这些经验
虽然两个层都能解决现实世界的问题,但是它们解决的方式不同。
软件是由一个或多个程序组成的集合。

  • 问题3:我看了这一段文字

即使是现在,如果需要高效代码,还是会使用汇编语言编写程序……高级语言大的出现为在多台计算机上运行同一个程序提供工具。每种高级语言都有配套的翻译程序,这种程序可以把高级语言编写的语句翻译成等价的机器码指令。

有这个问题它的意思是翻译程序能把高级语言直接翻译成机器语言吗?汇编语言到底为何会更高效?高级语言为什么不能被次次都直接翻译为机器语言直接使用?
我查了资料,有这些说法

机器语言:执行效率高,速度快;
汇编语言:编程效率不高,属低级语言;
高级语言:执行效率不及机器语言,但编程效率高于汇编语言。
汇编语言写的程序之所以比高级语言快,是因为高级语言为了维护语言特性而不得以去做一些与逻辑无直接关系的操作,例如C++。但是如果你想用汇编语言去维护一整套面向对象机制的话,那么除非你对汇编语言比较精通,否则你直接用汇编语言写出来的程序大概率比不上直接用C++写出来的程序效率高。
高级语言书写简单,同样的高级语言语句可以有不同的机器语言实现方法。因此同一段高级语言经过不同的编译器编译之后会得到不同的目标程序。

根据我的实践,我得到这些经验
**汇编语言由于更贴近计算机硬件,执行效率更高。但高级语言编程效率更高,实际采取哪种语言需要平衡好各种因素再做决定。

基于AI的学习






学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时 优秀
第一周 2/3 20/20 合格
第二周 20/20 1/4 15/35 终于理解了一些概念,能看懂一些话了

参考资料

posted @ 2023-10-08 01:15  20231408徐钰涵  阅读(16)  评论(1编辑  收藏  举报