《高级语言程序设计》是计算机大类/软件工程大类的一门重要的专业基础课程。设置本课程的主要目的是使学生掌握用计算机分析和解决问题的思维方法以及程序设计的基本方法,建立从问题到算法再到程序的认知,在从问题到算法再到程序的问题求解及程序构造和实现的过程中理解高级语言的基本构造要素以及算法和数据结构在程序构造中的作用,具备良好的编程素养,以及综合运用所学程序设计语言和程序设计方法,设计、构造和应用计算系统求解科学或工程问题的程序设计和实现能力,为后继课程的学习和将来从事软件开发、解决复杂工程问题奠定编程能力基础。课程具体目标如下:
课程目标1:掌握程序设计的方法学基础,培养学生阅读程序、编写程序和调试程序的能力,使学生能够选择与熟练运用现代化集成开发工具编写、测试和调试程序。
课程目标2:掌握程序设计所需的问题求解基础,培养学生从问题抽象为数学模型或算法再转化为计算机可实现的程序的能力,使学生针对计算、统计、分类等相关的实际问题,能够有效使用程序设计语言和结构化程序设计方法,并恰当使用枚举、递推、分治或递归等常用问题求解方法,完成经典问题求解程序的设计与实现。
课程目标3:掌握程序设计所需的算法和数据结构基础,培养学生利用算法和数据结构构造程序的能力,使学生针对科学计算/文本处理/人工智能相关的复杂工程问题,能够使用恰当的算法和数据结构以及模块化程序设计方法,完成涉及排序、检索、匹配等算法的实际生活问题或与专业背景相关的工程实际问题的程序设计与实现。
成绩累计方式
(1)自主式作业
由系统随机抽题的自主式作业,占总成绩的 20%。
学生登录面向学生自主学习的高级语言能力测试平台(SSE),自主选择知识点和难 度系数,平台自动从后台的题库系统中随机抽取相应知识点和难度系数的题目给学生,学 生在线上限时完成并提交代码,获得作业分。分数评定和奖惩规则如下:
1)根据学生上机测试成绩柔性定制个人作业满分线,使其个人作业满分线与其上机 测试总成绩成反比。个人作业满分线=(实验上机随堂测试满分线-实际上机随堂测试总 分)*100。若按此公式计算出来的满分线超过了 3000 分,则 3000 分封顶,即 3000 分为 个人刷题满分线的上限。注:计算机专业学生个人刷题满分线的上限为 3000 分,非计算 机专业学生个人刷题满分线的上限为 2000 分。
2)若未达到自己的个人作业满分线,则按下面公式计算:个人实际刷题分数 / 个人 满分线 * 作业满分 20 分。
3)在习题市场中自主设计有创意的题目或找错题,每录用 1 道题或找到一个错题, 可减免作业分 20 分(相当于降低其个人作业满分线)。
(2) 开放式实验大作业
开放式实验大作业,占总成绩的 20%。
实验程序和实验报告的综合成绩由学生在 SPOC 里互评,教师对学生互评结果进行随 机抽查,对于不合理的分数可以由教师重评,取代学生的互评分。
未在规定的截止时间内在 SPOC 中提交实验程序和报告,按 0 分计。未在规定的截止 时间内在 SPOC 中完成指定数量的互评,扣除一定的互评分。
不做实验大作业者,即使其他项分数累计可以及格,最终的总成绩也一律按 0 分计。
(3) 实验上机随堂测试
实验上机随堂测试,占总成绩的 50%。
第 1 次实验课熟悉系统环境,进行模拟演练,仅安排 2 个实验学时。
第 2 次~第 4 次实验课,利用 3 学时进行实验上机随堂测试和试卷点评。实验上机测 试内容分别覆盖基本控制结构和穷举/递推/迭代/递归等问题求解算法、排序和查找算法、 字符串/结构体/链表等内容。
每次上机随堂测试必做题满分为 50 分(另有附加分 2 分),总计考 3 次,取 3 次测 试的平均分作为实验上机测试的总分。
因属于随堂测试,故缺考者不给补考机会,当次考试成绩按 0 分计。因病不能参加考 试者,需出具医院开的病假条,按实际参加测试的次数计算平均分。
(4) 实验小班研讨
实验小班研讨,占总成绩的 10%。
采用“生讲生评、互动研学、同伴助学”的方式,分小班针对不同的实践研学主题进行 互动研讨和同伴助学。
(5)附加分
(1)实验上机随堂测试获得附加题的附加分(2 分)。
(2)实验上机测试结束后参加生讲生评可以获得 1~3 分的附加分。例如,某道题未 获得满分的同学可邀请该题获得满分的同学一起上台讲题(鼓励每两人组成一个互帮互学 小组),采用你问我答的方式分析讲解程序的错误和错误原因,两人可同时各加 1 分。任 课教师也可以调取未获得满分的卷子,现场征集讲题者,此时仅给讲题者一人加 1 分。三 次上机实验测试,每人最多加 3 分。(注意,不是讲题去掉一次最低分后再平均,仅在总 分上加附加分)
(3)参加期末的“实验课堂大翻转、创意程序大比拼”,可以获得 1~5 分的附加分。实 验课堂大翻转采用“生讲生评、互动展学”的方式进行“我的实验我做主——实验课堂大翻 转、创意程序大比拼”。
课程最终成绩 = (1)+(2)+(3)+(4)+(5)
其中,如果(2)实验大作业为 0 分的话,那么总成绩也为 0 分。
教程:
1. 苏小红,王宇颖,孙志岗等.《C语言程序设计(第4版)》,高等教育出版社,2019年7月
2. 《C语言程序设计精髓》MOOC课程,爱课程中国大学MOOC平台
主要参考书:
1.苏小红,王甜甜,车万翔等.《C语言程序设计学习指导(第4版)》,高等教育出版社,2019年9月
2. P. J. Deitel, H.M. Deitel等,《C How to Program, Eighth Edition》,电子工业出版社,2017年