计算机软件技术基础
课程学习内容
<课程学习内容>
任课教师
<授课方式(如是否双语、板书/PPT/其他)、授课水平、给分情况等>
<授课方式(如是否双语、板书/PPT/其他)、授课水平、给分情况等>
分数构成
<分数构成,可具体介绍各部分,如作业情况、实验内容及形式、考试范围及形式等>
<分数构成,可具体介绍各部分,如作业情况、实验内容及形式、考试范围及形式等>
课程笔记
<添加课程笔记PDF文件,格式如下:>
| Markdown | |
|---|---|
<添加课程笔记zip文件,格式如下:>
课程经验分享
课程内容简介
《计算机软件技术基础》这门短学期课程面向电院学子,较计算机学院长学期课程《数据结构》有所简化,不过大致内容一致,另外增设了软件设计流程等的大致介绍。
此课程难度不大,前置课程只需要C语言即可,掌握相关内容对我们以后进行嵌入式开发等很有帮助。
学习方法
这是一门动手实践的课程,所以对于具体的某种数据结构,大家千万不要采取背代码的学习方法。强烈推荐刷leetcode网站《数据结构》相关题目,像链表、树等经典题目其提供多种解法,可以帮助我们快速入门提高,每种数据结构刷十道题目就差不多了。
另外,考虑最终考试是纸面考试而非上机,我们需要懂得算法相应的数学原理和求解思路,一般只需要掌握算法的步骤流程即可,想要提高的同学可以参考《运筹学》课程相关内容。
考核内容
四次上机实验作业+调研报告+期末纸面考试
上机作业即针对某种数据结构的具体实现,较为简单。
调研报告是探究课程知识点在国家建设、战略、民生等方面的应用,调研可作课堂展示有额外加分。
期末纸面考试题型以理论知识+算法推导为主,理论知识重点在于软件设计流程等相关考察,算法考察主要是通过手算对某问题求解,可以视作《运筹学》中的数学题,如手算最优路径等。
课程内容简介
计算机软件技术基础主要学习数据结构相关内容,并对软件工程的相关概念做基本的介绍。相较于其他的数据结构课程,其内容相对基础,重点在于学习理解。因此,只要平时能够认真学习课程内容,应对考试还是比较容易的。
学习方法
平时学习的时候最好深入理解各类数据结构的特点,掌握其基本操作的实现方法,并着重学习各种算法的思路与实现。
数据结构最为关键的便是上手写程序,课后作业一般只涉及基本操作的实现,难度不大,大部分课上内容的复现,但一定要亲自去写一遍,确保自己能够理解并编写程序,而不是只停留在概念方面。
复习的时候着重复习各类算法的思路以及运行过程,例如Dijkstra算法的运行情况,以及过程中变量的值。另外,软件工程方面,考前记忆一下概念即可。
考核内容
考试重点考核数据结构的内容,软件工程方面有10分左右的选填题。选填题、判断题占比较小,重点在后面的综合题和算法题。
小题方面主要考察概念的理解和一些简单的计算,难度不大。综合题考察各类算法和哈夫曼树等应用的理解与实现,不涉及代码的编写。算法题的形式有代码纠错与代码编写,代码编写相对基础,代码纠错题要求理解各算法的每一步的意义与代码实现,但都是课上讲过的,因此,整体而言,考试内容比较贴近日常的学习,平时认真学足以在考试中取得不错的成绩。
课程内容简介
《计算机软件技术基础》主要介绍了算法的时间复杂度分析,线性表、链表、栈、队列、树、图等基础数据结构,基于这些数据结构的基本算法(如最小生成树、Huffman树、最短路、排序算法等)以及软件工程方面的知识。如果学习目标是在考试中拿到一个不错的分数,那么总体难度并不大;如果希望将来从事软件开发或算法这方面的工作,那么除了上课时讲的基本知识以外,还需要加强对实际问题的分析能力与数据结构的融会贯通、灵活使用,难度会相当大。
学习方法
在学习数据结构的原理与基本操作时,切忌强行背代码。数据结构并不是抽象的,它们的结构是可以形象地绘制出来的。因此,要注意各种数据结构的特点,对于各种操作可以先在纸上画一画,看看究竟哪些地方发生了变化,然后再结合代码,了解每一条语句的作用、每个操作的具体过程,最后在理解的基础上记忆。在水平达到一定程度后,也不必拘泥于记忆,可以自己确定每个操作的具体过程,并转换成代码。
在学习算法时,要注意算法的主要原理,比如Kruskal的原理是将边按照边权从小到大加入生成树中,并且保证加入后不会产生环;快速排序的原理是选中一个基准,将比基准小的放在一边,比基准大的放在另一边,然后递归进行……在了解原理的基础上进一步理解算法每一步的过程与代码,最后加以记忆。否则,一是记忆容易出错,二是不利于对算法进行灵活运用。
对于考试,主要题型与理论作业比较类似,因此要注意平时的理论作业。各种数据结构的基本概念、算法的运行过程是重点,因此一定要理解、掌握。此外,考试中会有10分左右的软件工程知识,主要是判断与填空,考前一定要背。在2022~2023学年秋学期的考试中还有一题代码改错(快速排序)、一题手写数据结构的某个操作(求链表长度),因此也要注意一下代码实现。
总体来说,《计算机软件技术基础》这门课由于考查内容几乎与平时上课讲到的内容一模一样,不会涉及各种灵活应用,因此只要认真理解了各种数据结构与算法的原理、代码,要获得一个不错的分数并不难。祝大家可以在这门课中获得优异的成绩。
考核内容
考核内容分为平时作业、思政作业和期末考试(闭卷)三个部分。平时作业有理论作业和上机作业两种,理论作业内容比较贴近考试,主要考查对算法的理解;上机作业要求使用程序设计语言实现算法与数据结构。思政作业一般是调研与本课程相关的内容在实际生活中的应用。
CC98汇总(可选)
<可选:如果有相关的CC98论坛讨论帖,可以在这里添加链接>
* [相关CC98帖子标题](CC98链接地址)