精品课程点击排行榜  >>  计算机程序设计
课程简介 教师队伍  

■ 课程简介
课程名称: 计算机程序设计 一级学科:  08 工学
二级学科: 0806 电气信息类 教学层次:  本科
负责教师: 冯博琴 学校名称:  西安交通大学
院系名称:   申报状态:  已获奖
申报级别: 国家级 申报文件下载:  无下载文件
获奖名称: 获奖年度:  2006
主页地址: http://202.117.35.163 是否交换: 
浏览次数: 5650 网上评论:  没有相关评论
课程介绍:

计算机程序设计”作为大学计算机基础教学系列中的核心课程,是高等学校非计算机专业学生(特别是理工类)的必修课程。主要讲授程序设计语言的基本知识和程序设计的方法与技术,其内容以程序设计语言的语法知识和程序设计技术的基本方法为主,同时包括程序设计方法学、数据结构与算法基础等方面的初步内容。
课程目标是要让学生掌握正确的程序设计方法与思路,具备初步的应用程序开发能力,为后续课程的学习创造条件。
4-2-2知识模块顺序及对应的学时
在内容体系上,分为16个大的知识大类(每个大类对应4个学时),每个知识大类又分为若干个知识点,为保证分类分层次教学模式,又将这些知识点分为基础、中级、高级等不同的类,如下表所示:
表 1主要知识点
知识大类
主要知识点
A 语言简介
A1基本要素和结构
A2算法与程序
A3用C++解块实际问题的步骤
B 控制结构
B1概述
B2“自顶向下,逐步求精”的程序设计方法
B3控制结构
B4 循环的嵌套
C 基本数据类型
C1数据类型
C2常量
C3变量
C4枚举类型
C5类型的修饰符
D 数组与结构体
D1数组
D2字符型数组
D3字符串处理库函数
D4结构体类型。
D5结构体的嵌套
E 表达式
E1运算符和表达式
E2表达式中各运算符的运算顺序
E3类型不同的数据之间的混合算术运算
E4名字空间
F 函 数
F1函数的定义
F2函数的调用
F3函数原型
F4参数传递
F5局部变量和全局变量
G 指针
G1地址和指针
G2指针运算
G3指针与数组
G4动态存储分配
G5指针数组
H 函数与指针
H1递归函数
H2函数重载
H3指针和函数
H4 带参数main()函数
H5内联函数
I 类和对象
I1面向对象程序设计
I2类与对象
I3构造函数与析构函数
I4数据成员的初始化
I5对象与指针
J 继承
J1基类与派生类
J2派生类的继承方式
J3构造函数和析构函数
J4 this指针
J5显示访问基类成员
K 多态性
K1概述
K2派生类对象替换基类对象
K3虚函数
K4抽象类
K5运算符重载
L 模板与异常处理
L1模板
L2异常处理机制
L3友元
M 标准库和输入输出流
M1标准库概述
M2流
M3输入输出流
M4格式化I/O
M5文件处理
N 线性表
N1线性表
N2顺序表类
N3链表类
O 查找和排序
O1查找
O2哈希查找
O3排序
P 数值计算
P1多项式的计算
P2多元一次代数方程组的求根计算
P3求逆矩阵
P4积分计算
图例
基本内容
中级内容
高级内容
难点
根据我校学科设置及各学院需求,“计算机程序设计”课程分为三大类进行教学:
1)人文类----包括人文学院、公共政策与管理学院
2)管理医学类----管理学院、医学院和经济与金融学院
3)理工类----除了人文类和管理医学类所包含学院的其它学院
其对应的总学时数分别为48、56和64,相应的课堂教学和实践教学内容以及教学基本要求都有较大区别。
所有的教学内容深刻体现了“精讲多练”的教学模式。学生上机实践的学时占整个计划学时的一半,从而可以通过大量的编程实践来提高学生的编程能力。
在每个教学单元中,都突出一个明确的主题,围绕该主题组织相关的知识点。在实际授课时,重点讲述本单元教学内容的核心概念和重要知识点;指导学生自学本单元的其余知识点。学生通过听课、自学和上机实践三个紧密结合的教学环节,充分掌握和领会知识点与技能点。
4-2-3课程的重点、难点及解决办法
“计算机程序设计”课程重点是三个知识大类内容:1)C++编程的基本内容,包括控制结构、基本数据类型、表达式、函数,指针和引用;2)面向对象程序设计的基础理论,包括类与对象、继承和多态性等以及C++的标准库;3)数据结构与算法,介绍基本数据结构和数值计算方法等内容。这三个大的重点,是根据非计算机专业学生今后学习和发展的实际需要所确定的,可以使学生掌握使用C++设计应用程序的基本技能,了解面向对象和结构化程序设计的方法,能够编写、调试和运行实用、规范、可读性好的C++程序。
课程教学难点主要是:
◆ 学生学习方法和态度没有转变,习惯于教师填鸭式教学,不重视动手编程训练,如何引导学生到能力培养上来?
◆ ??? 学生计算机水平差异较大,兴趣也有所不同,以什么尺度进行教学,从而兼顾全班学生?
◆???? 课程内容宽泛,学时有限,如何深入浅出开展教学?
解决办法:
针对这些问题,早在上世纪末,冯博琴教授及其课程组基于计算机程序设计课程的教学改革经验创造性的提出了“精讲多练”的教学理念,解决了计算机基础教学的诸多难题,在全国计算机基础教学中产生了重大影响。我们的主要做法是:
(1)??????? 在教学上,要求教师“精讲”,重点讲述每个教学单元内容的核心概念和重要知识点,强调要讲精讲透;而对于那些对授课内容部分起补充扩展作用的“自学内容”部分,通过在授课时间中抽出5~10分钟略作导引,由学生在课外时间自学。这样可以使学生很快对程序设计有一个比较全面的认识,帮助他们构建起一个完整的程序设计知识体系框架。同时,为保证教学效果,我们在教学方式上既坚持传统教学方法(即多媒体课堂面授,充分的上机实验课,专人指导答疑等),还充分利用现代教育技术(即网络教学平台)。我们开发了全部课程的网络课件、视频点播,实现了作业的电子化,网上的答疑系统也使学生可以随时随地答疑解惑。
(2)??????? 对学生不仅要强调理论学习,更加要强调“多练”,鼓励他们多上机练习,教育学生认识到“学好程序设计语言的最佳途径是上机练习,你编程能力与你在计算机上投入的时间成正比”。我们采取了1:1配套学时的方法,即在本课程总学时中,拿出一半作为实验上机,通过大量的例题、习题,强调动手编程能力的培养。同时,为鼓励那些确实对程序设计感兴趣的同学的学习积极性,我们开展了学生创新活动,通过几个开放性的项目,培养了这些学生开发小型软件的能力,也带动了其他学生的学习热情。
(3)??????? 考试机制是决定“精讲多练”教学模式成败的重要一环,它是学生如何学习课程的指挥棒。以选择题为主的客观性考试方法虽然操作方便,教师阅卷工作量小,但容易导致“应试教育”和“应试学习”;而就程序设计类课程而言,传统的笔试也很难真正考出学生的实际编程水平。在另一方面,如何能够使考试本身成为促进学生进一步思考、学习的过程,才是我们培养人才的目标。因此,我们抛弃了传统的考试模式,采用直接上机编程的考核方法。这种考试对学生的压力是非常大,如果他平时不抓紧上机编程,考前突击看书根本无法通过考试。同时,这也要求我们教师平常要切实加强各个教学环节,加大上机辅导力度,及时了解学生学习进度,加强作业要求和反馈,从而使学生真正了解概念、体会要素、掌握编程。
实践证明,采用“精讲多练”模式进行计算机程序设计语言的教学组织,可以取得很好的教学效果。
?
4-2-4实践教学的设计思想与效果(不含实践教学内容的课程不填)
由于程序设计语言必须通过实践才能掌握,简单的听课达到好的教学效果,所以实践教学一直是本课程的重点。从实际应用角度讲解程序设计语言也是这门课程的主要特色。
本课程实验分为三个层次(实验内容见表2):
????????? 第一层次是基本技能训练,主要针对48、56等学时比较少的学生,通过16个基本实验,目标是培养学生掌握正确的程序设计方法与思路,具备一般的编程求解能力。
????????? 第二层次是中级技能训练,面向64学时以上学生,除了16个基本实验以外,还设计了31个选做实验,目标除了基本的技能训练以外,还包括程序设计方法学、数据结构与算法基础等方面的初步内容的训练,使之具备初步的应用程序开发基础。
????????? 第三层次是高级技能训练,面向学有余力的优秀学生,培养他们的创新精神和动手能力。对他们的教学主要采用讨论式教学,并专门设计了30个开放性实验。
表 2 主要技能点
目的
技能和实验
面向过程的程序设计
C++集成开发环境
选择和循环结构程序设计
数据类型及其运算
数组和结构体程序设计
表达式
函数
指针
指针和函数
输入/输出流
标准库概述
输入/输出流
文件处理
面向对象的程序设计
类和对象
继承
多态性
模板与异常处理
算法和程序设计
线性表
查找和排序
数值计算
创新活动
算法编程
可视化程序设计
游戏编程
动画设计
图例
基本内容
中级内容
高级内容
难点
在具体的执行中,对于大部分的学生,突出第一、二层次的教学,通过多讲例题,多做练习,并以上机考试的“考试指挥棒”引导和督促学生平时多编程,编好程,使其掌握程序设计的基础知识和基本编程技术;对于学有余力和爱好编程的学生(一般占总学生人数的20%~30%)可以是在此基础上,通过开放性创新活动,培养开发小型软件的能力。同时我们通过组织西安交通大学本科生程序设计竞赛、选拔计算机ACM竞赛的参赛选手、协助学生计算机协会的课外活动及科研训练等形式在全校营造出一个火热的计算机编程氛围。
经过这些不同方式和类型的实践环节,使学生得到了锻炼,提高了实际编程能力;尤其那些参加创新活动的同学,不但提高了他们自己的学习兴趣,培养了问题求解和编程能力,也带动了周围一些水平较低的学生学习。结果是教学效果提高了、综合应用能力提高了,课程及格率自然也提高了。
?
?
4-3教学条件(含教材使用与建设;促进学生主动学习的扩充性资料使用情况;配套实验教材的教学效果;实践性教学环境;网络教学环境)
???
1.教材使用与建设
教材建设是整个课程建设的核心工作。本课程一直使用自编教材,自1993年以来,教材建设紧跟计算机科学快速发展的步伐,突出“精讲多练”的教学方针。具有以下特点:
◆更新快———及时跟踪计算机技术三次升级换代,每四年更新教材的内容;
◆种类全———配有实验指导、习题集和数字教案、课件;
◆改革深———教材内容和结构充分体现不同时期改革成果;
◆应用广———不同时期教材不仅供我校学生使用,许多兄弟院校也使用我们的教材。
出版的教材清单如下:
3)??????? 《大学C++程序设计教程》,罗建军、朱丹军、顾刚、刘路放,高等教育出版社,2004(西安交通大学十五规划教材)
4)??????? 《大学C++程序设计教程—习题解答、上机指导和案例分析》,朱丹军、罗建军、卫颜俊,高等教育出版社,2005
5)??????? 《大学Visual C++案例教程》,罗建军、崔舒宁、杨琦,高等教育出版社 2004
6)??????? 《Visual C++与面向对向程序设计》,刘路放,高等教育出版社 2000
7)??????? 《Visual C++与面向对向程序设计》(第2版)吕军、杨琦、罗建军、刘路放,高等教育出版社,2003 (国家级十一五规划教材)
8)??????? 《精讲多练C语言》,冯博琴、刘路放,西安交通大学出版社,1997 (全国电子信息类专业九五规划教材,西安交通大学优秀教材一等奖)
9)??????? 《精讲多练C语言》,(第2版)冯博琴、刘路放、杨琦、顾刚,西安交通大学出版社,2004
10)???? 《C语言程序设计》(修订本),齐勇、冯博琴、王建仁,西安交通大学出版社,1999
11)???? 《C语言的窗口式图形界面设计》,刘路放,西安交通大学出版社,1996
12)???? 《C语言学习指南》,冯博琴,机械工业出版社,1996
13)???? 《C语言的汉字处理与图文数据库技术》,刘路放,西安交通大学出版社,1995
14)???? 《C语言指南》,冯博琴、邹敏、张淑珍,电子工业出版社,1994
15)???? 《C语言程序设计》,齐勇、冯博琴、王建仁,西安交通大学出版社,1993
2.扩充性资料使用情况及配套教材的效果
1)??????? 配合大面积C++教学,编写了与主教材配套的《大学C++程序设计教程—习题解答、上机指导和案例分析》;
2)??????? 为帮助学生设计大型程序,编写并出版了《大学Visual C++案例教程》,采用案例教学形式系统的介绍了综合程序的开发方法。
3)??????? 通过精品课程网站的建设,公布教学大纲、教学进度表、网络课件和多媒体电子教案,提供一些经典的程序设计范例以及有关的国内外学习站点的链接等材料。
3.实践性教学环境
1)实验教学环境配置: 中心拥有 700 余台套的各类计算机设备、服务器(包括 Window NT 、NetWare及 Linux操作系统平台)并构成高速局域网与校园网联接,学生可以通过网络获取课程学习各环节的基本资源,以及进行实验报告和作业的撰写和提交等。
2)网络硬件支持环境:由三台服务器构成的专用的服务器群,为全校(东西校区)所有学习课程的学生提供实验平台;主服务器为学生提供交互式自主学习环境;作业服务器供学生上传作业、实验报告并查看批改结果;NT服务器分别用于学生日常教学资料的下载和课程考试。
这些服务器和多媒体实验机房、创新实验机房通过100M校园网入口相连,为学生学习进行课程学习、网络基本应用实验和电子化作业的传送提供了良好的环境和可靠的保证。
3)多媒体教学环境:在主机房(含有128台机器)配备了投影设备,352台计算机配有便于学生视听的耳机前插孔;主机房一侧设有一机多终端(30台显示终端)的辅助教室,可直观地进行教学和答疑演示。利用多媒体网络辅助实验教学,充分发挥了多媒体和网络作为教学手段的优势。
4.网络教学环境
多年来课程组在网络教学环境建设与应用方面做了大量工作,已建成计算机网络教学大环境,它由丰富教学资源和计算机网络辅助教学平台构成。
自课程开设以来,除了教学内容不断变化以外,同时不断吸纳新的现代教育技术,改进传统教学模式。自主制作各个时期的多媒体视频课件和其他教学资源列表如下:
序号
资源类型
容量
1
多媒体课件
16章
2
网络课件
320M
3
课程录像
3G
4
源代码库
46.8M
5
试题库
510道编程题
6
案例库
93个案例
这些资源极大的丰富了教学内容,并与贯串于整个教学过程的网络辅助教学平台相辅相成,极大的促进了教学质量的提高。
网络辅助教学平台是我们从1999年起开发建设,它实现了学习、答疑、作业和考试等各个教学环节的网络化,教师和学生可以很方便的利用该平台完成所有教学活动,该系统包括:
4)??????? “计算机程序设计”课程教学网站http://202.117.35.163,其基本功能有:
a)? 公开教学承诺和教学计划。在中心网站上开设程序设计专栏,及时发布相关教学信息(教学计划、课程大纲、课程教学承诺等)、课程信息(使用教材、答疑信箱等)、考试信息等,方便教师及学生查阅、安排教学。
b)? 学生多媒体学习系统。集中了自行开发研制的多媒体网络课件,学生可以在线浏览学习,也可以下载使用。同时,通过教师链接,学生可以很方便的找到教师个人教学网站,及时了解本课程最新学习情况。
c)? 教师授课录像点播系统。将优秀教师上课的全部内容制作成可在网上播放的视频点播课件(目前已经有超过3G的录像,并在不断增加),供学生自由选学。
d)? 网上答疑辅导。在网上讨论答疑室安排有专职主讲老师在规定的时间内在网上答疑(目前已经有超过4000条答疑,并随着教学过程在不断增加)。对共性问题、典型疑问则可能被收录到答疑系统的精华区。网上答疑不能代替面授答疑。本课程将所有主讲教师统一安排,面向全校学生答疑。这样学生每周答疑时间由原来的一次增加到三次。
e)? 课程作业。课程作业在学期开始就预先布置完毕,学生在学完各章节后,要求自觉完成布置的作业,作业通过作业处理平台在网上提交和批改。
f)?? 模拟自测系统。提供学生模拟考试环境,可用于平时自测和考前模拟。
2)??????? 计算机教学实验中心网站http://ctec.xjtu.edu.cn是我中心门户网站,提供所有课程的公共信息和入口,并有丰富的课程教学资源下载。
3)?????? 作业处理平台专门用来处理学生作业的电子文档、实验报告,包括:
a)? 通用作业服务器:ftp://202.117.35.169
b)? 开放式作业平台:http://202.117.35.163/openclass
5)??????? 创新实验室基地http://202.117.50.60/openlab给学有余力和爱好编程的学生提供进一步学习实践的空间
6)??????? 考试系统http://202.117.35.167是自主开发的机考系统,实现全面无纸化上机考试。整个系统使出题——成卷——改卷一体化,题库系统中题目类型齐全,特别是含有相当份量的考察学生实际编程能力的操作题;同时我们不断补充新技术、新平台、新方法方面的题目,使题库保持活力。

千兆交换机
?
校园网
计算机教学实验中心教学网站
ftp://202.117.50.
1000兆链路
?100兆链路
10兆链路
图例:
?
多媒体机房
考试系统
程序设计课程网站
??? 创新实验室基地
作业处理平台

程序设计网络辅助教学平台结构图
除此之外,根据课程教学实际需要,我们还自主开发研制了下列7个应用管理系统,分别用于课程教学和管理的各个环节:
◆???? 作业管理系统
◆???? 电子教室
◆???? 网络实时答疑系统
◆???? 教学效果评估分析系统
◆???? 新生入校摸底考试分析系统
◆?????? 学生调查问卷统计分析系统
◆?????? 机房调度管理系统
?

关于我们 | 版权声明 | 汇款方式 | 会员注册 | 招聘信息 高等学校教学资源网 CopyRight©2004 版权所有
  京ICP证070553号   京ICP备10040123号-8   京公网安备: 1101081957