1. 引言
高校培养的人才,需要掌握一定的专业知识或专项技能,需要具有一定的创造性思维和工程实践。然而,具备扎实的专业知识或专业技能并非意味着学生具有了可以应付未来挑战的能力。高校教育不仅要传授大学生专业知识和专业技能,而且要帮助大学生提高认知世界改造世界的能力。
在全国高校思想政治工作会议上,习近平总书记指出,中华民族的千秋伟业,系于一代又一代拥护中国共产党领导和社会主义制度、立志为中国特色社会主义事业奋斗终身的专业人才 [1]。这为高校立德树人的培养指引了方向。高校人才需要具有不可动摇的马克思共产主义信仰,深信自己负有国家富强、民族兴旺的神圣使命,肩负社会主义建设者和接班人重任的意识 [2],才能在未来人生旅途中积极地无私忘我地将自己所学的科学知识和科学技能奉献到国家富强、民族兴旺的事业中,为中华民族的振兴和繁荣保驾护航添砖加瓦。因此,专业课程教学过程融入立德树人要素,大学时代就树立社会主义核心价值观,对于大学生在未来奋进的洪流中实现人生价值、升华人生境界具有重要作用。
2. 算法课堂融入思政元素的意义
算法分析与设计课程是高校计算机专业和相关专业的必修课程,是高校计算机学科的核心专业基础课程之一,是解决计算机学科实际问题的理论基础。它能够有效提升软件编程与设计能力、数学建模和分析能力、逻辑思维能力、分析问题解决问题的能力。通过本课程的学习,学生需要掌握基本算法(分支限界算法、回溯算法,动态规划算法法、贪心算法、分治算法、和递归算法)的设计技术;掌握算法设计与分析的基本技术及逻辑思维方式;培养学生分析算法复杂度的能力与独立科研的能力。
随着国际计算机协会(ACM)主办的国际大学生程序设计竞赛(ICPC)在国内赛事规模迅速增长,国内高校计算机专业对算法课程教学愈加重视。算法课程内容抽象、逻辑性强,学生们普遍反应理解困难、枯燥。在讲授算法分析与设计课程的过程中融入立德树人要素,激发学生攻克难关的斗志和决心,降低专业知识的抽象性和乏味性,是必要的。例如,单纯介绍计算机思维认知定义:计算机思维是依据计算机科学的基础法则求解问题、设计系统和理解人类的行为,其特征是抽象和自动化 [3],学生并不能理解透彻。但我们这样解释:按照计算机的法则设计编写程序,与计算机融为一体,计算机才能高效地解决我们要处理的问题。而我们个人在社会这个大机器中,必须先做到遵纪守法,树立有社会主义核心价值观,和社会融为一体,与之和谐相处,人生价值才能最大化,才有满满的幸福感。课堂气氛随即活跃起来,学生注意力也会转到课堂上、与教师的互动也开始频繁。因此,我们在课堂上选择性地融入一些思政元素,专业知识传授和思政教育相辅相成,可以降低专业知识的抽象性和乏味性,激发学生的学习斗志和积极性,培养学生创新意识、科学思维和严谨务实奋发向上精神,提升授课教师的成就感和荣誉感。
3. 算法课程教学与思政元素融合设计
在讲授算法课程的过程中引入思政元素,专业知识尽量采用案例式教学,具体案例融入立德树人要素来讲解。力求调动学生在课堂的积极性,使学生听课态度会更加地认真、积极发言并乐于与教师互动。思想教育能够唤起学生的潜意识,牵引着学生注意力,激发学生学习课堂知识的热情 [4]。当学生全身心融入到算法课课堂,学生对具体算法的理解会更加深刻透彻。因此,我们采取“从算法的抽象理论到问题的具体解决,再由问题的具体解决到算法复杂性分析”的方式与思政元素融合,建立专业知识与立德树人要素的关联矩阵(表1所示)。制定算法课程教学大纲时,思政元素体现更加明确清晰,作为教学过程中的指定内容固定下来。进一步细化专业知识和思政元素的细化关联矩阵如表2所示。
![](Images/Table_Tmp.jpg)
Table 1. Association matrix of professional knowledge and Lide Shuren elements
表1. 专业知识与立德树人要素的关联矩阵
![](Images/Table_Tmp.jpg)
Table 2. The refined matrix of the combination of professional knowledge points and Lide Shuren elements
表2. 专业知识点与立德树人要素结合的细化矩阵
4. 思政元素融入算法课堂的具体实践
算法设计与分析课程作为计算机专业的主干课程,课程立德树人教育有着其它课程无法比拟的优势。算法是人们求解问题的方法总结和凝练,包含了前人的思想和智慧,蕴含着丰富的哲理信息。根据融入了思政元素的算法教学大纲,通过“隐性教育”,在教学具体过程中可以自然地进行立德树人教育。由于篇幅限制,本文仅以分治法(融入维护祖国统一民族团结的思政元素)为例进行探讨。
1) 分治法的概念
分治法,就是将一个难以直接解决的大规模问题,划分成一些规模较小性质相同的子问题,各个子问题单独求解,合并各个小问题的解得到原大规模问题的解。分治法是计算机科学分析方法中一个重要算法,它高效地解决了许多问题,如排序(归并排序、快速排序),计算机计算傅立叶变换(快速傅立叶变换)等等。
2) 分治法步骤
为了让同学理解掌握分治法解决问题的步骤,提出问题:分治法如何解决我们生活中的难题呢?学生思考的同时,举例说:一片领土,分解为若干块小部分,根据不同的政治派别、不同的宗教信仰、不同的文化分为不同区域,让它们彼此异化,然后一块块地占领征服,直至征服所有领土。请学生回答是直接占领整片领土还是分而治之容易?在学生异口同声高呼下,我们开始介绍分治法的步骤:① 分解:原大规模的问题分解为若干个相互独立、规模较小的子问题,且每个子问题都与原问题性质相同;② 解决:递归地分解各个子问题,直到子问题的规模小到容易求解;③ 合并:逐级合并子问题的解,获得原规模的问题解。
3) 分治法解决具体问题
分治法的基本思想和设计步骤讲解过后,要说明分治法解决问题的具体案列。案例如下:在一个有n个元素的有序序列a[0:n-1]中如何查寻元素x,比较次数最少?如果蛮力搜索,顺序扫描序列a[0:n-1]中的每个元素,将扫描到的元素与x比较。当x在序列中且位于序列最末端或x不在序列a[0:n-1]中,最多比较次数n次,时间复杂度为O(n)。如果采用分治策略,首先将n规模的序列a[0:n-1]分成两个大致n/2规模的子序列;然后,x和序列a[0:n-1]的中间元素a[mid]比较,若x与中间元素a[mid]相等,则x在序列a[0:n-1]中的位置就是mid;如果x小于a[mid],由于序列a[0:n-1]是非递减的(有序,和原规模问题性质相同),因此,假如x是序列a[0:n-1]中的元素,则x必然位于序列a[0:n-1]的前半部,我们只要在序列a[0:n-1]的前半部,即a[mid]的前面查找x;如果x大于a[mid],只要在序列a[0:n-1]的后半部,即a[mid]的后面查找x。无论在前半个序列还是后半个序列查找x,其方法和在序列a[0:n-1]中查找x一样,两者不同之处在于查寻规模不同,前者规模更小查找x更容易。算法的伪代码 [5] 描述如下:可以看出,递归调用一次BiarySearch函数,待搜索的序列规模缩小一半。因此,在最坏情况下,递归调用被执行了O(logn)次。BiarySearch函数体内运算需要常数O(1)时间,因此,基于分治法的二分搜索最多需要O(logn)次比较,时间复杂度为O(logn)。与蛮力顺序搜索方法比较,二分搜索算法效率明显提高,比较次数大幅减少。
int BiarySearch(int a[], int low, int high)
{
if( low>high) return 0
else
{ mid =(low+high)/ 2; // 一分为二
if (x==a[mid]) return mid; //x为中间元素
else if (x
//在前半部搜索
else return BinarySearch(a, mid+1,high); //在后半部搜索
}
return -1; // 未找到x
}
4) 课后作业
查阅文献,撰写200~500字综述——维护祖国统一民族团结的意义。目的是让学生认清西方敌对势力“西化”中国的真实面目,树立牢固的“社会主义核心价值观”,增强应对复杂政治斗争的能力;认识到维护国家统一和社会安定,加强民族团结是中华民族根本利益的保证 [6]。同学们认识到:如果不树立牢固的社会主义核心价值观,否定中华民族传统文化,失去共同文化纽带,会加深民族矛盾,导致冲突不断、国家四分五裂,会被西方列强各个击破,列强轻易达到“分化”中国的目标。很多同学在综述结尾都表达了这样的心声:在统一的祖国大家庭里,我们团结互助抵制外敌,共同致力于社会主义现代化建设,实现中华民族伟大复兴的梦想。
5. 算法课程思政实践效果
我们深挖课程思政元素,将立德树人要素融入算法设计与分析课程教学的全过程,力求传授知识和培养专业技能同时,引导学生树立正确的人生观、价值观、和世界观。课程即将结束时,对计算机软件工程专业75名学生进行课程思政教学评价的问卷调查,回收有效问卷68份。问卷统计结果如表3所示,学生对融入思政元素的算法课程实践教学满意度(非常满意和满意)从低到高分别是89.7%,92.64%,92.64%,94.12%,95.59%和97.05%,对应的算法内容为分支限界法、动态规划法、回溯法、贪心法、递归算法和分治法。这说明大部分学生能够掌握计算机算法的基本理论和设计方法,适应融入思政元素的教学方式。表3后四行是挖掘的四项思政元素融入算法课程教学实践的效果评价,学生对国家统一民族团结观、社会主义核心价值观、奋发向上人生观和科学思维的教学融入方式满意度分别为:86.77%,89.71%,88.24%和95.58%。这说明,立德树人要素融入算法设计与分析课堂,强化了学生的社会主义核心价值观意识,认识到自己的责任和历史使命;树立了奋发向上努力拼搏为祖国团结祖国繁荣发光发热的人生观;提升了学生的创新意识和科学思维能力。
![](Images/Table_Tmp.jpg)
Table 3. Evaluation of ideological and political teaching (%)
表3. 课程思政教学评价(%)
6. 结语
学生在学校学习时期,是形成人生观、价值观、世界观的关键时期,思政教育可以引导学生的精神世界。融入立德树人要素的算法设计与分析课程的教学环节和实践环节,在传授专业知识和专业技能过程中,起到了引导学生树立正确的人生观、价值观、世界观,培育学生精神世界和人生理念的基本元素的作用。
基金项目
西安理工大学2021年研究生教育教学改革研究项目“新工科背景下《可计算性与计算复杂性理论》课程案例建设”(310-252042111)。