课程概况
为什么要学习C语言
1、C简单好学,上可表达人的思想,下可管理硬件,是顶天(人)立地(机)的语言。
2、C和操作系统Unix是孪生兄弟,所有操作系统包括Windows,Android,IOS都是C写的。懂C语言,让你更好的理解这些系统。
3、C是几乎所有其他语言的母语言。掌握C,让你对其他语言触类旁通。
4、过去50年中,在众多编程语言中,C的流行度始终稳居前3.
5、不学C语言,你会后悔。
为什么我们叫“快速入门和提高”
关于“快速入门”:
1、方法上,强调学习编程是:即模仿-理解-仿写-创造这样的自然过程,教学设计贯彻这一思路。
2、时间上,我们拚弃了C的一些鸡肋语法点,比如a=i++ + ++i;之类的语法游戏;节约了时间。
关于“提高”:
1、全新的视角来设计C语言课程,从“我学C语言”——》“我用C语言”——》“我玩C语言”。
2、在训练编程思维上,我们设计很多案例,比如用计算机做模拟实验,用计算机去推理,递归函数的设计思路等。
3、我们的目标:在大家学习C语言的同时,理解计算机对人类进步的贡献,憧憬计算机服务人类的未来。
“课程介绍视频”更具体的展现我们的教学方法。
学习计算机程序设计的理论意义:
智能及智能的本质是古今中外许多哲学家、脑科学家一直在努力探索和研究的问题,但至今仍然没有明显进展,以致智能的发生与生命起源、宇宙的来历、物质的本质一起被列为自然界四大奥秘。让我们从信息科学角度去认识智能,思考智能的本质,探索人工智能到底发展到什么程度。 尽管飞机不能扇动翅膀,也能像鸟一样的飞翔;同样,谁又能说没有神经细胞的计算机不会思考?
学习计算机程序设计的现实意义:
机械设备是人手和腿的延伸,计算机是人脑的延伸,我们可以用计算机控制远在火星上的火星车;我们可以用计算机去给百万高考考生去排榜;我们可以让机器从销售记录数据中发现,尿布和啤酒放在一起可以提高超市销售量;我们可以把已知的事实交给计算机,让它来推理谁是犯罪分子;当计划生育政策有新政策发布时,我们可以让计算机去模拟,这个政策对人口数量和结构的影响。 纵观从计算机——》互联网——》可穿戴设备的IT发展史,信息产业在可预见的将来一直是朝阳产业,这个产业中英雄辈出,且不那么依赖拼爹。总之,懂计算机程序设计,利于你创业或找工作。
课程大纲
第一单元——C语言概论
课程目标——促进我们思考智能
课程目标——促进人和机器的交流(举例了火星车)
课程目标——机器为人服务的例子(医院CT的原理)
准备编程——认识编译器、源代码和可执行程序的关系
开始编程——用printf输出文字和回车符
教师答疑——用虚拟机架设编译环境VC6的操作
关于智能的又一个有趣的讨论
小技巧——虚拟机和物理机共享剪贴板
学习思路——教学思路介绍
人工智能——学术文献,感兴趣者可以读读,完全是课外读物
DEVC++的安装和使用
概述测试
编程作业
第二单元——顺序结构:从先到后一步一步执行
输入scanf语句和整型小数形转换练习与作业
模仿案例1——初中物理题求铅球的重量
模仿案例2——给程序输入数据的scanf函数的使用
模仿案例3——一元二次实数求解
模仿案例4——求余数和强制类型转换综合练习
优先级口诀
大家共同总结一个学习笔记——众人拾柴火焰高
顺序结构编程作业
请根据本单元内容设计两道题,选择或判断题
第三单元——循环结构:有条件的周而复始
模仿案例1——从1加到100用while循环完成
模仿案例2——计算PI的值
模仿案例3——斐波那契数列的第n项
模仿案例4——for循环实现阶乘
模仿案例5——for实现斐波那契相邻比之和
大家共同总结一个学习笔记——众人拾柴火焰高
循环训练测试
循环结构编程作业
教学相长——请出一道判断题或选择题
第四单元——分支结构:分而治之
分支案例1——基本的if分支实现分段函数
分支案例2——韩信点兵if和while的结合使用
分支案例3——输入三个数排序输出
分支案例4——判断一个年份是否为闰年
分支案例5——简单的计算器
分支案例6——复数域内求解一元二次方程
大家共同总结一个学习笔记,总结学到了什么
分支结构——逻辑运算测试
分支结构——分而治之编程作业
综合练习和讨论
请设计一道引起同学的兴趣和欲望的编程题
创建一道题目
第五单元——顺序分支循环综合应用:训练编程思维,解决实际问题
计算机模拟实验:计算机模拟实验的基石——随机函数rand()
计算机模拟实验:用实验测量圆周率PI
计算机模拟实验:一孩半计划生育政策会不会影响男女平衡
探索世界难题:奇偶归一猜想的验证
把你的智慧给电脑:设计游戏——抢最后一根
你能想到的可以用计算模拟实验去解决的问题
众人拾柴:大家共同总结一个学习笔记,总结学到了什么
训练编程思维,编程训练
训练编程思维,解决实际问题
你能否设计一个游戏?
综合练习和讨论
第六单元——循环进阶:找规律训练
字符变量dowhile及break测试
找规律
找规律训练——乘法口诀表的实现
找规律训练2——菱形字母阵列的实现
凯撒密码的实现
众人拾柴——大家共同总结一个学习笔记,总结学到了什么
第七单元——分支循环再练:用计算机推理
新郎新娘配对推理
某中学社团的招聘题目
众人拾柴:大家共同总结一个学习笔记,总结学到了什么
逻辑运算测试
推理题作业
第八单元——映射客观世界的新工具——数组:批量数据处理
数组的定义和使用
小时候玩的扑克牌神奇序列游戏
字符数组与字符串
大家共同总结一个学习笔记,总结学到了什么,不要求人人发言
数组:批量数据处理
第九单元——模块设计与代码重用的载体:函数
函数的定义
需要背下来的一个函数代码——素数判断
通用的解方程的方法——二分法解方程
未解之谜——歌德巴赫猜想验证
大家共同总结一个学习笔记,总结学到了什么,不要求人人发言
模块设计与代码重用的载体:函数
第十单元——模块设计与代码重用的载体:变量类型和递归函数
函数与变量类型
递归函数——函数直接或间接自己调用自己
递归函数——奥数题目
递归函数经典例子——汉诺塔
大家共同总结一个学习笔记,总结学到了什么,不要求人人发言
变量类型和递归函数
第十一单元——函数与数组,数组做函数的参数
计算模拟实验——你换不换手
计算机模拟实验——扑克牌序列
计算机模拟实验——投骰子
计算机模拟实验——蒙特卡洛方法——同一天过生日的概率问题
大家共同总结一个学习笔记,总结学到了什么,不要求人人发言
函数与数组,数组做函数的参数
第十二单元——指针:就是地址变量
指针变量——地址变量的定义
函数形参与实参结合——指针的作用之一
数组做函数的参数
函数指针及应用
指针和一维数组
7mallc与free
大家共同总结一个学习笔记,总结学到了什么,不要求人人发言
第十三单元——结构体和文件
结构体和文件
结构体和文件读写1
第十四章——位运算和文件加密
Tea加密算法背景介绍
main参数与程序分析
二进制文件的读与写
位运算符与Tea算法
Tea加密算法
预备知识
无要求,只要能够会用操作系统,懂文件和目录的概念即可
常见问题
关于C语言编译器,大家可以用任何编译器。
我们也提供一个VirtualBox的虚拟盘,其中包含XP操作系统和Visual C++6.0编译器。
也推荐DEV-C++。