《程序设计1》课程教学大纲.docx
程序设计1 (C/C+)教学大纲一、课程基本信息课程名称程序设计(C/C+)Programming (C/C+)课程编码CST320311030开课院部计算机科学与技术学院课程团队程序设计课程团队学分3.0课内学时52讲授40实验0上机12实践0课外学时52适用专业软件工程授课语言中文先修课程课程简介(必修)程序设计(C/C+)是一门用以培养学生高级语言程序设计能力的专业基础课,也是软件工程专业的核心必修课程。C语言是一种应 用广泛的结构化通用程序设计语言,C+语言是在C语言的基础上支持面向对象编程思想的语言,本课程以这两门语言为例讲解计算机高 级语言的基本知识和程序设计方法,锻炼学生的计算思维和逻辑思考能力。本课程主要介绍C语言的基本语法、基本语句、基本控制结 构;程序设计的一般方法、基本算法;程序的基本数据结构和逻辑处理结构、程序开发的过程和技巧;介绍C+语言语法及基本的面向对 象思想。课程的主要目的是培养学生的程序设计、实现、测试用例编写及程序调试能力。通过课程的学习,使学生学会用计算机处理问题 的思维方法,增强解决现实问题的逻辑思维和编程实现能力,为将来解决工程问题、科学技术问题或者从事软件开发及后继课程的学习奠 定基础。Programming (C/C+) is not only a professional basic course but also a core compulsory course of software engineering, which aims to train the advanced program design ability of students. C language is a widely and universally used structured programming language, C+ language is based on C language and supports the principle of objected- oriented programming, this course mainly takes the two languages as examples to explain the basic knowledge and program design method of advanced computer language, and to practice the computational thinking and logical thinking abilities of students. The teaching content mainly includes the basic syntax, statements and control structures of C language, the general methods and primary algorithms of program design, the basic data structures and logical processing structures of program, the process and skill of programming, the basic syntax of C+ language, and the basic principle of object- oriented programming. The main objective of the course is to practice the abilities of students in program designing, implementing, testing and debugging. Through this course, students can learn about the thinking mode of solving problems by computer, strengthen the logical thinking and progreuning abilities of solving realistic problems. Moreover, apply the knowledge and abilities to solve engineering and scientific problems, and prepare for engaging in software developmentand studying follow-up courses in the future.负责人大纲执笔人审核人二、课程目标序号代号课程目标0BE毕业要求指标点任务自选1Ml目标1 :理解程序设计的基本概念和基础知识,掌握C语言基本语法、程序结构,掌握复杂数据类型 的概念和用法,掌握相关编程工具的用法;是1.22M2目标2 :熟练应用数据结构、逻辑结构和常用算法,能够独立编写完整的程序来解决典型算法问题, 能够独立调试程序,发现问题,解决问题;是1.23M3目标3 :锻炼学生的计算思维和逻辑思考能力,培养学生通过编程用计算机解决现实问题的能力,理 解软件工程专业对社会进步的作用。能够结合国家最新政策法规、新闻热点等实时信息,思考本课 程对国家信息产业的意义,设计相关练习题目。是1.2三、课程内容序号章节号标题课程内容/重难点支撑课 程目标课内 学时教学方式课外 学时课外环节11. 1-1.8第一章:绪论本章重点难点:程序设计的相关概念、程序设计的基本过程、 程序的执行。程序设计对生活、学习和工作产生的影响;传统 的程序设计方法,可视化编程方法,面向对象的编程方法;程 序设计语言的发展历程、现状,流行的编程语言和对应的开发 工具;指令,源程序,目标程序和可执行程序;编程序、解析 程序和编译程序;分析问题、建立模型、确定数据结构和算 法、编写和调试程序、程序测试、文档整理。通过实例说明程 序的基本结构,同时介绍程序的运行环境和程序的运行过程。 计算科学求解实际问题的基本特点Ml2讲授2SPOC22. 1-2.4第二章:算法设计 基础本章重点难点:理解算法的概念和特征、了解算法在问题求解 过程中的重要作用,掌握常用算法的设计、计算思维方式的建 立;算法的概念,算法的特征;结合实例用自然语言、N-SM22讲授2SPOC图、结构化流程图和伪代码对算法进行描述,选择算法描述方 式的原则;问题求解过程中算法的作用;常用算法如:排序算 法(冒泡、选择、快速排序)、二分查找、进制转换,以及贪心 算法、分治算法、递归算法、迭代算法的简单实例。3实验1实验1 :编程环境 配置配置Codeblocks,学习工具的使用,编写简单程序Ml1上机2上机43. I-3.3第三章:数据类型本章重点难点:掌握基本数据类型、常用运算符和表达式的使 用,理解数据类型的转换、运算符的优先级和结合性;基本数 据类型的概念,各种数据类型的数值(整型、浮点型)在内存 中的表示方式及取值范围;在所选择的程序设计语言中,各种 数据类型常量的书写规则、变量的定义与命名规则、变量的存 储与复制,以及数据类型的转换规则;算术、赋值、关系、逻 辑等运算符的操作含义和优先级、结合性的概念,常用表达式 的概念、书写方式和计算规则。Ml2讲授2SP0C54. 1-4.3第四章:数据的输 入与输出本章重点难点:数据的格式化输入、输出,从文件中输入和向 文件中输出数据;不同数据类型数据的输入和输出;文件的输 入与输出,利用文件对数据进行输入与输出M21讲授1SPOC65. 1第五章:基本控制 结构-顺序控制结 构本章重点难点:掌握使用条件控制结构和循环控制结构设计累 力口、累乘、统计等算法的基本方法,理解嵌套的条件控制结 构、嵌套的循环控制结构的流程控制过程,以及循环中断语句 的作用。顺序控制结构的特点、顺序控制结构语句的使用方式M2, M31讲授1SP0C75.2第五章:基本控制 结构-条件控制结 构条件控制结构(单分支、双分支和多分支)的特点和执行过程M2, M32讲授2SPOC8实验2实验2 :顺序与分 支结构练习练习顺序以及分支结构相关习题M2, M31上机2上机95.3第五章:基本控制 结构-循环控制结循环控制结构的特点和执行过程,针对所选择的程序设计语言 讲授for循环和do-while循环,通过实例阐述循环的应用方M2, M35讲授4SPOC构式、嵌套循环的应用和执行过程。10实验3实验3 :循环结构 练习练习循环结构相关习题M2, M32上机2上机116. 1-6.3第六章:函数-函 数的定义与使用本章重点难点:函数的定义与声明、函数的调用、递归函数的 设计与应用,理解参数传递方式、变量生存周期与作用域。如 何利用常用的标准函数实现复杂的计算;函数定义与函数声明 的含义、函数定义与声明的格式、函数调用的格式、函数返回 值类型以及函数的执行过程。函数的参数传递。M2, M32讲授2SP0C126. 4-6.5第六章:函数-递 归函数递归的概念、递归的数学函数描述(如阶乘、斐波那契数列)、 简单的递归过程(如汉诺塔)、递归的实现;变量的生存周期和 作用域的概念、全局变量和局部变量、变量选择的原则。M2, M32讲授2SP0C13实验4实验4:函数练习练习函数部分相关习题M2, M31上机2上机147. 1第七章:复杂数据 类型-数组本章重点难点:掌握数组作为函数参数时的传递规则,用字符 数组表示字符串的基本方法、常用字符串处理函数,掌握嵌套 结构体成员的引用方法,理解数组名的特殊意义,字符数组与 其他数组的区别;数组类型组织数据的特点,一维数组和二维 数组的定义、存储、数组元素的引用以及输入输出的实现方 式,数组类型作为函数参数时的传递规则,字符串的存储与常 用操作的实现M1,M2,M35讲授4SP0C15实验5实验5 :数组练习练习数组部分相关习题32上机2上机167.2第七章:复杂数据 类型-结构体结构体类型组织数据的特点,结构体类型变量的定义格式、存 储方式、结构体成员的引用以及输入输出的实现特点,结构体 类型作为函数参数时的传递规则33讲授2SPOC177.3第七章:复杂数据 类型-指针指针类型的特点、定义、指针类型作为参数传递,动态存储分 配,指针与数组,链表的概念、基本操作(创建、输出、插 入、删除、查找等)33讲授2SP0C18实验6实验6 :结构体与练习结构体与指针相关习题Ml, M2, M1上机2上机指针练习3198. 1-8.2第八章:数据持久 化本章重点难点:文件的读写操作,二进制文件与文本文件的区 别。文件的概念,文本文件与二进制文件;文件的打开、读 写、关闭等操作的实现方式M22讲授2SPOC209. 1第九章:面向对象 程序设计基础-基 本概念本章重点难点:面向对象的概念,面向对象程序设计的特点, C+语言函数重载。面向对象的概念,程序设计语言的发展,面 向对象程序设计的特点。Ml2讲授2SP0C219.2第九章:面向对象 程序设计基础-C+ 语言C+语言特点,源程序的基本结构,I/O流、内联函数、函数重 载、引用类型、内存管理等功能特性Ml2讲授2SPOC22实验7实验7 : C+基础 练习练习C+基础语法,完成相关习题Ml2上机2上机2310. 1第十章:类和对象 一类和对象基本概 念本章重点难点:类和对象的基本概念,构造函数和析构函数, 派生类的访问限制。类和对象的定义、关系和语法,构造函数 和析构函数的功能和语法,对象数组与对象指针,函数传递对 象方法。32讲授2SP0C2410.2第十章:类和对象-继承和派生继承和派生的概念,派生类的声明,派生类的组成,访问限 制。Ml, M32讲授2SPOC25实验8实验8 :面向对象 基础练习练习面向对象相关习题Ml, M32上机2上机四、考核方式序号考核环节操作细节总评占比1平时作业1 .在中国石油大学(华东)在线练习平台中完成,每个章节布置对应的编程题,总题量在450道左右。2 .成绩采用白分制,根据学生在网站上的作对题目数、在线时间、独立完成度评分。3 .以成果导向教育理念考核学生实际编程能力,每道题目设置38个测试用例,全部通过才算正确。综合考察学生的逻 辑思维、编程和测试能力。40%2期末考试1.在线考试,开卷,成绩采用百分制,卷面成绩总分10。分。60%2 .考试时间2小时,包括10道编程题,每道题目各占10分,设置410个测试用例,各自占有一定分值,通过可得相 应分数。3 .题目考查内容包括程序基本结构(4道)、函数(1道)、复杂类型数据结构(4道)、类(1道),主要考核学生实际编 程能力,包括逻辑思维、编程熟练度、测试调试能力等。五、评分细则序号课程目标考核环节大致占比评分等级1Ml平时作业30%<60 :基础语法相关的练习题完成进度平均值低于60%。60-75 :基础语法相关的练习题完成进度平均值 60%-75%o 75-90 :基础语法相关的练习题完成进度平均值75%-90双90-100 :基础语法相关的练习题完成 进度平均值90%以上。2Ml期末考试70%(见试卷评分标准)3M2平时作业30%<60 :典型算法相关的案例习题完成比例低于60乳60-75 :典型算法相关的案例习题完成比例60与- 75%。75-90 :典型算法相关的案例习题完成比例75%-90%。90-100 :典型算法相关的案例习题完成比例90% 以上。4M2期末考试70%(见试卷评分标准)5M3平时作业40%<60 :与社会结合的案例习题完成比例低于60%。60-75 :与社会结合的案例习题完成比例60M75%。75- 90 :与社会结合的案例习题完成比例75虹90乳90-100 :与社会结合的案例习题完成比例90%以上。6M3期末考试60%(见试卷评分标准)评分等级说明:A, B, C, D, E=90-100, 80-89, 70-79, 60-69, 0-59; A, B, C, D = 90-100, 75-89, 60-74, 0-59; A, B, C=90-100, 75-89, 60-74, 0-59; A, B = 80-100, 0-79六、教材与参考资料序号教学参考资料明细1图书IC语言程序设计(第3版),苏小红,高等教育出版社,2015年7月.(*主教材)2图书IC程序设计(第四版),谭浩强,清华大学出版社,2010年6月.3图书IACM程序设计,曾棕根,北京大学出版社,2011年.4图书|算法基础:打开算法之门,托马斯H.科尔曼,机械工业出版社,2015.5图书 The C Programming Language, Brian W. Kernighan/Dennis M. Ritchie, Prentice Hall Press, 1988.6图书 21st Century C, Ben Klemens, O'Reilly Media Press, 2012.7 图书|C+ Primer中文版,Stanley B. Lippman,电子工业出版社,2013.