摘 要:随着信息技术应用的快速发展,提升软件工程师的伦理素养对保障软件及信息安全至关重要。然而,当前软件工程专业教学与当下伦理问题之间存在滞后,以及学生因实践经验少而对伦理困境缺乏敏感度等问题,导致课堂教学效果欠佳。针对这些问题,文章基于软件工程专业实践性强和技术更新快等特点,从伦理问题的整体认知、风险的来源与防范措施、风险伦理评估与软件工程师的伦理责任4方面开展教学内容实践探索,通过理论与案例分析结合的教学方式加深学生对伦理问题的理解,同时,采用翻转课堂使学生体会矛盾的转移及伦理双方冲突的焦点,增强学生多视角分析能力,提升学生的伦理意识和道德素养。
关键词:工程伦理;软件工程专业;实践教学;翻转课堂
中图分类号:G642.0 文献标识码:A 文章编号:1002-4107(2024)11-0048-04
一、引言
当前,软件产品的迭代已成为社会发展不可或缺的一部分,而随着软件体量的不断增大,其中隐含的伦理风险也日益凸显。例如,软件开发过程中涉及的隐私保护与数据安全问题、软件质量问题、人工智能中的伦理与知识产权问题,以及软件工程师的职业与社会责任问题,这些都直接或间接地影响软件产品的稳定性、社会信用和用户权益,同时也是软件产品走向集成化、智能化过程中不可忽视的风险因素。在工业物联网和软件结合的背景下,大量个人隐私数据和敏感信息,如身份信息、位置信息、消费记录、联系方式等数据被系统的服务端隐秘收集,成为了潜在的资源[1]。而软件工程师在软件开发过程中如何保证在使用这些资源的同时防止用户私有信息被泄露或被商业化是软件工程专业教学涉及的主要伦理问题;在软件集成度迅速增长的趋势下,如何平衡软件测试成本和软件功能的稳定性是软件工程专业教学不可忽视的伦理问题;在人工智能赋能的背景下,如何甄别海量数据中充斥的偏见、错误的观点,保证人工智能模型拥有正确的伦理观点,以及在伦理困境下,人工智能的选择策略如何遵循伦理准则,是软件工程专业教学必须要解决的伦理问题[2]。软件工程师作为推动软件行业发展的共同主体之一,与技术创新、方案制定、质量把关紧密相联,同时,其也是涉及伦理风险的主体。要从根本上规避软件行业隐含的伦理风险,需要在软件工程专业人才培养体系中融入工程伦理教学内容,以此增强学生的伦理意识,指导学生面对伦理困境时如何作出正确选择,提升学生的道德素养。
二、软件工程伦理的特点和内容
在软件设计、开发和测试的过程中,软件工程师常常面临选择,如从专业视角发现的功能设计方面的缺陷,若在增加成本的情况下是否需要反馈给客户。在面对诸如此类情况时,软件工程师可以依据所在职位的行为规范、职业责任、职业道德等进行选择。但在各种利益和社会关系交织的复杂场景下,所依据的原则常常发生冲突,软件工程师更多的是依据个人的价值观进行判断,出现了结果因人而异的情况,这进一步导致了结果的不确定性,从而形成了伦理风险。软件工程伦理涉及的伦理观点将公众的福祉放在第一位,并基于公共利益、社会责任、公平正义等原则为软件工程师在伦理困境中提供决策支持,促使行为的结果产生积极的影响,进而保护公众的权益和产品的质量。
软件工程领域涉及的工程伦理内容包括用户隐私保护、信息安全、AI(Artificial Intelligence,人工智能)自动化和社会影响4个方面。在用户隐私保护方面,为防止数据泄漏,软件工程师在开发过程中需要考虑用户数据的私密性,如隐去快递单号上联系号码的几位数字以保证收件人信息不被泄露。同时,对收集到的用户信息应仅用于本软件运行,不可将数据提供给第三方平台用作商业广告推送的依据,侵犯用户权益。在信息安全方面,信息收集能力的差异进一步导致了数字鸿沟,拉大了技术发展的不平衡,而工程伦理的引入可以引导和约束软件工程师对自身技术的使用,杜绝发起恶意的网络攻击行为。在AI自动化方面,工程伦理的引入可以避免AI算法基于历史数据产生歧视和不公正的结果,同时可在自动化方案的设计中加入更多伦理问题的解决方案,有助于改善用户体验。在社会影响方面,工程伦理的引入可以引导软件工程师在职业责任与社会责任相冲突时,更加关注工程结果对社会的影响。
三、软件工程伦理的教学内容
通过理论教学和案例分析,学生了解软件工程伦理的含义,认识到软件工程中包含的伦理问题,如未经授权的访问和篡改数据行为、软件产品的虚假宣传行为、用户数据的滥用行为等。软件工程伦理教学内容包括对软件工程专业涉及的伦理问题有整体性认识,了解软件工程风险的来源和掌握防范软件工程风险的措施,熟悉工程风险的伦理评估原则、途径与方法,掌握软件工程中的伦理责任。
(一)对软件工程专业涉及的伦理问题的整体性认识
通过软件工程专业教学,学生了解软件工程技术的特点及其对推动社会变革的重要作用,认识软件技术和大数据实践引发的社会风险及利益分配冲突,整体把握工程人员与大数据创新科技人员可能面临的多种新型伦理问题。通过分析棱镜门、黑客攻击等案例,学生意识到软件工程活动中的风险是不可避免的,如隐含的数据安全风险、网络安全风险、软件质量风险、项目管理风险、法律合规风险和用户隐私风险等[3-4]。教师可以此引导学生思考软件的整体运行方式,以及如何将风险造成的负面影响最小化,同时,让学生意识到作为未来的软件工程师,需要从技术、环境、社会等方面全方位考虑,对实际的伦理问题有整体性的认识。
(二)软件工程风险的来源与防范措施
通过学习,学生了解软件工程风险源自技术的不确定性、外部因素的不确定性和人为因素的不确定性3个方面。技术的不确定性主要涉及方案制定中的技术选型,复杂的技术和架构会增加开发过程中的不确定性,所依赖的第三方库存在的不确定性也会进一步影响软件开发的整体过程[5]。外部因素的不确定性包括需求变更、市场环境变化、技术生态系统变化等,这些均会增加软件工程风险。人为因素的不确定性包括开发团队的管理水平和成员的技能水平,以及利益相关方的多元诉求所带来的不确定性。面对技术的不确定性,需在工程开始前进行充分的技术评估和选择,评估各种可行的技术选项,并考虑其成熟度、可靠性、适用性和可维护性等因素,选择合适的技术栈以减少技术风险。面对外部因素的不确定性,需制定灵活的开发计划,同时开发备选方案、制定容错机制、建立风险监控机制,并持续学习和创新,了解最新的技术、市场和政策变化,以减少外部因素风险的影响。面对人为因素的不确定性,需通过团队建设、培训和激励来提高团队成员的凝聚力和工作积极性。同时,进行风险管理,及时识别和应对可能的风险和问题,确保项目进展顺利,并通过培训、交流和分享等方式,促进团队成员之间的学习和提高。
(三)工程风险的伦理评估
风险的伦理评估讨论的是“工程风险在多大程度上是可接受的”。具体分为三步:首先,将工程所涉及的风险信息公开,使相关者知情;其次,确定利益相关者,由于每个工程都涉及多个利益相关者,因此,在确定的过程中需秉承不遗漏的原则,并分析他们对工程的贡献及获得的收益[6];最后,组织利益相关者洽谈,在利益相关者充分表达多元诉求的基础上,通过多次协商对话,充分掌握工程中涉及的各种风险,采取逐项评估与跟踪评估的方式,使工程决策在公共理性和专家理性之间取得平衡。
(四)软件工程师的伦理责任
通过学习,学生了解软件工程师的伦理责任,包括对雇主负责的岗位责任、对社会和公众负责的社会责任,以及当二者产生冲突时,对社会和公众的社会责任大于岗位责任,并且软件工程师基于社会责任需要对公司的要求进行有选择的服从[7]。当风险发生时,不能将责任归咎于其中一人,而是需要涉及诸多利益关系的工程共同体共同承担。同时,当软件工程师发现所在用人单位的工程活动对社会公众的隐私及财产产生危害时,可以向有关部门检举和揭发,使公众和利益相关方能及时了解到其中的安全隐患。
四、软件工程伦理的教学方法
在教学方法上采用理论讲解与案例分析并重的方法,以及通过翻转课堂帮助学生在软件工程领域更好地理解伦理困境和应用伦理知识。
(一)理论讲解与案例分析
在理论讲解环节,对相关理论知识进行详细讲解,帮助学生建立伦理概念框架和认知结构。在案例分析环节,通过具体的案例引导学生积极参与讨论。学生通过分析、讨论和解决问题的方式来应用所学的伦理知识,提高思维能力、语言组织能力、问题分析能力和创新能力。在实际教学中,需要根据不同的教学内容和学生的实际情况灵活运用伦理优先的相关原则[8],关注讲解内容的科学性和系统性,同时注重与实际应用的联系,可与生活中常见的例子进行类比,使用相关新闻等视频材料加深学生的印象,以便学生更好地理解和接受所学知识。
(二)翻转课堂
翻转课堂方法同样适用于软件工程伦理教学。在实践与案例分析环节,可让不同的学生就案例中的问题模拟不同的角色[9],如“扫码点餐”的信息隐私问题、无人驾驶的伦理风险问题、共享单车的价值伦理问题、科技的环境伦理问题与智能手机APP开发过程中涉及的工程师职业伦理问题等,并结合对应章节的理论内容,分析具体案例中存在的伦理问题,发表自身对问题的看法。在对立的立场上,学生可就自身权益进行辩论,继而交换立场,继续辩论。在这个过程中,学生能够从单一主观视角到客观视角的变化之间体会到需求的变化、矛盾的转移及伦理双方冲突的焦点,增强多视角看待问题和分析问题的能力[10]。同时,学生可以通过类比的方式意识到在相关技术领域存在的更为广泛和普遍的伦理问题,增强对知识的感性理解和发现问题的敏锐度,强化对伦理知识的应用。
五、软件工程伦理的实践教育
实践教育可以帮助学生更好地理解和应用所学知识,提高实践能力和责任感。在实践教育方面,学生可以通过参加实习、项目开发等形式加强实践能力和责任感的培养。在实践教育中,学生有机会接触到真实的工作环境和工作流程,在面对真实的需求和挑战时,需要了解项目文化和软件开发过程,并协作创新,将所学工程伦理知识应用到实际项目问题的分析中。
实践教育中的师生互动是激发学生兴趣的关键,学生可以提问、讨论和分享观点,以此深化对伦理问题的认识和理解[11]。在这个过程中,学生从不同角度思考伦理问题,分析其背后的道德和社会影响,并形成自己的观点和立场,激发批判性思维。同时,在师生互动的课堂中,通过分组讨论的模式,可以培养学生的团队合作意识;通过协商、合作和共享意见,可以培养学生与他人合作解决伦理问题的能力[12]。在与教师和同学的讨论中,学生可以认识到自己在软件开发和应用过程中所面临的伦理挑战和责任,增强对道德行为的敏感性和坚持原则的决心。通过教师的讲解,学生还可以了解行业标准、最佳实践和专业道德要求。
软件工程师的工作涉及人们的生命财产安全和社会稳定,因此,在实践教育中,需要注重培养学生的伦理责任感,注重道德教育和职业伦理教育,使学生具备高度的社会责任感,认识到自己的职业责任和使命,树立正确的价值观和职业道德,从而成为有责任心、有担当的软件工程师。
六、提升学生伦理思维的意义
培养学生的伦理思维是软件工程专业重要的教学目标之一,即引导学生对软件工程活动中的道德观和伦理原则进行思考、分析和判断,这不仅关乎个人的道德行为,还涉及社会和全球层面的伦理问题。
培养学生的伦理思维有助于学生形成正确的道德判断和行为准则。通过教育和引导,学生可以了解不同的伦理观点和价值观,学会思考伦理问题的多面性和复杂性,学会权衡不同的利益、权益和价值观,以做出符合道德准则和社会责任的决策[13]。培养学生的伦理思维有助于学生形成批判性思维和道德判断力,学会提出问题、收集信息、分析证据,并基于道德原则进行推理和判断,学会辨别伦理问题中的伦理违规和冲突,并提出合理的解决方案。这种批判性思维和道德判断在学生日常生活和职业发展中都具有重要意义。同时,培养学生的伦理思维还可以促进学生社会责任感的形成。通过了解社会伦理问题和挑战,学生可以认识到自己作为公民的责任和义务,意识到自己的行为对社会和环境的影响。
七、软件工程伦理教育教学面临的挑战与反思
软件工程是一个实践性强的专业,在融入工程伦理教育的过程中仍面临诸多挑战(表1),需要针对具体情况做出应对策略。
(一)教学过程与课程建设中面临的挑战
1.软件工程专业教学在与工程伦理内容体系进行交叉融合的过程中,需要学生具备专业的技术知识和实践经验,并基于一定的开发经验才能理解软件工程师所面临的伦理问题,若仅对课本内容进行学习则难以映射到现实的开发场景中,也难以体会存在的伦理选择困境。
2.当前软件工程涉及各个行业,其存在的问题除了软件系统本身以外,更多的是业务流程中涉及的其他专业领域的伦理问题,在没有相关专业知识储备的情况下,难以培养出学生对隐含伦理问题的敏感性。
3.在多元诉求的场景下,学生缺乏足够的阅历平衡各个工程共同体之间的利益。
4.软件工程与工程伦理交叉融合教学是相对较新的领域,缺乏统一的标准和规范,教学资源的开发和整合困难,师资队伍在选择和利用教材、案例等方面面临挑战。
5.对于快速发展的技术和层出不穷的伦理问题,现有的教学资源往往更新滞后,许多教材和在线平台无法及时跟上最新技术和伦理问题的发展,且工程伦理的内容体系在解决当前伦理问题时缺乏实效性和准确性,影响了教学效果和教师的教学质量。
6.在师资队伍建设方面,软件工程专业教育更加注重技术层面,目前部分教师在工程伦理领域的知识和教学方法上存在欠缺,还有一部分教师没有足够的软件工程实践经验,在工程伦理应用方面无法开展案例教学和指导,导致高校缺乏兼备软件工程经验与工程伦理教学经验的师资。
7.工程伦理教育工作的认可度和评价体系相对薄弱,导致师资队伍的培养和发展受到一定限制。目前,许多教学资源和方法仍停留在理论层面,缺乏与实际软件开发项目结合的机会。
(二)基于现状的反思与整改措施
1.如表2所示,面对软件工程与工程伦理两门学科交叉整合中出现的问题,需要从增加学生的实践经验入手。在课程内容中增加关于软件开发的案例讨论,通过视频材料让学生了解在一个软件开发项目的全周期内软件工程师在各个阶段所参与的内容和面临的压力,以深度剖析案例来弥补学生实践经验的缺失。
2.面对多元价值诉求带来的挑战,通过让学生扮演不同工程共同体来进行讨论,之后互换身份再进行讨论,使同一名学生在多个角色的转换中体会诉求的变化,最终在一个客观的视角协调各方的利益。面对伦理问题演进带来的挑战,需要不断完善更新课程中的讨论案例,紧贴时事热点事件。
3.教学资源整合和实效性方面,需要制定统一的教学资源开发标准和规范,定期更新和维护相关教材和案例资源,确保其与最新技术和伦理问题的契合度。
4.师资队伍建设方面,需要加强软件工程专业教师的伦理教育和培训,包括提高教师的伦理意识和知识水平,增加教师之间的互动交流,鼓励软件工程专业教师在工程伦理方面的研究和实践,加强实践与教学的结合,提供更多实际案例和项目经验。
5.软件工程伦理教育认可度方面,需要建立健全的评价体系和激励机制。
八、结束语
将软件工程伦理融入软件工程专业的教学中,可以提升软件工程师的伦理意识和道德素养,培养高质量的软件工程人才。但在实施过程中也会面临一系列挑战,应积极采取措施加以解决,并不断推动软件工程专业教学与软件工程伦理教育的深度融合。
参考文献:
[1] 梁宇,郑易平.大数据时代信息伦理的困境与应对研究[J].科学技术哲学研究,2021,38(3):100-106.
[2] 陈晓英,刘思宏.计算机引发的伦理问题研究[J].辽宁工业大学学报(社会科学版),2012,14(5):38-40.
[3] 万征.浅论高等院校计算机教学中的伦理教育[J].科学咨询(决策管理),2008(8):43.
[4] 梅英,张卫平.国外计算机伦理教育及对我国的启示[J].云南电大学报,2006(1):24-27.
[5] 杨扬,杨增芳.关于加强地方高校计算机伦理教育的探讨[J].科技创新导报,2012(15):174.
[6] 李超,柳宁.“知、情、意”交融的计算机伦理课程教学探索[J].计算机教育,2023(9):181-185.
[7] 王正平.信息网络技术与计算机伦理[J].上海交通大学学报(哲学社会科学版),2007(5):53-60,88.
[8] 崔永杰.工匠精神培育融入高职思政课教学的路径研究[J].黑龙江教育(理论与实践),2021,75(12):18-19.
[9] 吕晓兰,崔得龙,谢玉鹏.“层次递进式”电信专业实践教学改革[J].黑龙江教育(理论与实践),2021,75(5):90-92.
[10] 林小云.基于核心素养培养学生数感策略研究[J]. 黑龙江教育(理论与实践),2017,71(5):81-82.
[11] 吴亚东,王芳,刘宇艳.“大思政”格局下实验教学课 程思政建设的理实路径探索[J].黑龙江教育(理论 与实践),2024,78(2):69-72.
[12] 王国凤,曲阳,刘健聪.思政引领 科研依托:“双万” 背景下材料化学专业课程思政建设探索与实践[J]. 黑龙江教育(理论与实践),2021,75(8):4-5.
[13] 李楠,崔建伟.师范院校大学生师德教育路径探析[J]. 黑龙江教育(理论与实践),2018,72(7/8):35-36.
■ 编辑∕王力