热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言人工智能程序入门,C语言程序设计——快速入门与提高

课程概况为什么要学习C语言1、C简单好学,上可表达人的思想,下可管理硬件,是顶天(人)立地(机)的语言。2、C和操作系统Unix是孪生兄弟

课程概况

为什么要学习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++。



推荐阅读
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 本文介绍了一个程序,可以输出1000内能被3整除且个位数为6的所有整数。程序使用了循环和条件判断语句来筛选符合条件的整数,并将其输出。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
author-avatar
mobiledu2502924027
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有