省级精品开放课程推荐表

 

所 属 学 校  合肥学院

项目建设类型  √精品资源共享课   精品视频公开课

大规模在线开放课程(MOOC)示范项目

推 荐 形 式   选题    √课程

选题/课程名称  面向过程的程序设计

所 属 学 科    计算机公共基础

      课程负责人      李祎

      申 报 日 期    2016.9.3

      推 荐 单 位    合肥学院电子系

 

 

 

 

安徽省教育厅制

20168

 

 

 

填 写 要 求

 

1.表格文本中外文名词第一次出现时,要写清全称和缩写,再次出

现时可以使用缩写。

2.本表栏目未涵盖的内容,需要说明的,请在说明栏中注明。

3.如表格篇幅不够,可另附纸。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.课程负责人情况

1-1

基本

信息

 

李祎

 

出生年月

1969.6

 

研究生

 

理学士

 

13866149464

专业技

术职务

副教授

行 政

职 务

 

 

 

 

电子与电气工程系

E-mail

liyi@hfuu.edu.cn

 

合肥学院电子系

 

230061

是否本校

专任教师

(若否,请注明受聘教师类别及实际工作单位)

1-2

 

授课

情况

课程名称

课程类别

授课对象

周学时

听众数/

面向过程的程序设计

公共基础

电子系

6

90

VC与数据库编程技术

专业选修

电子系

6

90

数据结构

专业选修

电子系

6

90

j2me网络编程技术

专业选修

电子系

6

90

java网络编程技术

专业基础

电子系

6

135

计算机基础实训

公共基础

电子系

6

90

计算机辅助分析

公共基础

电子系

4

90

1-3

 

教学

研究

情况

主持的教学研究课题(含课题名称、来源、年限)(不超过五项);作为第一署名人在国内外公开发行的刊物上发表的教学研究论文(含题目、刊物名称、时间)(不超过十项);获得的教学表彰/奖励(不超过五项)。

主要研究课题

1)申请主持了2006合肥学院教研项目:《大类招生下计算机能力培养体系研究》(700625

2)申请主持了2010合肥学院教研项目:《以能力为导向的“计算机基础实训”课程模块化改革体系实践与完善》(2010jyyb10

 

教学研究论文

[1]李祎.AUTHORWARE出简答题[J].电脑知识技术,2002,8:34-36

[2]李祎.COM的实现和应用[J].安徽水利水电学院学报,2003,3(3):54-57

[3]李祎.XTRAS与多媒体环境的融合[J].微电子学与计算机,2005,22(3):242-245

[4]李祎.网上学习与学校课程的整合[J].中专天地,2002,12:58-59

[5]李祎.一节有趣的情景教学课[J].安徽教育科研,2002,7:17-18

[6]李祎.电子信息专业学生计算机能力培养体系构建研究[J].合肥学院学报,200717(3):79-81

教学表彰/奖励

1)在《计算机实训》课程教学中,自创“基于建构主义理论下的引导自合型教学模式”获得合肥学院教学成果2等奖(独立)

2)在《高级语言程序设计A》课程教学中,自创“学思行三位一体教学模式”,并获得合肥学院教学成果2等奖(独立)。

1-4

 

学术

研究

情况

近五年来承担的学术研究课题(含课题名称、来源、年限、本人所起作用)(不超过五项);在国内外公开发行刊物上发表的学术论文(含题目、刊物名称、署名次序与时间)(不超过五项);获得的学术研究表彰/奖励(含奖项名称、授予单位、署名次序、时间)(不超过五项)。

 

公开发行刊物上发表的学术论文

[1]李祎.基于RED的接纳控制算法[J].合肥工业大学学报,2005,28(5):481-485

[2]李祎.积件技术实践与研究[J].电化教育研究,2005,12:74-77

[3]李祎. AUTHORWARE深度学习[J].电化教育研究,2003,专辑:77-80

公开发行的著作

[1]李祎著.c/c++程序设计简明教程》,2015.3.共计100万字

 

2.其他主讲教师情况

姓名

出生年月

专业技术职务

行政职务

从事学科

承担课时

备注

方小红

1962.8

讲师

 

计算机

x*80

x是班级数

李伟

1979.7

讲师

 

计算机

x*80

商务印刷学院

秦学永

1971,2

副教授

 

计算机

x*80

建工大学

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注:若其他主讲教师非本校教师,请在备注栏填写受聘教师类别及实际工作单位。

 

 

 

 

3.课程情况

3-1 课程概况

课程名称

面向过程的程序设计

讲授节数

48

预  计

总 学 时

80

预计总时长

10*45(分钟)

序号

专题标题

时长

主讲教师

关键词

1

模型模块

45分钟

李祎

模型模块

2

调试技术

45分钟

李祎

调试技术

3

高级数据类型

45分钟

李祎

高级数据类型

4

低级数据类型

45分钟

李祎

低级数据类型

5

结构编程之顺序选择

45分钟

李祎

结构编程之顺序选择

6

结构编程之循环

45分钟

李祎

结构编程之循环

7

数组

45分钟

李祎

数组

8

字符串

45分钟

李祎

字符串

9

结构体

45分钟

李祎

结构体

10

流操作

45分钟

李祎

流操作

 

 

 

 

 

3-2 课程描述

3-1 课程建设基础(目前本课程的开设情况,开设时间、年限、授课对象、授课人数,以及相关视频情况和面向社会的开放情况)

1本课程开设情况:

1)课程性质

本课程是电类专业及相关专业(计算机)专业的一门基础课程,它是编程基础课程,国内所有校理工专业均开设类似课程,该课程学习为后续多门课程的基础课程,如对于电类专业的微处理器技术、嵌入式系统设计、工具软件、计算机控制系统等课程,如对于计算机专业的面向对象编程,数据结构,数据库理论,网络编程等课程。

2)课程教学普遍存在情况

该课程,通过我们的调研,各高校教学结果不乐观:课程结束后,不少学生不会编程,不知编程何用,部分学生开时有些兴趣,后来太难放弃学习,教师和学生均无力无助。直到现在,这种状况并没有很大改变。

具体原因是什么呢?当我们无论如何努力都无法改变现状的时候,我们有理由怀疑:本课程的系统结构出了问题,同样的元素,但采用不同的结构,导致的性质可能截然相反。

(3)课程研究与探索

经过长达8年的研究与探索,我们发现课程的内在特征与规律,提出重新解构课程的教学模式,教学内容等,并编写教材100万字左右。采用新的教学内容和模式展开教学,并与平行班进行实验对比,发现学生编程能力得到很大提升。

 

2本课程开设时间、年限、授课对象、人数:大一下学期

本课程在合肥学院电子与电气工程系开时间等如下:

开设时间:大一下学期

年限:一个学期,80学时

授课对象:大一新生

人数:10个专业班级

 

3-2课程内容安排(课程完整教学内容简介、章节课时安排、每课时教学内容概述等)

 

1内容简介:

通过本课程教学,要求掌握面向过程的设计思想,初步培养学生的建模能力、调试能力、规范编程能力、合作编程能力、程序阅读能力等,在基于理解问题环境(自然环境、工程环境)的前提下,使用计算机语言的基本语法表达并初步实现(设计和实施简单软件工程实验项目和实战项目)。同时培养学生认真的学习态度,严谨、细致的学习作风,以及自主学习的学习习惯。本模块输出的知识和能力,为后续课程微处理器技术、嵌入式系统设计、工具软件、计算机控制系统模块提供支撑。

 

2章节课时安排及内容概述如下:

面向过程课程包括3个单元:模型模块和基本数据(4),结构编程(共2章),构造类型(共4章)。整个课程教学内容以“思想方法和途径”为核心、以“函数和指针”为主线,以“规范”为前提,以“解决实际问题”为目标安排教学内容。所有案例均设计建模,通过规范、明晰、可控步骤,切实体现和落实“思想方法和途径”;其中“函数”并不独立成章,而是分散在各章,以期在不同知识背景和应用环境不断揭示函数本质和变换应用,逐步切实有效地认识编程思想和培养编程能力;而“指针”由于其原子类型特性,安排在基础类型之后,不仅可客观从内外两个方面认识变量(对象),还避免传统教材安排在数组之后,无法准确理解数组传递地尴尬;“规范”不仅仅指命名方式、书写格式,更重要是指问题分析与解决的整套流程规范规律;书中大多案例的出现,不是概念的体现,而是基于“实际问题”的需要,比如储蓄问题、城市气温统计、声音处理、单片机信号处理、智能IC卡处理、成绩管理系统等,尤其是成绩管理系统,在不断的应用要求下,反复提升实现内涵。

3具体章节的主要学习内容及相互联系如下(每章4课时理论教学):

(1)解决问题的思路与最基本的程序设计(结构化编程思想,模型模块,函数的封闭性)。

(2)程序调试技术(函数的使用环境,出错调试处理,函数间的联系)。

(3)基本的数据类型(如整型数,从内部看最单纯的数据及其保存,函数的基本使用)。

(4)低级的数据类型(如指针,从外部看最单纯的数据及其保存,函数的基本使用)。

(5)(6)结构化程序设计的三种结构(基本和低级数据类型应用,函数的较熟练使用)。

(7)构造的数据类型:数组(函数的高级使用,传递数组与数组指针)。

(8)构造的数据类型:字符串(函数的高级使用,传递字符串与字符串列表)。

(9)构造的数据类型:结构体(函数的高级使用,传递结构体与结构体数组)。

(10)构造的数据类型:文件(函数的高级使用,函数的本质及可用函数资源)。

 

3-3课程预期受众的定位与目标

本课程主要用于高校计算机语言课程的教学改革与实践,成果推广将对于高校教师对计算机语言课程的教学内容甄选和教学方法的提升有一个极大的推动作用,另外课程教学将直接帮助学生对计算机基础课程的掌握,和计算机编程能力的有效提高。

 

目前在合肥学院电子系各届(10个班)均采用本课程教学(包括其中的教学内容和方法),学生编程能力有较大提升,与课程以前的教学比较,采用“学思行”模式后,本课程教学后,学生可以以合作编程方式,编写1000行左右的代码。

 

3-4相关教学资源储备情况(包括但不限于录像储备)

1100万字的专著《c/c++程序设计简明教程》,安徽省十二五规划教材

2)教学大纲、模块说明文档

3)特色考核方式文档

4)学生大作业报告文档

5)学生学习注册系统

6)学生学习考核系统(待建)

7)录像资源(待建)

8)课程网站(http://zlgc.hfuu.edu.cn/jpkc/2016/ly/index.htm

 

4.评价反馈

4-1 自我评价(本课程的主要特色介绍、影响力分析,国内外同类课程比较)

1本课程主要特色介绍

本课程从以下5个方面进行了解构,提出了创新性的解决思路,国内外无同类思想或语言描述,具体如下:

1)体现编程思想(世界观)->方法(方法论)->规范、规则的统一核心思想。

体现思想不是本课程的噱头,而是核心。学习知识为求道,求道是为了更好的服务自身与社会,离开了这点学习死知识没有任何价值。但寻道是有规律的。在课程中,我们不仅要展示出在解决将现实世界问题转化成计算机世界的问题过程中,人们认识表达的不断反复、逐步深化的道,还要告之解道的方法、解道的技术。这也就是课程通篇所表现的“面向过程、面向对象”的世界观,有助于理解与合作“环境建模”方法论和经常出现在教学中类似于 “门当户对、抛绣球、芝麻开门” 这种形象化表达方式的语法应用规则。这些思想、思路、步骤的完整融合是创新价值之所在。

 

2)独立创新的知识体系结构。

基于对多所大学的调研,发现对“面向过程的程序设计”(各校的课程名可能有区别,大都称为c/c++程序设计)课程的教学知识体系都是以专家认可的难易程度来解构知识的逻辑顺序,“指针”、“函数”、“文件”这些承载面向过程、面向对象思想的概念由于看起来相对较“难”,所以安排在教学最后,待将C/C++语言的基础语法等基础打牢之后,才能讲述。我们认为这种认知是错误的,它严重地损害了对这门基础学科的本质、精髓的认识和掌握,人为地造成了学生学习的片面性、局限性、抽象性,甚至客观地造成知识传授的不严谨,以致无法正常教学。

如,所有教材“数组”之后才出现“指针”,但“数组”作为函数的参数进行传递,其实质就是“指针”在传递,如果这点不讲清楚,就会发生认知上无法克服的困惑,本来是正确的知识,可在学生眼里就会直观地看到错误的现象:错一,形参可以是常量;错二,一个模块可以方便地修改另一个模块里的内容。事实上,由于在知识体系的认识上的偏颇,上述的错误将无法避免,学生的认识将反复地出错,失去信心甚至放弃。

经过详细地研究和分析,我们提出新的知识传授体系结构:基于对现实问题域的分析提出模型/模块设计,将函数/文件纳入模型/模块并从课程开始引入,在不断的问题需求中逐步加深对函数/文件各层面的认识,直到课程结束。

另外,在基本的数据类型之后展开指针教学,将数据和数据地址作为一个事物的不可分隔的内因和外因同步引入,顺应了科学的认知结构,也为数组、字符中、结构体等构造类型的教学提供了强有力的基础。这种结构完美地解决原来的诸多瓶颈,经过实践检验证明这种结构科学有效力。

 

3)体现内容与教学方法的统一。

在教学内容的编排上体现“学思行三位一体”的教学方法。每个章节不仅有理论教学内容,还有思维训练和实验,其中思维训练是从理论到实践实验的一个中间过渡环节。思维训练题从内容的编排上有同型题、变式题、提高题、综合题;而思维训练课的形式是以学生上讲台答辩、讨论、交流为主。从认知心理学的角度来看,这一切都是为了促使陈述性知识向程序性知识转化。教材的很多内容与思维训练手册中的训练是对应的。

 

4)结构的本土特色。

以人为本也应该是教学内容呈现的原则。中国人的文化符号是水,中国的文字、书法、绘画、经义讲究的是润,中国人的意象很大程度来来源于悟,课程教学如果仅采取案例式,或者经验式就不符合中国学生的特点。但一味地追求纯粹的知识结构就会丧失这门课程注重实验的特点。

综合中国学生的认知特点和本学科的特点,课程教学进行了如下设计:第一,按知识结构章节划分而不完全按案例进行授课;第二,章节中知识点的划分不纯粹按所谓的专家定义难度等级,而按照知识探索的规律,按学生认知的思维递进;第三,提出一个典型案例,在不同的知识阶段实现不同的功能,而同时提出使用的局限,自然促使学生对知识结构的不满,进而提出解决问题的新途径和新方法,最后实现功能完善系统。

 

5)教学内容背景的扩展性。

扩展性是为了更好地体现理论与实践的统一,不是为学语言而学语言,需扩大知识面,不应局限于纯粹的编程语言环境,适当地引用具体的应用背景,比如说,图像的知识及处理,声音的知识及处理,甚至是嵌入式的一些知识与处理,这些知识的引入不仅拓展了同学们的视野,同时也给同学们一个切实的应用环境体验。当然,为了这种扩展,适时地简要引入了分析软件如MATLAB,引入了作图软件如VISIO,这些知识在我们来看,跟C/C++语言本身一样重要。

   

2影响力分析

本课程,从头至尾秉承“自顶而下、逐步求精、模块设计、结构编程”面向过程思想,将C/C++结合讲解,不仅因为这两种语言的应用环境决定了学习的必要性,更重要的是,据此可更加清晰地展示不同的程序设计思想、表达方法,以及它们之间完美地结合。

反复地剖析思想,并将思想、方法以科学的步骤表达出来是本课程教学(教材编写)的最大主旨。课程学习的目的是编写规范易懂的程序帮助我们认识世界,解构世界,而非手工作坊式的求新求异;不是让你掌握多少精妙的技巧从而编写出优美的程序,而是让你能够编写出程序,能够编写规范的程序,能够解决基本问题,不是求巧,而是求真、求实、求拙。

 

课程教学有力地推动学生编程能力的提升,对国内其他高校该课程教学提供一个较好的参考,就是不为语言而语言,而是为了解决问题,探索问题解决的标准思路和步骤(建立模型)。

课程教学对学生的工作、生活、学习均有指导作用。

                        

3国内外同类课程比较            

本课程教学结构、教学方法、内容呈现等,国内外类似课程均没有体现。

国内该课程教学的特点:

优点:结构清楚,程序简练,文字通畅。

不足:无法培养一个优秀的编程人员,没有思想,没有模式,没有习惯,陷于语法规则之中,国内课程采用大多数教材可以定性为考试的参考书或者某门语言的使用指南,提供的案例是为了验证语法,而不是反过来,学习的知识去解决问题。

 

国外该课程教学的特点

优点:思想性较好,探讨的一些题目也比较有趣味。

不足:西方人的特征明显,描述问题的本身带有强烈的个人口吻和经验,这里面,我们大多忽视了一点,那就是西方人的语言和行为习惯在他们编写程序里所体现的先天优势,这对于他们不存在问题,但对于我们是一个问题。国外该课程所采用的教材里有相当一部分是案例式教学,这种教材的编写结构不符合中国学生的特点,这种案例是信手拿来,而不是来源于一个体系,西方人是做后发现规律,而我们认为国人是思和行相合效率最高、用处更大。

 

本课程教学,结合国内外教材优点,着重推行核心思想:世界观-方法论-规则完整体现,教材的结构、知识点的安排与现行的所有教材都不太相同,在教材里反映教学方法和学习方法,反复地体现思维的提升和程序代码的复用等等。

4-2 学生评价(如果本课程已经面向学生开设,填写学生的评价意见)

总的来说,大部分学生是认可这门课程,给他们带来学业的进步,以及认识方法上的提高,主要体现在以下几个方面。

1)能够编程一个简单的系统,编程能力有较大提升。

2)老师非常负责,能够脱稿讲课。

3)教学方法新颖,学思行教学方法不错。

 

具体学生评价意见如下(摘选,详细见大作业部分)

学生:廖**的心得:

感受到了C语言的有趣,同时也了解到团队之间相互合作的重要性,一个人的能力是有限的,只要大家团结一致,无论再大的困难都能得到解决。在日常的学习中,我从教材中得到的知识很多,教材的内容很全面,是一本很好的教材。感觉老师在日常的教学中给了我们很大的压力,使我们喘不过气,也给自己带来了很大的压力。

学生:唐**的心得:

通过这学期的学习我认识到了分模块做事的重要性,在编写代码时学会分模块做事,这是老师每次都会提到的问题,就像在生活中一样,做任何事都要分步去做,才能做好,C语言的学习不仅让我们学会了编程,还让我们学会了如何做人做事;C语言课程是一门实践性很强的课程,一定要动手多写设计、编写程序才能有所进步。还有学习C语言一定要有耐心,并能够坚持下去,才能够学好它,坚持是学好任何事的基础。

学生:朱**的心得:

教材的编写最大的优点就是前后贯穿、链接紧密,整本书前后都贯穿着面对过程的编程思想,这是其他书没有的。不仅仅是编程思想,每一章的知识点连接的也非常紧密。但是对于零基础和对语言学习不敏感的同学自学有困难。c++中每一章都有很多知识要理解,说实话,我很欣赏老师你的教学风格, 老师对学生的要求应该是大学老师为数不多的,这种要求是很好的。很负责的表现,真心觉得不错,严师出高徒。

学生:熊**的心得:

在对这学期的总结前,真的相对您说一句:老师,您辛苦了!您对我们很严,是因为你是一位认真负责的老师,这是为我们好!要我们精益求精,在编程过程中,严格要求自己,培养好的编程习惯。这些都是我以后人生路上一笔用不完的财富。说实话,完成每周的实验报告,有时候,我都没有认真的去对待,都是抱了别人的“大腿”。对此,真的觉得很对不起您。在接下来的时间里,我会好好复习,争取在期末考试中取得理想的成绩。

对于您,我真的很敬佩!因为在上您的课时,没看见过您拿着书教我们,都是“裸教”。这说明您对这门学科的熟悉与理解让我们望其项背。所以真的没什么建议给您。最后在此,希望您生活快乐,身体健康,万事如意!!!

学生:王**的心得

C语言这门课和别的课有很大的不同,一周三节课,每节课都有不同的内容,每次的答辩和上机实验报告都需要在课前做大量的准备,而这学期的课程也很多,再加上老师对我们的要求十分严格,所以这学期真的很累。但收获也是巨大的,经过了三个月的学习,伴随着老师的严格要求,刚开始什么都不懂的我,也能写出来一行行代码,按照老师的要求完成一个个的程序,最后和同学们一起完成一个大的图书管理系统,这在我以前来说是不可能的,还记得老师第一节课上说最后我们要完成一个图书价格管理系统时,满脑子想的是不可能,而现在,看着自己敲出来的一行行代码,成功运行的一个个程序,一股自豪感油然而生,这学期的学期,老师严谨的教学态度,对我们的严格要求,同学们合作编程时的场景历历在目,一学期下来,收获了很多,真的是受益匪浅。

 

4-3 社会评价(如果本课程已经全部或部分向社会开放,请填写有关人员的评价)

 

 

 

 

 

 

 

 

5.技术支持

5-1

技术

负责

人情

 

 

 

 

出生年月

 

 

 

 

 

 

 

专业技

术职务

 

行 政

职 务

 

 

 

单 位

 

E-mail

 

 

 

 

 

主要工作经历

 

 

 

 

 

 

5-2 技术支持队伍(包括脚本设计、摄像、编辑制作、英文字幕等)

姓名

年龄

单位(部门)

学科

分工

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5-3技术条件

(学校拍摄视频场地及设备、后期制作设备等,以及以往视频课程制作经历。如果委托其他公司拍摄制作请填写其有关情况)

 

 

 

6.建设措施(学校的支持政策与措施)

 

 

 

 

 

 

7.学校教学(指导)委员会意见

 

 

 

 

 

(盖 章)       主任签字:

              

      

8.推荐单位意见

 

 

 

推 荐 单 位(公章)

推荐单位主管领导(签字)               

           

9. 评审意见

 

 

 

 

 

签章