-
Notifications
You must be signed in to change notification settings - Fork 2
Syllabus2017
参考书目: C Primer Plus
以往课程资料(用于预习):2016-2017秋季学期
本讲主要给出程序设计的概述,让学生了解计算机科学是怎样的学科,计算机能够帮助人们做什么事情,以及人们怎么操作计算机解决问题。本讲会以一个扑克牌排序的具体案例串联起以下四部分内容:
- 计算机如何表示信息
- 计算机硬件体系结构
- 程序设计简介
- 教学计划与考核要求
课件下载: 01-Introduction.ppt
工具使用:
每天一小时编程 YOJ.
本讲通过简单的C语言程序实例,带领学生认识C语言,掌握C语言最基本的术语与结构,包括以下内容:
- 认识C语言
- 如何开始写C程序
- C程序的基本结构
- 认识C语言的基本数据类型
课件下载: 02-Introducing-C.ppt
C语言要点总结Cheat Sheet: C Reference Card (ANSI) 2.2.pdf, C Reference Cheat Sheet by Ashlyn Black - Cheatography
源代码: first.c, second.c, third.c
遇到的问题:
- 建立项目时候的语言问题:
- 项目工程路径一定英文,不要出现中文(
有个别找不到路径在哪里) - 主体以C语言为主,最后写代码的文件应该是
main.c;个别同学用的C++,那么应该是main.cpp(千万不要弄混淆) - 不同语言的代码在开头引入的文件库不一样,
C #include <stdio.h> #include <stdlib.h> int main() { printf("Hello world!\n"); return 0; } C++ #include <iostream> using namespace std; int main() { cout << "hello world!" << endl; return 0; } - 项目工程路径一定英文,不要出现中文(
- 编程时候的问题:
- 语法需要正确,一切都是英文(
千万不要引入中文符号) - 语句需要正确:(1)有个别地方多加了;(
return 0后面忘记加;) (2)大小写不要写错(if写成了If)
- 语法需要正确,一切都是英文(
- 运行程序时候的问题:
- 一般软件(
CBDev)都有三个命令: Compile、Run、Compile & Run,执行的时候可以直接点击Compile & Run - 报错时候,点击报错语句,在代码程序上会显示问题在哪一行,甚至error语句有时候还会告诉是什么错误
- 一般软件(
- 其他问题:
- 软件不会用、下载不了(有同学成功的可以询问一下)
- 书上内容看不懂(多看看)
- ...
分组情况:
- 第一人为组长,请小组内成员多多讨论问题,组长汇总好问题给我:
陶俊屹,黄伟杰、陈明骏、史梦婕、王菲荣
王子恺,陈雪昂、顾珺涵、崔忆凡、唐明明、黄觉、黄靖云
周念欣,刘雅妮、夏静睿、贾轶涵、俞可盈
张大方,胡榕珊、杜雪婷、陈杨欢、何文宇
刘怡灿,潘淑君、阚慧瑜、李韦祎
张腾甘,王智琛、王芃、陈玮婧、李小可、陆绿、李逸文
卢浩宇、窦雨杉、刘洋凡、李昕旸
王博文、薛钦亮、陕杰才
上机作业:
- 第一次上机作业(9月21日检查):
- 熟悉开发环境IDE
- 运行本节课中的first.c、second.c和third.c
- 完成断点设置与程序的分步执行
- 将third.c中的float类型改成int,测试输出结果并尝试解释(可选)
- 检查打分标准:10分制,按完成内容的比例打分(可选题不算成绩)
- 第二次上机作业(9月28日检查):
- YOJ习题编号1003 – 1011
- 检查打分标准:10分制,按YOJ习题通过的比例打分
本讲主要给出作为C语言的程序员应该如何处理数据,具体细分为以下四个部分:
- C语言的数据类型:介绍C语言针对整数、实数、字符等数据的表示与存储方法,并介绍了变量与常量的概念
- C语言的格式化输入输出:介绍C的程序员如何将输入从IO设备输入以及输出
- C语言的运算符和表达式:介绍数据是如何进行操作的
- 数据表示存与类型转换:介绍C语言数据存储和表示的标准,以及不同数据类型是如何转换的
课件下载: 9月25日课件 03-Data-And-C-1.ppt 9月27日课件 03-Data-And-C-2.ppt
课件下载: Dis01.ppt
本讲主要介绍作为C语言的程序员应该如何针对上讲介绍的数据进行控制操作,具体细分为以下三个部分:
- 逻辑思维与计算机解题:侧重引导学生将真实问题转换为逻辑操作,掌握枚举法,并利用循环语句实现。
- C语言的分支控制语句:介绍分支与条件程序结构的概念、逻辑表达式、N-S图表示法,并介绍C语言实现分支的三种语句格式
- C语言的循环控制语句:介绍循环与条件程序结构的概念,并介绍C语言实现循环的语句格式
课件下载: 10月9日课件 04-Control-Statement-1.ppt, 10月11日课件 04-Control-Statement-2.ppt
上机作业:
- 第三次上机作业(10月12日检查):
- YOJ习题编号1012 – 1014; 1016 - 1018
- 检查打分标准:10分制,按YOJ习题通过的比例打分
- 其他安排:助教继续说一下调试方法,顺便说一下递归算法
源代码: 计算分段(符号)函数代码 piecewise_func.c, 输入数字并加总 summing.c, 数列求和 zeno.c, 一个月的天数(Switch实现) days_in_month.c, 冒泡排序代码 bubble_sort.c
友学代码示例: 1014, 1016, 1017, 1018
本讲主要介绍作为C语言的重要数据组织方式数组,具体细分为以下几个部分:
- 数组的概念、定义和初始化
- 二维数组
- 数组的排序问题
- 筛法求素数
- 结构与结构数组
课件下载: 10月16日课件 05-Array-1.ppt, 10月18日课件 05-Array-2.ppt, 10月25日课件 05-Array-3.ppt
上机作业:
- 第四次上机作业(10月19日检查):
- YOJ习题编号1019 – 1025
- 检查打分标准:10分制,按YOJ习题通过的比例打分
源代码: 输出字母金字塔 loop_print.c, 教室分配代码 classroom_assignment.c, 冒泡排序代码 bubble_sort.c, 选择排序代码 select_sort.c, 插入排序代码 insert_sort.c, 扑克排序代码 poker_sort.c
友学代码示例: 1019, 1020, 1021, 1022, 1023, 1024, 1025
友学编程常见问题汇总:10.19
本讲主要介绍作为C语言的重要功能函数,具体细分为以下几个部分:
- 函数的简单使用
- 枚举、递推和递归
- 函数的深入分析
课件下载: 10月30日课件 06-Function-1.ppt, 11月1日课件 06-Function-2.ppt, 11月8日课件 06-Function-3.ppt
源代码: 打印井号 pound.c, 计算指数 power.c, 交换函数-1 swap1.c, 交换函数-2 swap2.c
查询日志分析源代码: 统计flu总频次flu_trends.cpp, 按序输出月份month_flu.cpp, 分词tokenize.cpp,
- 第五次上机作业(11月2日检查):YOJ习题编号
- 1026:迭代法、数据类型、计算精度
- 1028:一维数组访问操作
- 1030:一维数组访问操作
- 1048:一维数组访问操作
- 1031:枚举法、逻辑表达式
- 1032:数组排序、二分查找
- 1045:二维数组计算操作
- 1047:结构数组、排序、次序统计
- 1049:统计、数组排序
- 1050:统计、数组排序
友学代码示例: 1028, 1030, 1045, 1048, 1049, 1050
友学编程常见问题汇总:11.2
课件下载: Dis02.ppt
往届期中试题下载:
C语言要点总结Cheat Sheet: C Reference Card (ANSI) 2.2.pdf, C Reference Cheat Sheet by Ashlyn Black - Cheatography
课件下载: Dis03.ppt
友学编程常见问题汇总:11.9
期中试题(11月16日)下载:
本讲主要介绍一种重要的编程方法——递归,具体细分为以下几个部分:
- 递归初步
- 递归分析工具——与或图
- 递归的典型问题:查找与排序
- 递归的其它问题
课件下载:
- 11月20日课件(递归初步) 07-Recursion-1.ppt
- 11月22日课件(递归分析工具——与或图) 07-Recursion-2.ppt
- 11月27日课件(递归程序编写与执行)07-Recursion-3.ppt
- 11月29日课件(递归典型问题——查找与排序)07-Recursion-4.ppt
- 12月4日课件(递归典型问题——全排列、分数、八皇后)07-Recursion-5.ppt
递归程序调试介绍:
示例代码:
递归第二次作业示例代码:
课件下载:
- 12月4日课件(文件操作函数)08-File.ppt
- 12月11日课件(文件操作函数)08-File-new.ppt
本讲主要介绍C语言中的一项重要概念——指针,具体细分为以下几个部分:
- 指针的基本使用
- 指针与数组
- 指针与字符串
- 指针与函数
- 指针与结构体
课件下载:
- 12月11日课件 指针基本操作,
- 12月13日课件 指针与数组,
- 12月18日课件 指针与字符串,
- 12月20日课件 动态数组、指针与结构,
- 自学课件 指针与函数
pointer_string工程代码: pointer_string
源代码: simple.c, swap.c, sorted_create.c
-
往届期末试题下载:
-
期末复习:
-
2017年期末考试示例程序
group1 陶俊屹 黄伟杰 陈明骏 史梦婕 王菲荣
group2 王博文,薛钦亮,陕杰才,王芃,陈玮婧
group3 王子恺 黄靖云 陈雪昂 崔忆凡 顾珺涵
group4 张腾甘,王智琛、陆绿、李小可、李逸文
group5 卢浩宇,刘洋凡,李昕旸,窦雨杉,潘淑君。
group6 俞可盈 周念欣 刘雅妮 贾轶涵 夏婧睿
group7 张大方 何文宇 陈杨欢 胡榕珊 杜雪婷
group8 刘怡灿 李韦祎 黄觉 阙惠瑜 唐明明
-
助教评测
stock_analy.h的函数,老师验收系统展示,有亮点的地方请展示出来,可以作为附加分 -
期末上机注意参考2014-2016期末习题、最后的PPT练习、老师最后的上课内容
通过
eval.cpp中main函数的方法直接调用各小组提交的stock_analy_group[第几组].cpp等其他文件, 按要求实现大作业要求的函数,同时可以在提交的文件中自定义方法和其他变量等,有问题及时沟通。
- 评测数据
- 答辩次序:王子恺组、卢浩宇组、王博文组、俞可盈组、刘怡灿组、陶俊屹组、张腾甘组、张大方组。每组15+5分钟。
- 大作业报告(1月10日晚上23:55在Unicourse+提交):文档+代码压缩包
- 评测检查单
- 评测点
按照文档要求在验收大作业之后提交报告
程序设计导论 范举副教授 中国人民大学信息学院