高级语言设计

2024-05-04

高级语言设计(通用8篇)

篇1:高级语言设计

《高级语言程序设计》课程设计教学大纲

课程名称:高级语言程序设计课程设计

课程总学时:32 适用专业:广播电视工程、电子信息工程、电子科学与技术

课程类别:必修

一、课程设计任务与目的

《高级语言程序设计》课程是一门实践性较强的课程,课程设计环节是课程学习的重要组成,是课程教学的必经步骤。目的是培养学生实际操作技能和解决实际问题的能力。要求学生掌握C语言设计、调试、运行方法,获得用C语言解题的实际体会,加深对C语言的理解,得到C程序设计方法和技巧的训练,掌握C程序设计的全过程。通过课程设计的教学,使学生巩固和深化已学的理论知识,加强综合应用能力,训练学生掌握分析问题、解决问题的方法,培养较强的动手能力和一定的设计和调试能力。

二、课程设计基本内容与要求

鉴于课程设计的性质、要求和具体内容,对课程设计提出如下要求;

1、关于课题及选题

在课程设计任务书中列出了多个设计课题,每个课题都有相应的要求或说明。参加课程设计的学生首先要了解设计的任务,仔细思考各题的设计要求,然后根据自已的基础和能力情况从中选择一题。一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为原则。

若学生对任务书中课题以外的相关课题较感兴趣,希望选作课程设计的课题时,应征得指导教师的认可,并写出明确的设计要求和说明。

2、关于设计的总要求

在设计时,要严格按照题意要求独立进行设计,不能随意更改。若确因条件所限,必须要改变课题要求时,应在征得指导教师同意的前提下进行。

3、验收

在课程设计完成后应由指导教师当场运行、验收,只有在验收合格后才能算设计部分的结束。

4、设计报告

课程设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。设计报告一般要以固定规格的纸张书写并装订,字迹及图形要清楚、工整(电子文档尤佳)。内容及要求如下:

(1)设计任务、要求及所用软件环境或工具。

(2)问题模型化描述以及求解算法的简要描述。

(3)设计的模块构成、各模块的简要说明、流程图、调用关系表。

(4)所设计软件的组成(程序文件和数据文件)及使用说明。

(5)设计总结和体会。

(6)验收情况。

三、课程设计设备与材料

计算机;Visual C++6.0或C-Free3.5或Turbo C++3.0软件。

四、考核方式与评分办法

1、学生按照实习计划和大纲完成实习教学任务,考试合格取得相应学分。

2、学生实习考核内容与成绩比例:实习态度与实习纪律占20%、业务能力与水平占40%、答辩与验收情况占20%,实习报告占20%。

3、无故不参加实习或实习全过程缺勤在三分之一及以上者,实习成绩视为不及格。

4、学生实习成绩按优秀、良好、中等、及格和不及格五级评定,原则上呈正态分布,严格控制优秀比例,一般优秀率不大于20%。

五、课程设计参考书

1、潭浩强.C语言程序设计.清华大学出版社.2000

2、廖湖声等.C语言程序设计案例教程.人民邮电出版社.2003

3、张仁杰 王风茂.《C语言程序设计实训教程》中国电力出版社.2004

执笔人:裘姝平

教研室:电子信息工程教研室 编制日期: 2008 年 9月

篇2:高级语言设计

一、教材名称:<>

二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时]

三、适用专业和开课学期:软件技术专业,第2学期。

四、实验的目的与任务:

《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。

五、主要仪器设备及台(套)数

安装Windowsxp,TC2.0等软件的计算机,每生一台。

六、主要实验教材(指导书)及参考用书:

谭浩强主编,《C程序设计题解与上机指导》,清华大学出版社。

七、成绩考核方式及评分标准

实验占课程总课时1/3,每项实验按该实验说明要求规定的评分标准积分,学期末合计的实验成绩占课程总成绩的18%。

八、实验开出率:100%

九、实验项目与要求

实验一:C程序的运行环境和运行一个C程序的方法(2学时)

实验性质:验证性实验

一、实验目的

1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。

二、实验内容

1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?

2.输入并运行教材第一章中例1.2。

3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。

实验二 数据类型、运算符和表达式(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。

2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容

1.输入并运行教材第三章例3.6.即: #include void main(){char c1,c2; c1=97; c2=98;

printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。

2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。

3.输入并运行习题3.10。即: #include void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);} 分别作以下改动并运行: ①将第4行改为: m=i++;n=++j;②程序改为: #include void main(){int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);} ③在②的基础上,将printf语句改为: printf(“%d,%d”,++i,++j);④再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}

实验三 最简单的C程序设计(2学时)

实验性质:验证性实验

一、实验目的

1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。

二、实验内容

1.输入并运行以下程序:

#include

void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;

unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;

f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;

f=3157.890121;g=0.123456789; d=f;e=g;

p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。

② 在①的基础上将printf语句改为:

printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);

printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。

2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

上机运行程序,比较用printf和putchar函数输出字符的特点。

实验四 选择结构程序设计(2学时)

实验性质:设计性实验

一、实验目的

1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。

二、实验内容

先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数 xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~

10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

实验五 循环控制(4学时)

实验性质:设计性实验

一、实验目的

1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。

二、实验内容

编程序并上机调试运行。

1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

实验六 数组(4学时)

实验性质:设计性实验

一、实验目的

1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。

二、实验内容

编程序并上机调试运行。

1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。实验七 函数(4学时)

实验性质:设计性实验

一、实验目的

1.掌握定义函数的方法;

2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;

4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。

二、实验内容

编程序并上机调试运行。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。

(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。

(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。

实验八 预处理命令(2学时)

实验性质:设计性实验

一、实验目的

1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。

二、实验内容

编程序并上机调试运行。

1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。

说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:

输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。

实验九 指针(4学时)

实验性质:设计性实验

一、实验目的

1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;

二、实验内容

编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。

2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:

1 7133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。

实验十 结构体和共用体(4学时)

实验性质:设计性实验

一、实验目的

1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。

二、实验内容

编程序,然后上机调试运行。

1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。

要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

2.输入和运行以下程序:

#include

union data {int i[2]; float a; long b; char c[4]; };

void main(){union data u;

scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。

然后将scanf语句改为: scanf(“%ld”,&u.b);

输入60000给b。分析运行结果。

实验十一 位运算(1学时)

实验性质:设计性实验

一、实验目的

1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。

二、实验内容

编写程序,上机调试并运行。

1.设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。

实验十二 文件(1学时)

实验性质:设计性实验

一、实验目的

1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。

二、实验内容

1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。实验十三 学生成绩管理(4学时)

实验性质:综合性设计性实验

一、实验目的

1.综合运用C程序设计知识,解决实际问题。

二、实验内容

1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。

2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。

3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

学生的原有数据为:

91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为:

91108 Xin 90,95,60

制 订:程世辉 教研室:软件教研室 执笔人:程世辉 审定人:

篇3:高级语言课程设计教学改革与实践

1 高级语言课程设计教学中存在的问题

经过多年的教学实践,高级语言课程设计教学在取得成绩的同时,也发现了许多亟待解决的问题。

1.1 课程设计题目难易程度单一,实用性不强

课程设计的题目直接关系到学生完成的情况和教学效果[1,2],但是由于参加课程设计的学生人数众多,而辅导教师较少,并且每次都是辅导教师自己编写课程设计题目。因此课程设计题目相对单一、难易程度没有分开档次,不能满足不同层次学生的要求,达不到最佳的教学效果,并且有些题目很难与学生的生活实践相结合。

1.2 教师和学生对课程设计重视不够

高级语言课程设计一般集中在一到两周内完成,时间比较集中,课程设计前没有做好充分准备,往往是仓促上阵不知从何开始,或做一部分就停滞。辅导教师应提前一段时间让学生选题,学生提前搜集资料做好准备。

1.3 课程设计中没有充分发挥学生的主动性和创造性

课程设计题目都是由辅导教师指定给学生,教师很难了解学生的学习情况,因此设计题目很难激发学生的学习兴趣和创造激情,学生只能被动地接受。在教学实施方面,部分学生不愿发挥主动性和创造性,存在相互之间抄袭的现象。如何帮助学生树立自信心,端正学生学习态度,转变学习风气,提高学生学习主动性,也应是辅导教师应该关注的问题。

1.4 课程设计题目没有与学生的专业知识整合

对于非计算机专业学生来说,计算机只是一门工具,学生学习计算机课程的目的是学会使用这门工具为本专业服务。如何培养学生在计算机综合训练课程中,能更好的利用计算机知识去解决专业领域中的问题是我们教师应该考虑。

2 高级语言课程设计教学改革的实施

多年来我们在高级语言课程设计教学中进行了改革与实践,取得了较好的教学效果。

2.1 收集和编写高级语言课程设计题目库

根据课程设计题目的难易程度和类别编写高级语言课程设计题目库,供每位辅导教师使用。课程设计题目要符合教学实际,体现本课程的基本训练内容,具有一定的实用性和趣味性,且与现实生活联系密切,难易程度要有一定的梯度[3]。鼓励学生在辅导教师指导下结合自己的专业知识自主命题,充分发挥学生的主动性和原创性。

2.2 编写高级语言课程设计选题系统

基于我中心的局域网和原有的划卡上机系统等后台数据库信息,编写基于B/S模式的高级语言课程设计选题系统。通过该系统学生在进行身份验证后,可以根据自己的学习基础、兴趣和专业从课程设计题目库中选择自己喜欢的课设题目。学生可提前一两个月就选好题目、收集资料,提出课程设计的总体思路,避免仓促上阵,准备不足的情况。

2.3 引导和帮助学生树立信心,端正学习态度

由于高级语言课程设计是高校非计算机专业学生的第一门计算机实践性课程,学生对该课程往往具有畏惧情绪,不知从如何着手做起,最担心的就是自己不能通过。教师要做好宣传和引导工作,帮助同学们消除恐惧感,让同学们知道课程设计并不可怕,只要认真对待就能取得好成绩。例如提倡学生通过模仿的方式来学习,通过各种途径查找与自己的题目类似的范例,只有多模仿才能掌握方法,才有可能创新,来实现自己的设计题目。

2.4 完善高级语言课程设计的过程控制,做好考核与评定

在课程设计过程中教师做好与学生的引导和交流工作,发扬团队作战精神,鼓励学生之间互相帮助,规范课程设计说明书的书写格式。学生在课程设计结束后,不仅要提交软件系统,还要提交课程设计说明书,阐述其设计思路、运用的知识及自己的体会。该课程成绩考核办法,采用平时成绩占20%,系统演示和答辩成绩占60%,课程设计说明书成绩占20%,各部分成绩汇总后给出学生的总成绩。为有效避免学生在课程设计过程中的抄袭现象,教师在答辩环节中可以对学生进行有针对性地提问,学生当场解答,教师也可以采取删除程序中一些关键性语句由学生当场调试的方法检查学生的学习效果。通过互评和自评,学生的学习主体意识得到充分体现和加强,激发了学生发现、分析和解决实际问题的能力,使学生运用计算机理论知识开发出具有实际应用价值的应用系统。

3 结束语

高级语言课程设计是计算机基础教学的一个重要的综合性实践教学环节,是基本理论与工程和科研实际相结合的训练,它包含了对理论知识的复习深化,也结合了对科研和工程设计的方法、程序的初步试尝,是培养应用型人才总目标的一部分。结合多年来的教学经验对课程设计的各个环节进行改革与实践,取得了较好的效果,学生的学习积极性和创新能力到得到了很大的提高。当然还需要我们与时俱进、不断学习、实践、总结研究,为实现教育大目标多作贡献。

摘要:高级语言课程设计是各高校非计算机专业学生在修完计算机语言类课程后开设的计算机程序设计类课程,目的是培养学生掌握程序设计的思想和方法,具备编程实践能力。作者结合多年的教学经验提出了该课程教学中存在的问题,并针对问题给出了改革的方案,取得了较好效果。

关键词:高级语言,程序设计,实践教学,教学方法

参考文献

[1]翟国栋.非计算机专业数据库课程设计教学研究[J].教育探索,2007(5):106-107.

[2]姚晓宁.对课程设计的几点体会[J].科技信息,2008,11:163.

篇4:高级语言程序设计课程教学探究

关键词 高级语言 教学设计 教学方法

中图分类号:G633.67 文献标识码:A

我校以C语言作为高级语言程序设计的目标语言进行教学设计,本人在多年的教学实践中,努力探索新的教学方式,认真研究不同的教学方法,大大提高了学生的学习积极性,取得了一定的教学效果。

1 精心设计课程实施方案,注重理论与实践相结合

对于高等院校的学生来说,很多学生在开始接触高级语言程序设计课程时,由于对C语言认识不深刻,认为C语言过时了,不值得学,学习积极性不高。因此在进行教学设计时对教学内容与教学方法要进行精心设计,不能只是单纯的讲授C语言的语法,而应将理论教学与实践教学并重,并将之紧密结合、互相促进,提高学生的积极性,以求达到最佳教学效果。在实际教学中应充分发挥C语言解决实用问题的导向作用,将枯燥的理论生动演绎为解决问题的利器,通过设计巧妙的教学内容,充分调动学生的积极性,让学生的思维围绕教师的思维活动。通过一些有趣实用的题目去诱导学生学习,给学生的思维中留下一定的期望与神秘感,促使学生驱动自己的好奇心,从而充分调动学生主动学习的欲望。

2 改进教学方式,采用多种教学方法

要取得良好的教学效果,仅仅进行教学设计是远远不够的,还要结合灵活多变的教学手段进行教学,让学生真正参与教学过程,真正做到“学为主体,教为主导”。

2.1 传统讲授式教学方法

讲授演示教学法是在传统教学方法的基础上,进行适度的改良,以学生对具体知识和技能的掌握作为主要目标进行教学的方法,它主要由以下四个步骤。

首先由教师导入问题。教师在了解学生已有的知识结构、专业水平的基础上,由简单问题导入新的教学内容,让学生感受到新知识在解决实际问题中的作用,从而激发学生对新知识的学习兴趣。

第二步,教师进行讲解演示。教师通过自己深入浅出的讲解,要让学生理解新知识的应用原理,做到“知其然,并知其所以然”;然后演示操作步骤,详细说明操作的实现过程。

第三步,学生自主实践。按照教师的演示讲解,学生自己动手实践新知识的应用,教师从旁指导答疑,让学生真正理解掌握新知识。

最后进行总结练习。教师对整个教学活动进行归纳总结,突出教学重点、难点,同时了解学生对新知识的掌握程度。在此基础上,由学生自己通过练习,逐步对新学知识达到完全掌握和熟练运用。

2.2 实例研究教学法

实例教学法是指根据典型的例子采用不同的解决方式进行教与学,使学生能通过实例来掌握新知识。例如:编程求1+2+3+……+100之和,这是循环语句典型的求累加的问题。针对这一问题,即可以采用while、do-while语句来实现,也可以采用for语句来实现。通过同一问题的三种实现方法,让学生掌握三种循环语句的原理、特点和用法,了解它们之间的相同点与不同点,以及三种语句的使用范围等知识点。

实例研究教学法以精选出的程序实例为中心,把学习的重点放在实例的讲解上,把要学习的语法结构和概念融入到具体实例中,整个教学过程中强调学以致用,避免了枯燥、繁杂的理论说明,不仅增进了学生的学习积极性,同时对提高学生综合分析能力和解决实际问题的能力有很大帮助。

2.3 探讨式教学法

探讨式教学法是教师在教学中根据教学要求和重难点设计问题,学生在教师引导下参与课堂研讨,分析问题、解决问题,从而启发学生思维并培养学生能力的一种教学方法。在C语言程序设计教学中,探讨式教学法能够突出学生的主体地位,充分发挥学生的主观能动性,有效地培养学生分析问题与解决问题的能力。

当然,在实际教学过程中可采用的方法还有很多,如案例教学法、研讨式教学法等,正所谓“教学有法,教无定法”,全看你怎么使用。只要能取得良好的教学效果,完全不必拘泥于任何一种教学方法,多种手段并用。

3 利用实践操作,提高学生应用能力

高级语言程序设计是一门实践性非常强的课程,对于将其作为基础课来学习的学生来讲,实践课的课时安排普遍不足,因此在教学过程中要充分利用有限的实践课时间,尽可能地提高学生的操作能力。而教材上的例题、习题基本以算法设计为主,内容枯燥不易编写,学生上机积极性不高,程序设计过程的成就感不强,因此在实践内容的安排上不能简单的让学生照抄或直接编写程序。在实验过程中,可以让学生先做基本的实验,通过实验理解课堂上所学习的理论知识;再通过验证书上的例题,理解并掌握程序设计的步骤,进而能自己进行课后习题的程序设计;最后通过一些算法设计与过程设计相结合的提高性实验,一步一步的提高学生的实践应用能力。

对每一个知识点,可以设计一些紧扣知识点的相对简单而趣味性强的问题,学生在实验时由浅入深,循序渐进,每次实践都能有收获,这样将极大地提高学生编写程序的积极性。在此基础上,再布置相对复杂一些的算法设计问题,学生就能够有信心有能力综合应用所学知识进行设计,解决问题。当然趣味性的题目只是培养学生兴趣的手段,要真正让学生学好C语言,关键还是让学生充分掌握运用C语言解决实际问题的能力。因此无论在课堂上讲的例题,还是课后布置的作业,都可以设计一些与专业相关的实用性较强的题目,来培养学生的创新能力和自主学习能力。

当然,一门课程的教学效果如何,除了教师的精心组织和讲解之外,学生的学习积极性也是一个关键。只有教师和学生共同努力,充分互动,才能切实提高教学效果,才能真正让学生学有所获,才能避免理论与实践脱钩,也才能充分调动学生的积极性。

篇5:高级语言设计

一、课程设计的目的

高级语言程序设计是本科工科类各专业的重要基础课,课程以影响深远的、传统的、面向过程的优秀编程语言C语言为基础,学习程序设计的基本概念和方法,通过本门课程学习,应使同学掌握高级语言的基本原理,熟练掌握程序设计的基础知识、基本概念;掌握程序设计的思想和编程技巧。

课程设计是在学生已经具备了使用C语言编写简单的应用程序的能力,为使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。经过该实践环节,培养学生的探索精神和创新能力。通过答辩训练学生的综合表达能力。

二、课程设计教学的基本内容和要求

1、课程设计教学基本内容

高级语言课程设计不仅是对程序设计能力的综合锻炼,更是对团队合作、软件开发与项目管理过程的训练。因此,课程设计根据题目的难度由小组合作完成,每个小组1-4人。整个课程设计分为以下几个阶段进行:选题与开题、系统设计、系统编码实现、系统测试、撰写课程设计报告、系统评价与验收。

(1)选题与开题:题目可来自教师指定的参考题目,也可自由选题,特别是鼓励有创新性的题目或是在已知题目的基础上进行创新。

(2)系统设计:系统设计的任务是对所确定的题目从问题需求、数据结构、程序结构、难点及关键技术等方面进行分析,形成的系统设计方案,并进行详细的分工。

(3)系统编码实现:小组成员根据初步的系统设计方案,对系统编程实现。(4)系统测试:在各程序模块编码完成并集成后,就可以开始对整个系统进行测试。(5)撰写课程设计报告:完成文档整理,按照要求完成课程设计报告。(6)系统评价与验收:通过小组答辩的形式对程序的功能进行评价与验收。

2、课程设计教学的要求

参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。具体如下:

(1)数据组织方面尽量使用到:数组、链表、结构体、文件;(2)程序结构方面做到函数调用,尽量采用指针运算;(3)代码编写规范,形成良好的编程习惯;

(4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。(5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面:

 程序的总体设计和算法分析。 程序流程图、函数说明  源程序代码清单  测试数据和测试过程记录  遇到的问题及解决方法分析  课程设计小结

三、课程设计的进度安排

系统整体设计和详细设计

1天 系统编码实现

1天 系统测试

1天 撰写课程设计报告

1天 演示软件和答辩

1天

四、课程设计的考核

评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的课程设计报告,严格检查以下各项任务完成情况:

1、设计文档中要求项目是否齐全。

2、程序中运行时的屏幕提示信息是否准确:

如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。

3、问题和或任务的陈述(描述问题,而且问题是合理原始的、应当包括输入、输出及其预期范围)是否正确。

问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代码,把整个解决方案划分成若干模块。

5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。

6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。

7、程序的技术文档:必须包含函数的原型说明和所用变量的全体清单

8、程序顺利运行,结果正确;测试程序是否工作且满足设计指标并评价其效率。

五、指导书、参考资料

《C程序设计》 谭浩强编 清华大学出版社

《C程序设计思想与方法》 尹宝林编著 机械工业出版社

篇6:高级语言设计

教学内容:复习流程控制语句之中的条件语句、多分支语句和循环语句,讲解转向语句。教学目标:

1、知识目标:了解转向语句break、continue、return和goto之间的区别。

2、能力目标:培养学生编写程序选择运用转向语句的实际能力。教学重点:正确运用和掌握break和continue 转向语句。

教学难点:能够正确分析出程序之中运用转向语句后编译、执行后的结果。教学方法:结合程序和图加深学生的理解,采用分布式教学。教学手段:多媒体教学。教学过程:

一、情境引入

师:前一次上课我们学习了流程控制语句中的条件语句、多分支语句和循环语句,不知道同学们还是否记得我们都学了那些条件语句,又学了那些循环语句呢?

让学生自由说,当所有学生回答声音回落时,让稍差学生回答这个问题,检测他们课余时间的复习情况,进一步加深他们的印象。

二、复习讲解

复习条件语句(if)、多分支语句(switch)和循环语句(for、while、do—while)。教师提问:while和do—while语句的区别。请同学们先想一想,然后找较好学生回答。

三、步入正题

1、课题引入

师:今天我们来学习最后一种流程控制语句转向语句,就大家课下复习本章节能否告诉我都有哪些转向语句? 有些学生会知道一些,但大部份学生带着疑问和求知的表情。

2、讲解分析

师:转向语句有四种,依次为break、continue、return、goto语句。Break语句可用于三种情况:(1)在switch结构中,break语句用来终止switch语句执行。

(2)在for循环及while循环结构中,用于终止break语句所在的最内层循环。

(3)Break语句也可在代码块中,用于跳出它所指定的块。

举一个简单的break语句的例子,给同学分析它的结果,进而让同学们掌握break语句的基本用法。

3、程序运用

师:学习了break语句我们了解了它的主要功能是跳出最内层循环,并且可用于三种情况下,下面我们来学习continue语句。

Continue语句只能用在循环语句中,用来终止本次循环。当程序执行到continue语句时,将跳过其后尚未执行的循环语句,开始下一次循环。下一次循环是否执行取决于循环条件的判断。

师:将上面简单的break语句的例子中的break换成continue语句,那么这个程序的执行结果将会是什么?请大家思考一下,我提问。

同学们似懂非懂,都抱着怀疑而期待的眼神看着我,看来他们已经进入状态。师:将break和continue语句的运用做了比较后,我们会明显的知道它们的本质区别,break是跳出当前循环即最内层循环,而continue是跳出本次循环即执行到continue语句时循环语句后面尚未执行的语句不再执行直接进入下一轮循环。

break和continue语句是重点,到现在为止同学们已经能基本高清楚它们的区别和用法,脸上露出了一丝收获的微笑。

师:下面我们来讲剩下两种转向语句return和goto语句。它们虽然简单但不容忽视。

对于有返回值的函数,在函数的出口处必须用return语句将要返回的值返回给调用者。

goto语句会导致程序结构混乱,可读性降低,而且它所完成的功能完全可以用算法的3种基本结构实现,因此一般不提倡使用goto语句。但在某些特定场合下,goto语句可能会表现出其价值。比如在多层循环嵌套中,要从深层循环跳出所有的循环,如果用break语句,则不仅要使用多次,而且可读性较差,这时goto语句可以发挥作用。

4、总结区别

转向语句 break、continue、return、goto区别:

break语句是结束当前循环,continue语句是结束本次循环,return可以终止函数,goto可以一次性跳出任何位置。

注:java的转向语句中不包含goto语句。

四、自主探索

编写两道分别关于break、continue语句的程序请同学们解答。教师巡视,观察同学们的掌握程度。

五、比较发现

通过对不同转向语句的在计算机上的实际运行来强化同学们对它们之间区别及运用的掌握。

同学们通过交流分析得出答案。

六、作业安排

师:通过这节课的学习,你学到了什么?

同学们下去后看看教材上面的例题,是不是完全能看懂,并在机上运行一下,亲自体验一下他们的区别,如果有不懂的请及时向老师或同学请教。

教学反思:较好的学生基本能掌握所学知识,但较差的学生还是有些吃力,所以要加强编程举例练习。

板书设计:复习流程控制语句,黑板东面画出它们的流程图;

黑板北中写上标题“转向语句”;

黑板西面分别写出各转向语句的特点;

黑板中间写出各转向语句之间的区别;

2010-2011学第一学期教案

科 目: C++

年 级: 计科0701

篇7:高级语言程序设计A第2次作业

(B)a/=b+c;这个式子和a=a/b+c;等价

2.16、若有如下说明

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

则数值为6的元素的表达式是

(B)*(p+5)

3.下面哪条语句是错误的(B)int a=b=c=1;

4.已知实型变量a存贮的是一个0~1之间的实数,将a以两位小数百分比形式输出(如:a=0.347592,则输出为34.75%)正确的打印语句是

(A)printf(“%.2f%%”,a*100);

5.定义C函数时,不给出返回值类型,则默认的返回值类型是

(C)int

6.C语言存贮字符串时,用特殊字符表示字符串结束

(D)’’

7.有以下程序段

int k=0;

while(k=1)k++;

则while 循环执行的次数是。

(A)无限次

8.对于for循环语句:for(x=0,y=0;(y=3)&&(x<4);x++)y++;,正确的是。

(C)执行4次

9.有定义struct { int a[5];} b;则正确表达成员数组a的最后一个元素地址的是____。

(C)b.a+4

10.以只写方式打开一个二进制文件,应选择的文件操作方式是____。

篇8:高级语言设计

高级语言程序设计是大学开设的一门计算机基础教育课程,在社会工作中应用也较为广泛。程序设计要求设计者应具备综合的分析能力、灵活的解题方法以及严谨的逻辑思维。但作为一门基础课程,绝大多数高等学校都将这门课程安排在大学一年级,因此是学生所接触的第一门程序设计课程。在此阶段,多数学生特别是非计算机专业学生,对于程序设计的概念、知识还一无所知,思考和分析问题的综合能力还处于一个较低的水平。因此不少学生反映,程序设计不仅是一门难学、难懂的课程,更是一门难以应用的课程。老师和学生应如何看待现有的问题?是否该降低要求?现有的问题又该如何解决呢?

1 教学目标的制定

1.1 计算机基础教育的新阶段

我国的计算机基础教学始于20世纪80年代,是以程序设计语言、微机原理与接口技术为主要教学内容;1997年高教司颁布的155号文件中,提出了三个层次的计算机基础教学课程体系,即计算机文化基础、计算机软件技术基础、计算机硬件技术基础,使计算机基础教学步入了一个规范的、快速发展的时期[1];时至今日,155号文件中提出的目标已经基本实现,大多数高校的计算机基础教育已经有了良好基础,机构、队伍、教学条件等重要指标已明显提升。现在,我国计算机基础教学进入了一个新阶段,这个阶段的标志是:

(1)对计算机基础教育的认识趋于理性、科学,正确界定了它的作用、地位、边界和内容。

(2)起点提高,课程设置更注重知识、能力和素质培养。全社会的计算机普及高潮使得水涨船高,迫使大学的计算机基础教育向纵深发展;中小学信息技术教育的开展,提高了大学计算机基础教育的起点,为提高大学计算机基础教育的水平创造了很好的条件[2]。这一切,使高校计算机基础教育既面临严重的挑战,又面临难得的机遇。大力提高高校计算机基础教育的水平,既是需要,又有可能。

1.2 计算机基础教育要达到的效果

大学生的信息素质和能力可以归纳为三个层次:通用素质与能力、专业应用能力、研究创新能力。

通用素质与能力是指在接受高等教育之后,在信息技术方面应该具备的基本知识和能力。这是对所有大学生最基本的要求。专业应用能力是指将计算机技术作为一种基本工具,应用于本专业领域工作中的能力。不同专业对计算机应用能力有不同的要求。研究创新能力是指学生能自主学习,深入研究,努力开拓,有较强的创新意识和开发能力,能灵活自如地把计算机技术用于专业研究课题[3]。

目前计算机基础教学已经在教学理念上产生了重大的变化:通过讲课方式传授知识,在传授知识过程中培养学生技能和素质。实践证明,许多在计算机技术领域有成就的人是非计算机专业毕业的大学生。他们既具有本专业的知识,又掌握计算机技术,跨学科的人才知识面宽,富有创造精神,关键在于正确引导和培养。科学技术在加速发展,不断对教育提出新的要求,教育观念必须跟进。如果只是去适应传统世界,那就谈不上创新了。教育最重要的是要唤醒学生的力量,培养其自我性、主动性、抽象的归纳力和理解力。

2 高级语言程序设计教学的现状

2.1 教学思路中存在的问题

我国高级语言程序设计教学思路出现的问题,跟我国英语教学的思路出现的问题一样,太注重讲“语法语义”,等到真正开口讲话时却“不会说话”,等到真正要设计软件时却写不出源代码!如何处理语法规则和实际编程之间的关系,使学生迅速掌握基本的语法规则,并能熟练地应用于编程实际,是一个长期困扰教学双方的大问题。目前大多数处理方式是所谓“语法驱动”:将语法分成若干部分,按一定的顺序讲解语法,并用语法实例说明该语法规则的使用[4]。这种教法的主要优点是较“自然”。计算机语言也是一种非母语,而学习非母语必须从语法开始。缺点是使得学生“只见树木,不见森林”,学完这门课程后绝大部分学生只能勉强应付选择题,独立的编程能力几乎为零。

2.2 学生学习方法中存在的问题

高级语言程序设计通常在大学一年级时讲授。大学一年级正是学生力图适应大学学习方法的重要时刻。在中学阶段,他们被动地从教师那里得到大量的定理、定律、方法,并利用这些知识和演绎推理方法去完成教师布置的大量作业,通过大量练习加深对所学知识的理解。这种方法与程序设计技术的要求几乎是对立的。设计程序算法的本质是归纳、创新,是内省的领悟。在程序设计过程中虽然有一些带指导性、原则性的算法可供参考,但几乎不能从这些算法演绎出新的算法。如何让学生尽快摆脱旧有的学习思维习惯,尽快独立主动地学习,是提高教学效果的一个关键问题。

2.3 评价系统和考试方法中存在的问题

教学评价方法和考试制度是指挥教师上课、学生学习的一个指挥棒。很多高等院校的现状是:口头上呼吁加强学生的素质教育,提高学生的动手能力,在授课环节、答疑中采用了多媒体技术、网络技术等现代教育手段,但考试环节,仍用“一卷定终身”的书面考试形式,或是有的院校采取了上机考试的形式,但其内容仍偏重对基本语法、算法的记忆、掌握,而忽视计算机应用开发能力和思维方式的考核,导致学生为了拿到高分而背程序的现象。

3 高级语言程序设计教学的思考

3.1 将知识、能力、素质融会贯通于教学的全过程

已往的高级语言程序设计课程教学效果欠佳,是因为原来的教法是以高级语言本身为脉络展开的,过于注重语句语法,没有突出基本概念、思路和方法,难以调动学生学习的积极性。编程本身不是枯燥乏味的事情,原来的教法使学生感到乏味。让学生觉得自己只是一个被动的接受者,盲目的记忆者。怎样让学生感兴趣,怎样做才能唤醒学生的力量,提高学习的积极性,是该课程能否成功的一个关键。

程序简言之是算法+数据结构,数据是代表客观现象的抽象,最好表示成不必在普通程序设计语言中实现的抽象结构。在构造程序的过程中,随着算法的精细化,数据表示方法也逐步求精,越来越符合所使用的程序设计系统的限制[5]。算法是解决问题的方法。一个问题可以用许多不同的算法来完成,每一种算法都有其优点和缺点,必须根据具体的应用问题来衡量。

在训练之初,应以如何培养学生构造算法,编写程序的能力为目标。一个重要的方法是从许多实例中总结出基本的构成原则,并以系统的方式来展现它们。重要的一条原则就是:先思考,后编程;循序渐进,逐步过渡。

以用VB语言讲解“猜数游戏”程序设计为例,讲法如下:

程序要求:设计一个猜数游戏程序,计算机产生0~9之间的随机数,用户来猜,猜对了给出正确的信息。反之,给出错误信息。分析过程如图一所示:

通过这样的分析讲解,使学生了解程序设计的一般过程———现实中的问题是如何转化为计算机的问题,从而进一步转化为实际的程序。以后拿到问题时,知道如何入手,从何分析,逐步训练就可以提高学生分析问题、解决问题的能力。而且学生一旦掌握了算法的思想,则在学完一门程序设计语言课程后对其他程序设计语言的学习也就不觉得困难了。

当学生具备了一定的编程基础之后,第二阶段就要培养学生整体把握、系统分析的能力。此时采用任务驱动教学方法是比较合适的。具体作法是从引例引出问题,通过演示让学生先有感性认识,然后提出目标任务,再详细讲解完成任务的方法、步骤、有关规则与注意事项,最后再列举实例,完善对整体知识的理解与掌握。

比如在学习“循环”部分时,就可以通过这样一些简单的任务:“从1累加到100”、“从1累加到N”、“从N累加到100”、“10个任意数的和”、“N个任意数的和”、“超过1000时输入了几个数”等等,让学生理解循环变量的用法、控制循环的条件,什么时候用什么形式的循环等等。这种从易到难、从具体到抽象的过程体现了编程时考虑问题的方法,也容易被学生理解和接受,使学生在不知不觉中对这一类问题有了明确的认识,而不再停留在某一个具体问题上,从认识上有一个大的提高。

3.2 以强化实践作为突破口

实践环节是理性思维和理性实践的结合,程序不是听会的和看会的,而是自己通过上机练会的。上机编写程序来解决题目中的问题,体现了知识运用的综合性、灵活性与探索性。编程能力是计算思维和技能化知识的综合体现,因此,能力的提高应该是训练的结果。我们将实践环节赋予训练的含义,有目的地训练学生以下五种能力:(1)读懂题目,找到问题,并将其抽象为数学模型;(2)构思算法步骤;(3)编写程序;(4)调试程序;(5)运行程序和分析所得结果,提出改进的意见。在实际实施教学中就是以下一个三段式的过程(如图二所示)。

3.3 引入多角度评定成绩的因素,建立客观、全面的考核机制

本门课程实践性强的特征决定了它应从笔试走向机试,但现在很多大专院校采用的机试考卷仍体现不出上述的各种能力。因此为了更好地调动学生的学习积极性,真正提高学生的应用、解决实际问题的能力,我们应该引用多种因素综合评定的方法。

(1)平时作业、实验报告。实验报告是每一次做完实验后当堂上交的书面材料。从中可以检验学生在平时学习过程中对理论知识的认知程度,更真实地反映教学效果,帮助老师及时调整自己的授课策略。同时考查出学生在学习过程中自行分析问题、解决问题的能力,从而激励学生多思考、多实践,鼓励自学,减少重视期末、忽视平时;重视语法、忽视实践;重视编程、忽视调试等现象。

(2)增加课程设计做为考核的一部分。平时练习和实验,容易使学生把所学的整体的、有联系的内容分散化、条块化。课程设计使学生巩固所学知识的同时,可将分散学习的内容组织在一起,形成一个完整的学习框架,同时让学生体验系统开发的基本过程,建立“系统开发”的整体概念,这是高级语言程序设计一个很重要的思想。课程设计,不仅可以培养学生的动手能力、多人合作更可以培养团队精神。在学习和生活中都起到以点带面的作用。

4 结束语

高级语言程序设计是高等学生的必修课,它不仅培养了学生的编程能力,更培养了学生的分析问题、解决问题的能力。因此这门课程的教学要学以致用,以用导学。课堂上突出任务驱动,将传授知识为主的教学,转变为以解决问题、完成任务为主的多维互动式的教学,课堂下的实践环节要灵活多样,着眼于提高学生的兴趣与综合设计能力,让学生在一学期的学习中真正了解计算机解决问题的过程。运用科学、合理、全面的考核方式,促进学生的学习热情,促使学生掌握软件设计思想和软件开发手段。

参考文献

[1]曹蕾,吕庆文,张煜,周猛.大学计算机基础课程教学改革的调查与设想[J].计算机教育,2007(,12).

[2]赵志敏.高校计算机基础教育现状与发展对策研究[D].沆南:山东师范大学,2008.

[3]张道好.“C语言程序设计”课程教学方法的研究与实践[J].安庆师范学院学报(自然科学版),2008,(04).

[4]宁雪静,沈泽刚.高级语言程序设计课程整合研究[J].计算机教育,2009,(02).

上一篇:市场营销专业毕业生调查问卷下一篇:人力资源管理公开课