APP下载

C语言程序设计课程的线上线下混合式教学模式

2022-12-06朱子楠

科技风 2022年33期
关键词:测验C语言程序设计

张 竞 朱子楠 梁 晗 张 丽

咸阳师范学院计算机学院 陕西咸阳 712000

在C语言程序设计课程中,基于雨课堂、阿尔法等教学平台,经过精心设计的线上线下教学混合式教学模式的步骤:创设场景,激发学生的学习兴趣和动力→适应场景,养成良好的学习习惯→内化场景,形成专业能力→升级场景,形成专业技术→升华场景,上升为专业艺术。通过这样小步慢走的进步,希望能够更好地、超预期地完成C语言程序设计课程的教学任务。

1 在线上,教师引导学生在实际中遇到问题或者发现问题,激发学生想解决问题的兴趣和动力

例如,在C语言程序设计课程的循环模块教学中,给学生提出如下三个问题:

例1-1 已知一个数列的第n项an=3n+2,计算该数列的前n项和sn。

例1-2 已知一个数列的第n项an=a*n+b(a和b都是常量),计算该数列的前n项和sn。

2 在线上,教师指导学生找到解决问题的方法或者探索解决问题的方法,使学生提高环境适应能力

不提倡任课教师直接给出解决问题的方法答案,课上首先让学生自己寻找或者探索解决问题的方法,然后教师再提供参考答案(培养学生自学能力和环境适应能力)。

例如,引导学生自己通过教材、书籍、网络等自学或请教别人,寻找探索计算数列的前n项和sn的方法。

步骤1 首先,学生寻找探索计算数列的前n项和sn的方法。

步骤2 然后,教师再提供计算数列的前n项和sn的参考答案。

例1-1 已知一个数列第n项an=3n+2,计算该数列的前n项和sn

方法1 使用while语句的循环程序实现

#include

int main()

{ int n,k=1,an,sn=0;

printf("n = ");

scanf("%d",&n);

while(k<=n)

{ an=3*k+2;

sn=sn+an;

k++;

}

printf("sn = %d ", sn);

return 0;

}

方法2 使用for语句的循环程序实现

#include

int main()

{ int n,k,an,sn=0;

printf("n = ");

scanf("%d",&n);

for(k=1;k<=n;k++)

{ an=3*k+2;

sn=sn+an;

}

printf("sn = %d ", sn);

return 0;

}

例1-2 已知一个数列第n项an=a*n+b,计算该数列的前n项和sn(a和b是常量)。

方法1 使用while语句的循环程序实现

#include

int main()

{ int a,b,n,k=1,an,sn=0;

printf("a b n = ");

scanf("%d%d%d",&a,&b,&n);

while(k<=n)

{ an=a*k+b;

sn=sn+an;

k++;

}

printf("sn = %d ", sn);

return 0;

}

方法2 使用for语句的循环程序实现

#include

int main()

{ int a,b,n,k,an,sn=0;

printf("a b n = ");

scanf("%d%d%d",&a,&b,&n);

for(k=1;k<=n;k++)

{ an=a*k+b;

sn=sn+an;

}

printf("sn = %d ", sn);

return 0;

}

3 在线下,学生积累解决问题的场景或者拓展解决问题的场景,使学生的适应能力上升为专业能力

首先,通过努力,学生初步探索尝试性地解决了一个新问题,然后需要独立使用该方法解决一定数量的同类问题,才有可能基本掌握这类解决问题的通用方法。因此,需要学生自己独立解答下面这些练习题并需要做更多的练习题:

习题3-1 计算自然数列1,2,3,4,5,6,7,8,…的前n项和sn。[1]

习题3-2 计算斐波那契数列1,1,2,3,5,8,13,21,34,55,…的前n项和sn。[2]

步骤1 学生最好能独自设计出上面的练习题程序(训练学生独自设计程序能力)。

步骤2 教师给出设计上面的练习题程序的参考答案,供大家参考。

习题3-1 计算自然数列1,2,3,4,5,6,7,8,…的前n项和sn。[1]

方法1 使用while语句的循环程序实现

#include

int main()

{ int n,k=1,an,sn=0;

printf("n = ");

scanf("%d",&n);

while(k<=n)

{ an=k+1;

sn=sn+an;

k++;

}

printf("sn = %d ", sn);

return 0;

}

方法2 使用for语句的循环程序实现

#include

int main()

{ int n,k,an,sn=0;

printf("n = ");

scanf("%d",&n);

for(k=1;k<=n;k++)

{ an= k;

sn=sn+an;

}

printf("sn = %d ", sn);

return 0;

}

习题3-2 计算斐波那契数列1,1,2,3,5,8,13,21,34,55,……的前n项和sn。[2]

方法1 使用while语句的循环程序实现

#include

int main()

{ int a1=1,a2=1,k=3,n,an,sn=a1+a2;

printf("n = ");

scanf("%d",&n);

if(n==1) sn=a1;

else if(n==2) sn=sn;

else while(k<=n)

{ an=a1+a2;

sn=sn+an;

a1=a2;

a2=an;

k++;

}

printf("sn = %d ", sn);

return 0;

}

方法2 使用for语句的循环程序实现

#include

int main()

{ int a1=1,a2=1,k,n,an,sn=a1+a2;

printf("n = ");

scanf("%d",&n);

if(n==1) sn=a1;

else if(n==2) sn=sn;

else for(k=3;k<=n;k++)

{ an=a1+a2;

sn=sn+an;

a1=a2;

a2=an;

}

printf("sn = %d ", sn);

return 0;

}

4 在线下,学以致用,培养学生对知识的应用能力

在线下,通过学生使用可以更新的题库平台,测验检查并训练学生更正确、更规范地运用知识解决问题的应用能力,使自己的专业能力逐步不断地向专业技术方面升级。

学习的目的,是为了应用,在线下通过认真做题库的测验检查,训练并提升学生掌握专业技能的熟练程度。学生一旦通过测验检查,就有可能把知识内化成自己的技能,创造更高的价值。

学生会做题,并不能保证逻辑合理、过程规范、方法简捷、结果正确。只有通过不断地超大量的正规测验检查的训练,才有可能使得自己的专业能力升华为专业技术。

在C语言程序设计课程教学中,伴随着题库升级,学生不断地使用雨课堂和阿尔法平台测验检查,只有累积测验成绩的平均分不低于80分的学生,才可以通过本门课程的正规测验检查。

方法1 雨课堂平台的测验检查

方法2 阿尔法平台的测验检查

5 为学生开放线上线下可共享的随时交流平台

学生可以通过面对面或者电话、QQ、微信、邮件等方式进行交流。通过交流,在老师启发、引导下,唤醒学生的意识,使学生在学习上获得顿悟,突然理解了知识点,使学生的专业知识技术升华为专业艺术。

改进C语言程序设计课程的教学方法,除了采用线上线下混合式教学模式以外,也需要借鉴一些优秀教师的教学方法,关注最新的教学技术发展,不断引入新的理论知识,对自身的教学内容进行更新,还需要根据学生自身的个性特点,提高教学的趣味性,让学生对课程产生喜爱,激发学生的兴趣。要与时俱进,跟上时代的步伐,增强学生主动探索能力和对知识的综合应用能力,改进课程教学方法,达到提高课堂教学的效果。

猜你喜欢

测验C语言程序设计
医学专业“Python程序设计”课程教学改革总结与思考
互联网+教育背景下的C语言程序设计教学改革探究
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
两个处理t测验与F测验的数学关系
数字测验
你知道吗?
你知道吗