1. 引言
近年来,高校思政工作持续深化改革、不断务实发展,课程思政建设在广度上和深度上都取得了长足发展。与此同时,信息传递速度加快和多元文化相互交织,不断地影响着师生的价值取向和思维方式。2016年12月7日,习近平总书记在全国高校思想政治工作会议上强调指出,要坚持把立德树人作为中心环节,把思想政治工作贯穿教学全过程,实现全程育人、全方位育人,努力开创我国高等教育事业发展新局面 [1] 。这一重要论断打破了以往较为单一的思政教育方式,为高校专业课进行思政教育提出了新要求,指明了新方向。
2. 研究现状与问题
高校的根本任务是立德树人,高校教师的职责和使命是教书育人。为了促进Java语言与编程课程思政的建设与发展,笔者对当前该课程的现状进行了调研和梳理。
开设本课程的院校,大多将其分为理论课和实验课两部分,其中理论课48课时,实验课16课时。采取这种以理论课为主,实验课相辅的教学手段,其目的是让学生们将所学的理论知识通过实验方法加以实际验证,从而加深对理论知识的理解和记忆。此课程是计算机网络、分布式计算、软件协同设计等课程的前驱课程,是从事Java软件开发工程师的必备技能,对学生将来就业、读研有很重要的作用。因此,学生非常重视此课程的学习,学习态度认真,学习氛围浓厚。
十八大以来,习近平总书记提出了一系列关于思政课建设的重要论述。例如:2021年3月,总书记在看望参加全国政协会议的医药卫生和教育界委员时指出:“大思政课”我们要善用之,一定要跟现实结合起来。上思政课不能拿着文件宣读,没有生命、干巴巴的 [2] 。基于此,国内众多高校已经明确出台相关举措,全面促进专业课的课程思政建设,让其逐步地走进一线课堂,使学生在潜移默化中受到思政教育。有些院校也会鼓励教师积极申报课程思政建设项目,勉励其对课程思政进行研究和探讨。然而,调查发现实施思政的课程以文科居多,而理工科较少 [3] 。并且以往的课程思政方面课程大多是由专门的思政课来承担,而计算机专业的学生大多是高中的理科生,他们在上大学前接受的思政教育和熏陶相对较少。因此,迫切需要在Java语言与编程课堂上加强课程思政建设。
此外,Java语言与编程的课程大纲中已明确指出在培养学生关键技能和职业素养的同时,还要将课程思政工作贯穿始终。然而,当前课程思政教育还处在“摸着石头过河”的初级阶段。其中,一线教师普遍反应理工类课程中思政元素的提炼及融入难度较大。总的来说,该课程的教学目前还是以理论课为主、实验课相辅,存在提炼和融入思政元素不足的问题。并且一线教师的关注点主要集中在具体的知识点、语言结构、逻辑思维等方面上,重点关注的是学生对面向对象的设计思想、控制台程序等具体技术的掌握程度,忽略了爱岗敬业精神、大国工匠精神、职业操守、创新意识、团队协作以及践行社会主义核心价值观等核心素养的培养 [4] 。
综上所述,Java语言与编程是一门经典的“教学与实践相融合”的课程。不仅仅是在教学内容上,在课程设计、教学方法、教学评价等诸多方面都可深入进行课程思政资源地挖掘,也具备进行专业课课程思政建设的潜力 [4] 。然而,当前该门课程的课程思政建设尚处于初步探索阶段,存在诸多有待改进之处。
3. 课程概况
针对以上所调研的现状以及存在的问题,本文在总结Java语言与编程课程内容的基础上,对其进行了知识点和思政元素的挖掘,具体如下。
本课程共计64学时,由48课时理论课和16课时实验课组成。鉴于之前疫情授课经验,目前该课程在上海理工大学采用以线下授课为主,线上线下混合授课方式。线上部分依托在线学堂–智慧树的学习资源,线下部分主要采用讲授法、课堂讨论法、演示法和练习法等教学方式;并利用学校提供的一网畅学实现授课信息资源发布和学情数据收集。该课程的授课内容主要包括:Java语言与集成开发环境、Java语言基础、控制语句与算法、对象和类、数组、常用类与正则表达式、继承与多态、I/O与文件操作、多线程和GUI编程基础等内容。在授课过程中,始终贯彻“三全育人”要求,培养学生的爱岗敬业、创新和团队协作等精神。
教师每次备课时,都及时更新课程案例,将价值引领与教学内容有机结合,与时俱进,帮助学生增强获得感和使命感。此外,课程注重教学内容的基础性和实践性,在掌握基础知识后,通过项目形式培养学生观察分析问题的思维能力,并让其动手实践。授课老师不断挖掘该课程与后续课程之间的联系,为学习后续课程夯实基础。
4. 思政要素的提炼与梳理
4.1. 从Java集成开发环境看“卡脖子”技术的缺失对我国的影响
近年来,随着中美关系日趋紧张,贸易战、技术封锁、政治纷争等不断上演。加上疫情全球蔓延导致人员来往不便,使我国在ICT领域遭到了诸如芯片断供、关键软件被禁用之类的“卡脖子”问题,严重制约了相关产业发展和技术研究。而Java语言与编程这门课所使用的集成开发环境Eclipse最初也是由美国的IBM公司开发的,于2001年11月贡献给开源社区,目前由非营利软件供应商联盟Eclipse基金会管理。同时,Java语言本身最初也是由美国的Sun公司开发,后被美国的Oracle公司收购 [5] 。从Eclipse和Java的诞生我们就可以看出,美国在计算机软件方面拥有绝对的话语权。同样,大家经常使用的C、Python、Matlab等也都不是我们国家开发的。由此可见,我国在核心软件、核心算法等方面是受制于西方国家的。自主研发一款软件或编程语言所需的人力、物力、财力等非常高,且成功与否充满不确定性。而以上提到的软件或编程语言经过多年的开发维护,有着良好的性能和客户体验。所以,我国企业和高校大多数采用国外的现有软件。虽然这给我们带来了诸多便利,但是也存在很多致命的问题。比如,早在2020年,我国部分高校被禁用Matlab这款软件,在工科领域涉及到的很多复杂计算、图形分析、模型建立等都离不开这款软件,这使得相关单位处于非常被动的境地。此外,使用国外软件还存在着巨大的隐私泄露,即被监控问题。因此,我们必须增强历史使命感和责任感,面对当前软件领域的困境,我们更要好好地学习编程语言,将自己锻炼成一名合格的软件工程师,为祖国的软件事业做出自己的贡献。当然,我们也不必过于悲观。短板确实存在,但我国在电商、在线支付、通信等新兴领域发展迅速,并拥有一定的话语权。
4.2. 辩证看待进程调度中的资源冲突
进程、线程、多线程和多进程共享是Java编程中几个重要且容易混淆的概念。在讲解此知识点时,我们通常引用车站购票的实例来进行讲解,让学生能够身临其境地感受到这些概念的深层含义。实验课上,当我们要求学生编写多线程售票的代码时,多次运行后,一些学生发现运行结果中出现了重复票以及负号票等异常情况。随后,带领学生分析产生此情况的原因:当多个线程在操作同一个共享数据时,如果一个线程只执行了run方法中的部分语句,尚未执行完时另一个线程就参与进来的话,就可能导致共享数据的错误 [6] 。由此可以挖掘出局部与整体、个人与集体的辩证关系。任何事物都由整体和局部构成,整体和局部二者既有区别又有联系。整体处于统率地位,但局部也制约着整体,甚至在一定条件下,关键局部的性能对整体起决定性作用 [7] 。因此,我们既要树立全局观念,又要搞好局部,使得整体利益最大化。在此过程中,培养学生的家国情怀,树立个人利益服从集体利益,正确处理好个人利益和集体利益的关系,“在任何时候,任何问题上都要首先考虑集体的利益,把集体利益摆在前面,个人愿望、个人利益服从于集体利益;当个人利益同集体利益发生矛盾时,应该肯于为了集体的利益而牺牲个人的利益 [8] 。只有把小我融入大我,才会有更高的成就。”
4.3. 代码书写规范与道德修养
在Java编程中,代码规范是从业者职业素养的体现,良好的代码编写习惯是程序可读性和可维护性的基本保证。课上介绍Java编程规范时,着重强调良好的代码风格不仅是规范编程的体现,也是良好道德修养的体现。例如,在讲解变量和方法的命名规范时,可以强调遵循良好的命名规范,尽量使用有意义的名称或简写,禁止使用含糊、不规范、粗俗的不当词汇。
开发过程中,有些人通过带有侮辱性词汇的命名来表达自己的不满,这种行为是极其错误的。并且在讲解继承时,跟学生要着重强调中国特色社会主义是对马克思主义的继承与发展,是马克思主义中国化的科学实践。因而,我们要在日常生活中要继承和发扬好中华民族的传统美德,抵御西方文化渗透。
4.4. 从多角度思考和局部与整体的辩证关系看待I/O流和异常处理
I/O流向问题是Java语言与编程课程中的一个重要知识点,对该知识点的讲解,可以引申出多角度看待问题、辩证分析的观点。如今,大学生面临着高强度的学业和就业压力,一些大学生在经受一点挫折后,就自暴自弃。针对这种情况,我们应该全方位、多角度地看待问题,任何事物都有两面性,既有好的一面,也有坏的一面。不能片面地只看其不好的一面,进而陷入焦虑。而要多思考其好的一面,毕竟,上帝为你关上一扇门,总会为你打开一扇窗。此外,我们在代码编写过程中,一定要小心仔细,因为时常因为一个很小的bug,导致整个程序运行不了。整体和部分二者不可分割,相互影响。整体的变化会影响到部分的性能状态及其变化。部分也制约着整体,甚至在一定条件下关键部分性能会对整体的性能状态起决定作用。因此,我们在日常代码编写过程中,一定要一步一步认认真真地写,最终形成一个完整可靠的软件。
4.5. 国家安全意识与工匠精神
在Java语言与编程课程教学中,不可避免地会介绍一些关于国家安全方面的知识点,例如防火墙、入侵检测、网络监控等,并向学生讲解国家的相关法律法规,帮助学生形成正确的国家安全意识。例如,在讲解网络编程知识点时,笔者会结合国家的相关政策,向学生讲解网络安全的重要性,如何防范网络攻击,如何保护个人隐私和个人信息安全等问题。同时,还将提醒学生遵守国家的相关法律法规,不要编写危害国家安全的程序,犯下违反法律的错误 [9] 。课程的最后,布置学生完成一个综合应用程序开发。在开发过程中培养学生相互之间的团结协作、不断创新和严谨踏实的作风。通过一些大国工匠事例的讲解,在他们心里埋下一颗爱国敬业的种子。
基于以上课程思政元素的提炼,我们发现要想在专业课中巧妙地融入课程思政元素,并非易事。因此,需要我们在今后的教学过程中,改变以往教学中只注重实践能力提升,而不注重职业素养提升的观念,做个有心人和思考者,将课程思政巧妙地融入到一线课堂上去。增强立德树人的使命感和责任感,培养学生知识水平、道德修养等综合素质,践行全员全过程全方位育人的要求。以上提炼的思政元素如表1所示:

Table 1. Extraction and arrangement of ideological and political elements
表1. 思政元素的提炼与梳理
5. 课程考核
本课程采用过程化考核,理论考试加做项目的方式来打分。具体来说,期末理论考试占总成绩的40%。出勤和思政占10%,思政方面主要考察学生是否在编程过程中命名规范,是否有不爱国言行等。课程的平时小测验和实验课占50%,小测验不定时随堂进行。实验课主要安排在下半学期,给学生布置一个小组开发项目,每周提交一份周志,汇报项目进展,且每次实验课需要学生到讲台前展示项目情况。加深对知识点理解的同时,培养其团队合作意识。
6. 结束语
本文在总结Java语言与编程课程内容的基础上,探讨如何具体在教学实施过程中融入思政元素,实现润物细无声的专业课程思政建设。采用过程化考核方式,加入了思政考核要素。以期为一线该课程教师提炼思政元素提供一点参考。与此同时,课程思政是一项长期的、持续性的教学过程,需要教师紧跟时代步伐,与时俱进地融入思政元素,培养出兼具爱国情怀又爱岗敬业的优秀人才。
基金项目
本文得到上海高校青年教师培养资助计划:基于《Java编程与开发》的示范课程思政建设重点(No. ZZ202303012)、江苏高校哲学社会科学研究一般项目:大学生学习策略有效性判断中的能力错觉研究(No. 2023SJYB2261)、上海理工大学本研一体化课程建设项目:面向对象工程资助。
参考文献
NOTES
*通讯作者。