渐进式迭代教学法--PHP

  目前常见的课程体系大致情况如下:

  阶段1:前端基础(html+css+js)

  阶段2:PHP&MySQL基础 + 框架 (PHP基本语法,面向对象,mvc,sql基础,TP项目)

  阶段3:前端高级(JS语法,JS语言特性,ajax,JQ,Node,Vue )

  阶段4:微信

  阶段5:服务器部分 (linux基础,Git,Nginx,NoSQL,优化及高可用集群,Laravel项目)

  阶段6:扩展 (React,Docker,Swoole,爬虫)

  这样的课程体系,最大的弊端就是课程关联性太弱,同时课程的切入点不合适,让人有一种盲人摸象的感觉;

  首先明确,我们的课程是专业的 web 应用编程课,以 PHP 这门编程语言为核心。

  PHP 开发的最大特点就是 入门容易开发快,这也是PHP流行和得到广泛应用最重要的原因之一;

  但是,入门容易和开发快是有前提的:

  网络通信是做web应用开发的基石,所以,TCP/IP 必须知道,HTTP必须精通,一切都是基于请求和响应的;

  PHP在整个web应用中最重要的就是逻辑处理,因此前台页面展示交由HTML,后台的数据持久化交由mysql;网路服务器交由Nginx或者Apache;

  所以,想要使用PHP完成一个完整且健壮的 web 应用,关键在于客户端发来了什么请求,服务器端如何处理并响应,这一点不明白,PHP语法学的在精通也是无济于事;

  而上面的课程就存在这样的问题,前端基础学完就会直接进入到语言学习部分,根本没有说明我学的PHP到底用在web应用的那个环节,起到怎样的作用,为什么要学PHP 等问题;

  而渐进式迭代教学法就是为了解决这个问题的,他是一个课程体系的设计逻辑;

  下面使用 渐进式迭代教学法 对上面的课程做修改,并进行说明:

  阶段1:前端基础 (html+css+js)

  说明:进入编程世界,使用HTML和CSS制作简单的静态页面,配合JS做出一定的动态效果,提升成就感;

  阶段2:编程语言入门及网络通信原理 (JS语言特性 + ajax + jq + Node + SQL基础 )

  说明:使学生入门编程的第一语言由原来的 PHP 改为 JS ,因为在Node中,我们可以进行相对原始的网络编程

  自己实现 HTTP 服务器的编写,实现HTTP客户端的编写,在这个过程中 深刻感受请求及响应的整个HTTP过程;

  利用这个节点,就能将网络通信的原理讲解清楚;

  同时,在编程中出现的名词也会更多的涉及,如:事件绑定及事件轮询的原理,异步与同步的原理,阻塞与非阻塞,回调等;

  还会涉及到基本的语言语法,解析引擎及编译原理等;

  这个阶段结束,学生就会有能力完成一个具备基本增删改查的web应用,且对整个web应用的环节无疑问;

  而更重要的就是在这个过程中会形成web应用编程的基本逻辑和编程思维的建立;

  后面课程中的几乎所有内容,都已客户端请求与响应为基本逻辑,也同时都有了讲解理由和依据;

  如:客户端提交到服务器的数据需要永久保存 --> MySQL基础讲解;

  掌握网络通信基本原理,建立基本的web编程世界观!!!

  至此,第2轮迭代结束;

  阶段3:WAMP 环境下的Web应用编程 (apache + PHP基本语法 + 面向对象 + mvc + TP5项目)

  说明:在上一阶段涉及到的网络通信中,需要自己写HTTP服务器端代码,需要自己接受并判断请求,需要自己写网络响应数据,而这些都可以交给现成的服务器来做,而且做得更好;

  因此我就不在需要考虑服务器的问题,重心就可以转移到具体的业务逻辑中,而PHP就是擅长业务逻辑处理的编程语言,学起来容易,开发起来也快,这就是它最大的优势;

  而如果面对普通中大型项目,我们则需要使用MVC进行分工协作,而成熟的MVC框架,就国内来说非TP莫属;

  最后使用TP加之前的html,CSS ,ajax与jq 完成一个完整的项目;

  这一段的重要性就是对第二阶段的迭代替换,使用 Apache 替换Node-http-server,使用PHP替换 JS 进行网络请求后的逻辑处理,使整个wamp环境的出现变得顺理成章;

  这个阶段开始,才真正进入到以PHP为核心的 web 应用编程,也在这一阶段凸显出PHP的优势和学习PHP的理由;

  至此,进入PHP世界,明白PHP在整个Web应用中的重要性和优势所在,带着目标和期许进入学习周期;

  同时,也能感受到编程语言仅仅是解决问题的工具,而PHP是哪个用起来最得心应手的……

  本阶段结束,能够通过对 js和PHP 两种编程语言的学习,更深的体会编译原理和解析引擎的工作原理,对编程工程化有初步了解,对面向对象、框架的使用、数据类型等都有立体感受;

  最后通过 TP 框架的项目串联整个第2和第3阶段的重要知识点;

  阶段4:LAMP 环境下的WEB应用编程 (linux基础,lamp环境的搭建,缓存及NoSQL工具,sql优化及高可用集群,Docker虚拟化,WEB安全攻防基础)

  说明:第三阶段中,仅学会PHP语法结构和框架,是不足以构建一个完整的web应用程序的,想要使PHP能够承受成千上万的大并发请求压力,并且能够抵御一般的黑客攻击,使用WAMP环境是很难以支撑和实现的;

  在此阶段则引入Linux及各种工具,以配合PHP完成整个web应用的架构;由 阶段2和阶段3 的单服务器架构引入linux下的多服务器集群架构;

  依然以整个HTTP请求与响应为基本逻辑,提出在请求及响应过程中的各种问题引出集群缓存等技术的必要性;

  此阶段结束,可以具备搭建大型WEB应用的能力,掌握web开发的各个环节,具备web开发的宏观意识;

  阶段5:项目工程化(Git , Vue ,Laravel, 前后端分离项目)

  说明:之前的阶段全部为单人开发,对于大型项目是不现实的,由此引入Git+Vue+Laravel技术,使用代码管理工具,前后端分离,前端及后端使用各自的工程化体系设计,由单人开发进入多人分工合作开发;

  将班级分为每3-5人组成的小组,合作开发项目并上线运行;

  配合前四个阶段的内容,做一个上线并运行的项目并不难;

  阶段6:应用技术 (微信 爬虫 swoole等)

  说明:以PHP为中心,进行相关技术扩展;不再过多解释;

  总结:

  我创造的这套 渐进式迭代教学法,其根本就是 由浅入深、由原理入实战的教学方法,使整个课程前后连贯且有因果,不再产生类似盲人摸象的无助感,每一个阶段的目的和目标都是明确的,上一阶段辅助下一阶段,下一阶段承接上一阶段;每个阶段都会用到上一阶段的关键知识点,而每个阶段都会将上一阶段的知识迭代升级,在这个迭代的过程中,不断复习同时又会不断深入;

  这也是起名为 渐进式迭代教学法 的原因;

  同时,这样的课程设计也在一定程度上缓解了大部分人 学完就忘 的现象,这是一个不断迭代的过程,会及时复习;

  而在这样的课程体系中,即使某些细节的知识点忘记了,也没关系,比如在第4阶段很可能就会忘记第2阶段中具体NodeJS中的语法,而此时具体语法已经不重要了,只要能在你脑海中留下关于使用NodeJS搭建HTTP服务器的原理知识就可以了;第二阶段出现的目的就是打通整个网络通信原理,不管以后是否还能使用NodeJS写一个HTTP服务器,这都已经不重要了,因为已经有了Nginx等技术做支撑;

  当然,这个教学法有个最大的 Bug , 就是对老师要求比较高,每个阶段的老师都必须明确自己所授课阶段的目的性,同时还必须要具备承前启后的技术能力,这一点尤为重要,所以备课压力会相当大,每个老师的备课底线就是两个阶段;

转载于:https://www.cnblogs.com/yyuyu/p/10097193.html

渐进式迭代教学法--PHP相关推荐

  1. ECCV 2018|商汤37篇论文入选,为你解读精选论文(附链接+开源资源)

    整理 | Jane 出品| AI科技大本营 [导读]9 月 8 日-14 日,每两年举办一次的 2018 欧洲计算机视觉大会(ECCV 2018)在德国慕尼黑召开,本次会议总共收到了 2439 篇有效 ...

  2. 商汤及联合实验室入选论文重点解读 | ECCV 2018

    本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处 本文约3400字,建议阅读10分钟. 本文为大家解读了几篇商汤及联合实验室的入选论文. 9月8日-14日,备受瞩目的201 ...

  3. ResNet被全面超越了,是Transformer干的:依图科技开源“可大可小”T2T-ViT,轻量版优于MobileNet...

    ↑ 点击蓝字 关注深度学习技术前沿 作者丨Happy 转自丨极市平台 导读 又一篇Transformer来了!本文在ViT方面进行了一次突破性探索,提出了首次全面超越ResNet,甚至轻量化版本优于M ...

  4. 真 · 圆桌!WAIC论坛上演自动驾驶专家激辩,直面技术路径之争

    7月10日,由东浩兰生和「机器之心-Auto Byte」联合主办的「WAIC智慧出行论坛」在上海世博展览馆举办.多位行业重磅人物的参与,令该场论坛成为2021年度世界人工智能大会上,最引人关注的相关领 ...

  5. ResNet被全面超越了,是Transformer干的:轻量版优于MobileNet

    作者丨Happy    审稿|邓富城    编辑丨极市平台 极市导读 又一篇Transformer来了!本文在ViT方面进行了一次突破性探索,提出了首次全面超越ResNet,甚至轻量化版本优于Mobi ...

  6. dbscan论文_重点关注!我校论文被CCF A类人工智能国际顶级学术会议IJCAI录用

    4月20日,CCF A类人工智能国际顶级学术会议International Joint Conference on Artificial Intelligence (IJCAI 2020)发来通知,我 ...

  7. SAAS建站网站和传统建站的区别

    说起建设网站需要什么大小,很多人第一时间就会说网站服务器和域名.的确传统的网站是需要这些,但是随着互联网的发展一个新的建站方式诞生了,他就是SAAS建站.SAAS建站不用服务器还更高效,很多人就会问S ...

  8. 论文调研——23.2.28

    文章目录 Diffusion Models: A Comprehensive Survey of Methods and Applications ADVERSARIAL TRAINING METHO ...

  9. 软件项目管理期末复习--项目过程模型

    软件项目管理 项目过程模型 分析项目特征 分析项目是目标驱动的还是产品驱动的 分析项目其他特征 面向数据(data-oriented),如IS,还是面向过程控制(process-oriented),如 ...

最新文章

  1. 从设计到实现,一步步教你实现Android-Universal-ImageLoader-辅助类
  2. 如何使用TensorFlow Eager执行训练自己的FaceID ConvNet
  3. springmvc 拦截器、国际化、验证
  4. FIFO的读写操作时序图
  5. RBAC权限管理总结
  6. 突然而降的福利,看看你砸到没...
  7. X64 Linux 无法从本地字符界面登陆。
  8. DevExpress WPF v18.2新版亮点(四)
  9. linux苹果开发者p12,苹果testflight发布流程
  10. ztree 更新配置后重新渲染树_【问】zTree异步加载时添加父节点怎样避免再次加载整树...
  11. 无服务器安全性:将其置于自动驾驶仪上
  12. 【MySQL5.7版本单节点大数据量迁移到PXC8.0版本集群全记】
  13. 如何想要在开机启动登陆时,用户名也不输入
  14. 《测试类职位面试360度》
  15. 【数字信号调制】基于matlab二进制数字相位调制(2PSK)【含Matlab源码 1000期】
  16. HTML5+CSS大作业 网页制作代码_大学生网页制作作业代码——年会抽奖网页设计(1页)
  17. 【BZOJ5470】[FJOI2018]所罗门王的宝藏()
  18. win7远程桌面连接 简易教程
  19. 运行 Clojure 编程实战 5.3 节代码出现 Could not locate Clojure resource on classpath 问题
  20. Dapper基础入门

热门文章

  1. iis 服务器出现server too busy!
  2. 在Linux下用gdb检测内核rootkit
  3. Intel Developer Forum 2010英特尔信息技术峰会第二天小记
  4. Node.js 连接数据库
  5. DOM中严格区分大小写
  6. 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用
  7. 【转载】Sqlserver限制最大可使用内存
  8. 复习宝典之Maven项目管理
  9. 解决nginx负载均衡高可用keepalived只针对物理机的问题
  10. bzoj千题计划197:bzoj4247: 挂饰