APP下载

“自顶向下”思想在C++程序设计案例教学中的应用探析

2023-07-10相林张菲菲

电脑知识与技术 2023年14期
关键词:案例教学法结构

相林 张菲菲

关键词:“自顶向下”;案例教学法;结构

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2023)14-0143-04

0 引言

程序设计语言是软件开发的直接工具,也是高校计算机专业开设的必修课程之一[1]。程序语言课程内容丰富、规则繁多,课程教学有一定的难度。许多高校都对课程进行了教学改革,如以在线网络为依托,对教学内容、教学方法和考核方式进行课程改革[2],或者将课程教学与教师的科研相结合,实现“产学研”一体化[3-5],还有院校以案例教学法来提高程序设计课程教学质量[6-7]。但是,由于课程抽象且理论性较强,学生对课程的理解和掌握存在较大难度,并且很难在解决实际问题时灵活使用。本文深入分析当前课程教学环节中的问题,以具体案例的分析解决为例,讨论将“自顶向下”的程序设计思想应用于C++程序设计语言的教学中,引导学生对问题进行思考分析,将大问题分解为若干小问题,并逐个解决小问题,最终完成大问题的求解。根据分解的步骤,先设计算法,再设计程序,得到目标代码。将正确编写代码这一最终的课程学习目标,分解为文字表述的算法设计和C++ 程序设计语言实现的程序设计两步骤,降低学生的学习难度,逐步提高学生的编程能力。

本文根据教学目标设计案例,以喜闻乐见的热门娱乐节目为切入点,激发学生的学习兴趣,并引出设计投票器的目标问题。利用“自顶向下”的思想设计程序后,通过对学习过程的总结归纳,让学生深刻理解新知识点的内涵与外延,并将知识点的学习升华到精神品质的教育,从数据的和谐存储上升到以和谐的态度对待万事万物,再立足到本专业的学习应以创新的精神发展人工智能,使之与人类和谐共存的职业精神教育,从而将正确的科学发展观自然融入教学过程,在教授新知识的同时完成对学生的思想教育及职业素养的培养。

1 教学背景

为了形成知识体系,每个章节的教学前都应介绍该章节在整个课程中的地位和作用,以便与前面的章节联系同时引出后续的内容[8-9]。如C++程序设计中的结构及其应用,该部分内容是C++程序设计语言课程的重要内容,也是学习面向对象程序设计的核心概念——“类”的基础,更是从面向过程程序设计走向面向对象程序设计的口岸与桥梁,起着承前启后的重要作用[10]。理解结构的概念,对于后续学习面向对象设计中的核心概念——对象,有着关键作用。

首先,该部分内容的教学目标分为知识目标、能力目标和情感目标三部分。具体而言,知识目标包括掌握结构的概念及作用,学会声明结构类型、定义结构变量和访问结构变量的成员两大方面。能力目标是利用结构实现多类型组合数据的存储及操作,学会编写结构相关代码并调试,能利用结构解决实际问题。情感目标是要在编程过程中,和谐、高效地进行沟通与合作,锤炼意志,培养扎实严谨的科学态度和健全人格,同时享受编程的乐趣,怀有为中国软件产业助力的远大理想。基于2018级-2020级学生期末试卷和同行教师教学反馈的数据得出,本部分内容教学的重点和难点如表1所示。

2 案例分析——“中国好声音”投票器

课程的自然引入是上好一节课的基础[11]。C++程序设计语言是一门在解决实际问题的过程中发展起来的学科[12],从贴近学生课余生活的问题及案例入手,最能激发学生的兴趣,并使其印象深刻。例如,以近年来广受年轻人喜爱的娱乐节目——“中国好声音”的观众投票器设计为案例,从问题的引出、程序的设计、结果的验证,一步步带领学生解决切实的实际问题,体会理论内容在实际问题中的应用,激发学生的兴趣,调动同学们学习的积极性和主动性,往往会达到事半功倍的效果。

案例描述:在备受欢迎的选秀类节目——“中国好声音”2015年度巅峰之夜总决赛中,有4个战队5名歌手,包括周杰伦战队的李安、陈梓童,那英战队的张磊,哈林战队的谭轩辕及汪峰战队的贝贝。通过观众投票,张磊以11113票进入巅峰对决,并最终获得年度总冠军。如何设计程序在这场参与投票人数多达数万人的比赛中,用计算机自动实现票数统计得到冠军?

通过案例的描述,学生自然会有疑问:如何以选手为基本单元进行票数的存储和访问,从而实现票数的统计,进而得出冠军的姓名?通过分析案例输入数据的存储形式,以示疑、质疑、释疑的教学方式,引导学生思考用学过的数组储存数据的弊端,启发学生使用结构解决存储问题,实现新旧知识点的衔接,完成教学内容的自然切入。具体而言,对于一名選手,需要存储其编号、姓名和得票数三方面信息(图2(a)),而它们的类型并不完全相同,因此用三个数组进行数据存储极为不便。进而引导学生考虑使用结构,将描述一名选手所需的不同类型数据存储在一起,实现以选手为基本单元进行数据的存储及访问(图2(b))。因此,定义结构类型Singer,包含选手编号ID、选手姓名name和得票数voteNumber三个成员。

进一步,要存储5名选手的信息,而选手信息的类型相同,启发学生考虑使用数组完成数据的存放,从而引出结构数组的使用。定义维度为5的Singer类型的结构数组data(如图3),数组的每个元素都是Singer 类型的数据,分别包含选手编号ID、选手姓名name和得票数voteNumber三个成员。结合案例,根据问题需求,循序渐进引导学生思考问题,找到解决问题的办法。在解决问题的同时,让学生从旧知识自然过渡到新知识,在已有知识储备的基础上,学习并灵活使用新知识,从而对课程内容有更为深刻的理解和把握。

3“自顶向下”的算法设计

利用自顶向下的程序设计思想,整个投票过程的实现可分解为4个模块(图4)。首先,以选手为单位,存储每名选手的编号、姓名及得票数三方面初始信息,初始得票数都为0。然后,根据选票上的姓名统计各选手获得的票数,保存各位选手的得票数。接着,根据上一步的统计结果,查找得票数最多的选手。最后,输出每位选手的票数,并根据上一步找到的冠军编号,输出冠军姓名。

至此,利用“自顶向下”的思想,完成了模拟投票整个过程的程序设计。通过案例,学生能够理解结构的概念及使用领域,在语句中通过点运算的设计,访问和操作结构变量的成员,让学生通过实际操作更加深刻感受到结构变量的定义及运算,更利于把握知识重点和难点。而在整个程序设计过程中,通过宏观设计对大任务分解,再对小模块细化,实现投票器的程序开发,让学生学会使用自顶向下这一重要的程序设计思想。

最后,通过对结构的学习,学生了解到可以将两种及以上不同类型的数据和谐地存放在一起,既可以整体处理又可以按成员访问,求大同存小异,体现了辩证唯物主义和谐观。和而不同、和实生物,和谐是中国的文化传统,更是社会主义核心价值观的重要元素。在当前人工智能的新时代,作为计算机从业者要以创新精神发展人工智能,使其为人类服务的同时与人类和谐共存。

5 结束语

本文以设计“中国好声音”投票器为例,展示了将课程内容——结构,融入案例分析与求解的全过程,将学生喜闻乐见的娱乐节目与课程内容联系起来,激发学生的学习兴趣,提高课堂教学效果。通过知识点的自然融入,深入浅出,层层递进,逐步讲授新知识,充分展示知识点的实际应用,让学生深刻体会知识点在实际问题中的使用契机及方法。在案例分析过程中,将“自顶向下”的程序设计思想融于案例分析解决的过程中,着重培养学生形成正确的程序设计思维模式,不单着眼于编写某条语句,而是自主设计算法进行编程,学会分析和解决问题。教学中,将课程内容与思政联系起来,以数据的融合升华到唯物主义和谐观,在教授知识的同时,培养学生形成正确的世界观和人生观,完成一名合格教师“传道、授业、解惑”的使命。

猜你喜欢

案例教学法结构
《形而上学》△卷的结构和位置
新型平衡块结构的应用
论《日出》的结构
房地产项目策划课程案例教学探索与实施
基于BIM的结构出图