跳转至

计算机软件技术基础

课程学习内容

<课程学习内容>

任课教师

<授课方式(如是否双语、板书/PPT/其他)、授课水平、给分情况等>

<授课方式(如是否双语、板书/PPT/其他)、授课水平、给分情况等>

分数构成

<分数构成,可具体介绍各部分,如作业情况、实验内容及形式、考试范围及形式等>

<分数构成,可具体介绍各部分,如作业情况、实验内容及形式、考试范围及形式等>

课程笔记

<添加课程笔记PDF文件,格式如下:>

Markdown
1
2
3
4
5
* **年级 姓名/昵称** 

<iframe src="PDF文件链接" width="100%" height="600px" style="border: none;">
This browser does not support PDFs
</iframe>

<添加课程笔记zip文件,格式如下:>

HTML
1
2
3
4
5
6
7
8
<div class="card file-block" markdown="1">
<div class="file-icon"><img src="/assets/images/zip.svg" style="height: 3em;"></div>
<div class="file-body">
<div class="file-title">课程笔记</div>
<div class="file-meta"></div>
</div>
<a class="down-button" target="_blank" href="zip文件链接" markdown="1">:fontawesome-solid-download: 下载</a>
</div>
<添加课程笔记xmind文件,格式如下:>
HTML
1
2
3
4
5
6
7
8
<div class="card file-block" markdown="1">
<div class="file-icon"><img src="/assets/images/xmind.svg" style="height: 3em;"></div>
<div class="file-body">
<div class="file-title">课程笔记</div>
<div class="file-meta"></div>
</div>
<a class="down-button" target="_blank" href="xmind文件链接" markdown="1">:fontawesome-solid-download: 下载</a>
</div>

课程经验分享

课程内容简介

《计算机软件技术基础》这门短学期课程面向电院学子,较计算机学院长学期课程《数据结构》有所简化,不过大致内容一致,另外增设了软件设计流程等的大致介绍。

此课程难度不大,前置课程只需要C语言即可,掌握相关内容对我们以后进行嵌入式开发等很有帮助。

学习方法

这是一门动手实践的课程,所以对于具体的某种数据结构,大家千万不要采取背代码的学习方法。强烈推荐刷leetcode网站《数据结构》相关题目,像链表、树等经典题目其提供多种解法,可以帮助我们快速入门提高,每种数据结构刷十道题目就差不多了。

另外,考虑最终考试是纸面考试而非上机,我们需要懂得算法相应的数学原理和求解思路,一般只需要掌握算法的步骤流程即可,想要提高的同学可以参考《运筹学》课程相关内容。

考核内容

四次上机实验作业+调研报告+期末纸面考试

上机作业即针对某种数据结构的具体实现,较为简单。

调研报告是探究课程知识点在国家建设、战略、民生等方面的应用,调研可作课堂展示有额外加分。

期末纸面考试题型以理论知识+算法推导为主,理论知识重点在于软件设计流程等相关考察,算法考察主要是通过手算对某问题求解,可以视作《运筹学》中的数学题,如手算最优路径等。

课程内容简介

计算机软件技术基础主要学习数据结构相关内容,并对软件工程的相关概念做基本的介绍。相较于其他的数据结构课程,其内容相对基础,重点在于学习理解。因此,只要平时能够认真学习课程内容,应对考试还是比较容易的。

学习方法

平时学习的时候最好深入理解各类数据结构的特点,掌握其基本操作的实现方法,并着重学习各种算法的思路与实现。

数据结构最为关键的便是上手写程序,课后作业一般只涉及基本操作的实现,难度不大,大部分课上内容的复现,但一定要亲自去写一遍,确保自己能够理解并编写程序,而不是只停留在概念方面。

复习的时候着重复习各类算法的思路以及运行过程,例如Dijkstra算法的运行情况,以及过程中变量的值。另外,软件工程方面,考前记忆一下概念即可。

考核内容

考试重点考核数据结构的内容,软件工程方面有10分左右的选填题。选填题、判断题占比较小,重点在后面的综合题和算法题。

小题方面主要考察概念的理解和一些简单的计算,难度不大。综合题考察各类算法和哈夫曼树等应用的理解与实现,不涉及代码的编写。算法题的形式有代码纠错与代码编写,代码编写相对基础,代码纠错题要求理解各算法的每一步的意义与代码实现,但都是课上讲过的,因此,整体而言,考试内容比较贴近日常的学习,平时认真学足以在考试中取得不错的成绩。

课程内容简介

《计算机软件技术基础》主要介绍了算法的时间复杂度分析,线性表、链表、栈、队列、树、图等基础数据结构,基于这些数据结构的基本算法(如最小生成树、Huffman树、最短路、排序算法等)以及软件工程方面的知识。如果学习目标是在考试中拿到一个不错的分数,那么总体难度并不大;如果希望将来从事软件开发或算法这方面的工作,那么除了上课时讲的基本知识以外,还需要加强对实际问题的分析能力与数据结构的融会贯通、灵活使用,难度会相当大。

学习方法

在学习数据结构的原理与基本操作时,切忌强行背代码。数据结构并不是抽象的,它们的结构是可以形象地绘制出来的。因此,要注意各种数据结构的特点,对于各种操作可以先在纸上画一画,看看究竟哪些地方发生了变化,然后再结合代码,了解每一条语句的作用、每个操作的具体过程,最后在理解的基础上记忆。在水平达到一定程度后,也不必拘泥于记忆,可以自己确定每个操作的具体过程,并转换成代码。

在学习算法时,要注意算法的主要原理,比如Kruskal的原理是将边按照边权从小到大加入生成树中,并且保证加入后不会产生环;快速排序的原理是选中一个基准,将比基准小的放在一边,比基准大的放在另一边,然后递归进行……在了解原理的基础上进一步理解算法每一步的过程与代码,最后加以记忆。否则,一是记忆容易出错,二是不利于对算法进行灵活运用。

对于考试,主要题型与理论作业比较类似,因此要注意平时的理论作业。各种数据结构的基本概念、算法的运行过程是重点,因此一定要理解、掌握。此外,考试中会有10分左右的软件工程知识,主要是判断与填空,考前一定要背。在2022~2023学年秋学期的考试中还有一题代码改错(快速排序)、一题手写数据结构的某个操作(求链表长度),因此也要注意一下代码实现。

总体来说,《计算机软件技术基础》这门课由于考查内容几乎与平时上课讲到的内容一模一样,不会涉及各种灵活应用,因此只要认真理解了各种数据结构与算法的原理、代码,要获得一个不错的分数并不难。祝大家可以在这门课中获得优异的成绩。

考核内容

考核内容分为平时作业、思政作业和期末考试(闭卷)三个部分。平时作业有理论作业和上机作业两种,理论作业内容比较贴近考试,主要考查对算法的理解;上机作业要求使用程序设计语言实现算法与数据结构。思政作业一般是调研与本课程相关的内容在实际生活中的应用。

CC98汇总(可选)

<可选:如果有相关的CC98论坛讨论帖,可以在这里添加链接> * [相关CC98帖子标题](CC98链接地址)