《高级语言程序设计(Ⅰ)》课程大纲
课程编号:19031002 课程性质:专业必修
课程名称:高级语言程序设计(Ⅰ)
学时学分:56/3,其中理论学时:40 实验(含上机)学时:16 实习: 其他:
先修课程:
后续课程:高级语言程序设计(Ⅱ)、面向对象程序设计(C++)
适用专业: 计算机科学与技术
开课单位:计算机科学与信息工程学院
一、课程目标:
《程序设计基础》以具有代表性的高级语言——C语言为主体,通过对C语言的语法规则及相关的基础知识的学习使学生初步了解计算机,建立起程序设计的概念,掌握阅读和分析程序的方法;掌握设计和调试程序的方法及技巧;初步掌握实用程序的开发与调试技术,初步掌握程序设计方法,养成良好的程序设计风格,为后续软件课程打下基础。
本课程是计算机科学与信息工程学院学生的专业基础必修课,课程主要内容包括:程序设计和C语言的基础知识;算法的概念、特点及各种表示方法;顺序结构程序设计;选择结构程序设计;循环结构程序设计;利用数组处理批量数据等知识。
通过本课程的理论教学,使学生具备下列知识和能力:
课程目标1: 掌握结构化程序设计的方法和工程基础知识。
课程目标2: 拓展学生在计算机知识、信息系统设计、系统应用开发等方面的知识,实现复杂问题的建模和求解。
课程目标3: 培养学生针对复杂问题概要设计和详细设计的能力。
课程目标4: 培养学生针对复杂问题设计研究方案的能力。
课程目标5: 培养学生解决复杂的计算机工程问题的实践能力、创新思维能力、系统开发能力和分析解决问题等能力。
二、课程目标、教学方法与毕业要求的对应关系
序号 |
毕业要求 |
毕业要求指标点 |
课程目标 |
1 |
1、工程知识 |
指标点1-2掌握一般工程基础知识,可用于解决复杂的计算机工程问题。 |
课程目标1 |
2 |
2、工程问题分析 |
指标点2-4. 对复杂的计算机工程问题进行建模、求解和优化。 |
课程目标2 |
3 |
3、设计/ 开发解决方案 |
指标点3-1根据特定需求,针对复杂的计算机工程问题,进行概要设计和详细设计,并进行论证和评价。 |
课程目标3 |
4 |
4、研究 |
指标点4-2 针对复杂的计算机工程问题,依据计算机科学的一般研究方法,设计研究(实验)方案。 |
课程目标4 |
5 |
5、使用现代工具 |
指标点5-1 具备开发、选择与使用恰当的平台、技术、资源、现代工程工具,解决复杂的计算机工程问题的能力。 |
课程目标5 |
三、教学基本内容
第1章 C程序设计初步(支持课程目标1)
基本内容:C程序的基本结构;C程序的开发环境;C程序的基本输入输出函数;算法。
重点:C语言程序的结构特点、算法的概念和几个特征、结构化程序设计的概念以及三种基本结构。
学习目标要求:要求学生了解C语言出现的历史背景、C语言的特点;掌握C程序的上机运行步骤;掌握C程序的书写格式以及C语言中函数的组成;了解算法的概念、特性及各种表示方法。
实践与练习:根据教学计划适当选做课后习题2至4道。
第2章 顺序结构程序设计(支持课程目标1, 2)
基本内容:标识符;基本数据类型;常量与变量;运算符与表达式;顺序结构程序设计。
重点:常量、变量的使用方法,基本数据类型的定义,运算符的优先级,赋值语句的使用。
学习目标要求:掌握三种常量类型表示方法和三种变量类型的定义和使用以及在内存中的存放形式、标识符的组成;掌握各类数值型数据间的混合运算、算术运算符和算术表达式、赋值运算符和赋值表达式的使用方法;掌握基本的赋值方法、顺序结构程序设计执行流程;掌握几个常用的输入输出函数,如scanf函数和printf函数常用的输入输出格式。
实践与练习: 根据教学计划适当选做课后习题2至4道,开设“顺序程序设计”一个实验。
第3章 选择结构程序设计(支持课程目标1, 2, 3)
基本内容:选择条件;if 语句;switch语句。
重点:if语句和switch语句的格式和执行过程。
学习目标要求:熟练掌握关系运算符的优先级和结合性、逻辑运算符的优先级和结合性、条件运算符的优先级和结合性;掌握if语句的三种形式、if 语句的嵌套和switch 语句的编程。
实践与练习: 根据教学计划适当选做课后习题2至4道,开设“选择结构程序设计”一个实验。
第4章 循环结构程序设计(支持课程目标1, 2, 3,4,5)
基本内容:while 语句;do-while语句;for 语句;循环结构的比较;break 语句和continue语句;循环的嵌套
重点:While语句、do-while语句和for语句循环结构的格式与执行过程。
学习目标要求:掌握用while语句、do-while语句和for 语句执行过程;掌握break语句和continue语句的使用方法;了解几种循环嵌套形式、几种循环语句的区别与用法。
实践与练习: 根据教学计划适当选做课后习题2至4道,开设“循环结构程序设计”一个实验。
第5章 数组(支持课程目标1, 2, 3,4,5)
基本内容:一维数组的定义和引用;二维数组的定义和引用;字符数组字符串;排序与查找。
重点:一维数组、二维数组以及字符数组的定义、初始化及其数组元素的引用方法。
学习目标要求:掌握一维数组元素的引用、二维数组元素的引用、字符数组的引用、应用举例;掌握一维数组的初始化、二维数组元素的初始化、字符数组的初始化,字符串和字符串结束标志、字符数组的输入输出、字符串处理函数;掌握两种常见的排序方法选择排序和冒泡排序、理解的查找方法顺序查找和二分查找。
实践与练习: 根据教学计划适当选做课后习题2至4道,开设“数组”一个实验。
第6章 函数(支持课程目标1, 2, 3,4,5)
基本内容:函数概念;函数的定义与调用;函数的嵌套调用。
重点:函数的定义;函数的调用;函数间的数据传递。
学习目标要求:熟练掌握函数的定义、函数调用的方式;掌握形式参数和实际参数以及函数间数据的传递、函数调用的一般形式、对被调用函数的声明和函数原型、函数的嵌套调用。
实践与练习: 根据教学计划适当选做课后习题2至4道,选做“函数”一个实验。
第7章 指针(支持课程目标1, 2, 3,4,5)
基本内容:指针和指针变量;指针与一维数组。
重点:指针变量的初始化和定义;指针运算;指针与一维数组。
学习目标要求:掌握变量的指针与指针变量的区别、指针变量的定义和引用、通过指针引用一维数组元素。
实践与练习: 根据教学计划适当选做课后习题1至2道。
第8章 结构体与其他构造类型(支持课程目标1, 2, 3,4,5)
基本内容:结构体类型和结构体变量。
重点:定义结构体类型、定义结构体变量、引用结构体变量中的成员。
学习目标要求:掌握结构体类型和结构体变量的定义及各成员的应用。
实践与练习: 根据教学计划适当选做课后习题1至2道。
第9章 文件(支持课程目标1, 2, 3,4,5)
基本内容:C文件概述;文件的打开与关闭。
重点:文件的打开与关闭。
学习目标要求:掌握文件的有关基本知识、用函数打开和关闭数据文件。
实践与练习: 根据教学计划适当选做课后习题1至2道。
四、教学进度与学时分配
教学内容 |
讲课 |
实验 |
上机 |
合计 |
C程序设计初步 |
4 |
0 |
0 |
4 |
顺序结构程序设计 |
6 |
2 |
0 |
8 |
选择结构程序设计 |
6 |
4 |
0 |
10 |
循环结构程序设计 |
8 |
4 |
0 |
12 |
数组 |
8 |
4 |
0 |
12 |
函数 |
4 |
2 |
0 |
6 |
指针 |
2 |
0 |
0 |
2 |
结构体与其他构造类型 |
1 |
0 |
0 |
1 |
文件 |
1 |
0 |
0 |
1 |
合计 |
40 |
16 |
0 |
56 |
五、课程目标考核及成绩评定方式
1. 课程目标的考核
序号 |
课程目标 支撑毕业要求指标点 |
考核内容 |
考核目标、内容及比例(%) |
期末 |
实验 |
平时 |
|
1 |
课程目标1 支撑毕业要求指标点1-2 |
掌握一般工程基础知识,解决复杂的计算机工程问题的能力。 |
15 |
25 |
25 |
|
2 |
课程目标2 支撑毕业要求指标点2-4 |
对复杂的计算机工程问题进行建模、求解和优化的能力 |
15 |
25 |
25 |
|
3 |
课程目标3 支撑毕业要求指标点3-1 |
复杂问题详细设计的能力 |
15 |
25 |
25 |
|
4 |
课程目标4 支撑毕业要求指标点4-2 |
针对复杂问题设计研究方案的能力 |
15 |
25 |
25 |
|
5 |
课程目标4 支撑毕业要求指标点5-1 |
解决复杂的计算机工程问题的能力 |
40 |
|
|
|
合计 |
|
100 |
100 |
100 |
|
2. 各考查项的评分标准
(1)平时成绩
平时的课后作业设置编程题,使用的是浙江大学的PTA系统,由系统实现自动评分,测试样例全部通过得满分。
(2)实验
实验题目全部为编程题,使用的是浙江大学的PTA系统,由系统实现自动评分,测试样例全部通过得满分。
(3)期末
期末考试采用的是自己研发的在线考试系统,共考试六道题,四道基础性题目每道15分,两道提高题每题20分,实现系统自动评分(评分依据是答案全部正确得满分,答案不正确由老师根据答题情况酌情给分)
(4)总评成绩
总评成绩为百分制。
总评成绩 = 平时成绩(10%)+实验(30%)+期末考试(60%)
六、参考书目(例)
1、建议教材:《C程序设计案例教程》,钟家民;清华大学出版社,2018年6月
2、参考教材:
(1)《C程序设计(第四版)》,谭浩强;清华大学出版社,2010年6月
(2)《C语言程序设计(第三版)》,苏小红;高等教育出版社,2015年7月
七、大纲说明
实践教学环节见“《高级语言程序设计(Ⅰ)》实验教学大纲”,……
撰写人:**** 审定人:*****
批准人:**** 执行时间:2019级起