在过去的几个月里,我一直在吃着以下问题.在见证了这里的回复质量后,我希望我能在这里得到一些很好的回应.
我正在ECE部门开设一门名为" 探索数字信息技术 "的课程,旨在让非专业人士了解整个"计算机如何工作"的事情.作为计算机体系结构的研究生,不仅我的主题背景与学生大不相同(他们中的许多人都是除了Word和YouTube之外没有计算机经验的新生),但我的整个思维方式似乎根本不同.之前我已经取得了很大的成功,更多的技术课程,学生们没有必要的确切材料的背景,但他们是细节导向的,技术头脑的人,他们喜欢变量,数组,索引等事情,间接,功能等.我有一个extroardinarily 课程第一单元的困难时期,主要涵盖HTML,JavaScript和Internet(网络拓扑,IP地址等)
我对SO社区的问题很多,但我会从几个开始:
在最高级别,如果你试图教别人如何像程序员一样思考(将人类级别的算法分解为可以转换为函数,过程语句,if-then-else语句和循环的简单步骤), HTML和JavaScript是你的方法吗?这比其他方法更快地给出了可关联的结果(例如,做有用事情的网页),但是HTML和JavaScript的分离和集成,以及整个"声明性HTML与程序性JavaScript交谈"的事情似乎太多了抽象概念太快了.
如果你是想教HTML和JS的总初学者(有人谁有困难想算法),你会用什么样的资源,你会指定哪些项目,等等?我发现即使我for
尽可能地将概念分解为循环,它仍然有点多.是否有某个地方从第一原则开始,可以真正帮助一个真正的初学者grok为什么括号和分号是必要的,函数的哪些参数是等等?
老实说我还有很多问题,但我认为这是一个很好的起点.我期待着将你的成果编译成一些东西,不仅可以用于本课程的未来迭代,还可以用于我个人的"技术布道"追求.我在这里阅读了另一篇"如何教初学者做X"的问题,但他们似乎针对的是一个完全不同的"初学者"类:那些数学思维且对学习编程非常感兴趣的人,但是不知道从哪里开始.我觉得这个小组的答案与那些思维方式不同的人有很大的不同,而且学习的内在动力可能更少.
HTML和JavaScript绝对不是我的方法.标记和编程是两个截然不同的东西.将JavaScript融入混合中可以解决这个问题,但它也会使事情变得非常复杂.您正在处理两种不同的语法,使用两种不同的概念模型,它们之间的桥梁不透明.您需要处理事件模型以获取输入等基本内容.分心开销不可避免地妨碍了学习基础知识.
你对HTML/JavaScript有多满意?因为完全删除HTML,并且使用更传统的编程模型似乎是一种更好的方法.Python在这方面有很多工作,所以你应该查看教育中的Python.
我同意@Jim.
你有没有想过尝试像Lego Mindstorms这样的东西.您将获得一个非常直观的可视化用户界面,允许用户创建基本的编程结构,而无需编写一行代码(即循环,条件等).
当然,反馈是工作机器/机器人的形式.这肯定会加强使用的编程概念.