程序设计(CP,Computer Programming)课程是大学计算机教育的核心课程,编程不只是一门技术,它教会人们如何思考,更好地理解越来越数字化的世界。
本课程结合国家级在线开放精品课程《C程序设计》资源,面向我校C程序设计I的同学,进行内容定制,结合线下课堂,实现混合式教学,力图最优化教学效果,最大化学生收益。课程内容主要包括语言工具、问题求解、实现方法、算法思想、编程抽象、编程范式、设计模式等内容,涉及算法设计、程序实现、计算科学、软件工程、系统开发、学科交叉等方面。
本课程教学过程以提高编程能力为抓手,从两点出发:一是以思维训练为中心的编程技能,二是以学科融合为核心的领域知识。指导学生按“双线索”学习程序语言,理解程序语言是服务编程的工具而不是目标的含义;有“节奏感”推进编程实践,让学生感受到编程是帮助人们与计算机沟通的工具;从“多维度”进行思维训练,用“系统观”拓展编程视野,践行“技能提升、思维训练、系统培养、价值塑造”的学习过程。
本课程主要讲授程序语言知识、程序设计方法和程序设计技术(开发工具的使用、调试技术、编程技术等),以程序语言知识和编程方法为主,还包括程序设计方法学、数据结构、算法设计与分析、高级编程技术等领域的内容。授课目标是培养学生问题分析、程序设计、编写代码、上机调试能力,使学生掌握必要的算法设计技能,初步掌握软件开发的思路和方法,掌握软件工程技术规范,为后继课程的学习、为各类专业计算机应用打下坚实的基础,达到使用语言工具解决应用问题的水平。
1.本课程要求完成的作业分为3种:
(A1)测验练习(简称QUIZ):在每讲后安排课后测验(少数几讲后没有),内容为程序语言知识题,题型为客观题。
(A2)问题求解(简称NOJ,网址:https://noj.nwpu.edu.cn/):共有十季编程题,每季从题库中抽取10题,采用机器在线评阅。每题打开题面后须在2周内完成,但学习者可任意选取时间点开始,全部习题须在课程结束前完成。
2.本课程要求完成的考试如下:
期末考试在课程结束的指定时间进行课程线下期末上机考试。考试题型为选择、判断、程序阅读、程序填空和程序改错题。
3.总成绩计算方法:
按百分制计分,总成绩=QUIZ×10% + NOJ×50% + 期末考试×40%
4.协作与欺骗政策:
QUIZ、NOJ:学习者可以与其他同学讨论完成,但所有代码必须是自己编写的,当NOJ机器评阅检查出作业结果(称为查重)有较高相似度时,后提交的习题判罚0分,三次查重违例,总计分为0分。
学习者应该先修过或已经掌握计算机导论或者大学计算机基础的主要内容,了解计算机的发展过程,理解计算机系统的构成和基本工作原理,并能够熟练地操作计算机及通过互联网获取信息资源。不能双手盲打键盘的学生,需要在开课初期多练习,迎头赶上!
1.姜学锋、曹光前,C程序设计,清华大学出版社,2012年,ISBN 978-7-302-28011-8,在线购买
2.姜学锋、魏英,C程序设计实验教程,清华大学出版社,2011年,ISBN 978-7-302-24943-6,在线购买
3.姜学锋、刘君瑞、汪芳,C程序设计习题与解析,清华大学出版社,2011年,ISBN 978-7-302-24942-9,在线购买
Q : 课程除了MOOC平台上的单元测试题目,还需要完成其他平台的作业?
A : 是的,本课程还需要同学们登录NOJ平台:noj.nwpu.edu.cn平台完成课程相关的编程练习。该部分作业占MOOC课程期末成绩的50%。需要同学们登录平台后进行注册,注意跟MOOC课程的昵称相同(如果是西工大的同学,请将MOOC昵称和NOJ昵称都设置成“NPU学号”的形式)。
Q : NOJ平台上的作业完成有什么限制?
A : NOJ平台上的编程练习题要求在MOOC课程学期内完成,根据知识点将100个编程题分为10季。一般同学们需要按照顺序完成,每个题目打开后需要在两周内提交正确答案,过期未提交或未通过的题目,将不能获得该题目的相应分数。
Q : NOJ平台上的课程设计需要完成么?
A : 课程设计作为提高学生综合实践与创新能力的重要途径,鼓励学有余力的同学尽量完成。