Giter VIP home page Giter VIP logo

dartgate's Introduction

关于本书

由来

这些年很有意思,国内外很多的软件设计都喜欢用philosophy 这个词来表示其设计哲学 or 理念,咱也赶一次时髦吧,姑且也在这门课中使用教学哲学来描绘一下吧。

笔者发现,尽管这些年教育领域开始把大堆的“电子书包”搬到了课堂,但高校任教的个人经历感觉课堂依然没有多大本质上的变化:

  • 教师稀里哗啦的讲知识,多么希望学生能住
  • 学生拼了命的记呀记,多么希望像电脑一样记住所有的知识,以应付课程结业

我们发现,有一些学科,比如web编程这类学科,若以知识传授为主线来讲授,实在是事倍功半,为何?因为:

  • 这类学科发展极为迅速,往往过不了几年,技术就出现更新换代。
  • 这类学科知识错综复杂、浩如烟海。比如若是讲到server-client编程时,不可避免涉及到http协议,但是http协议本身又涵盖极大的知识量。

philosophy

因此,知识无穷无尽,不说老师都不能掌握海量的知识,就算老师掌握了足够的知识,也没有时间来传授!

因此在本课程中,笔者想尝试新的教学方法,这个方法是:注重培养学生自主学习编程的思路和能力,注重培养学生遇到苦难知道如何解决的能力。当学生具备如何学习编程的能力后,即便知识更新换代,即便语言有变,都能够对新知识_似曾相识_而不惧!
为了开展这个方法,最为有效的方式是,那一门老师都陌生的语言来讲授,这是一种换位思考。如此,
老师也是自己的学生,老师在课堂上讲课自然也是一个学习的过程。这样一个过程对学生产生示范效果,一步一步带领学习学习编程的能力

因此,本书没有固定的知识点结构和顺序的教学大纲,所做的仅仅是通过基本的案例,带同学入门,然后对同学进行分组,小组设定一个创意,我在对每个小组进行跟踪,因此里面出现的知识都是现场总结出来。每一组的项目实施中会遇到不同的问题,这些问题对老师也是极大的挑战,因为老师并没有预设一个他或她已经非常熟悉的案例情境。遇到这些问题,老师自然要尝试解决,这个尝试解决的过程就是一种能力。

这门课程不是关于编程语言的学习,而是以开展web编程为契机,引导同学逐步掌握学习如何学习编程。因此本课程不覆盖如下内容:

  • 不讲编程技巧

    技巧是每个人自己发展出来的,技巧可以借鉴,但没必要在课堂上教授技巧。

  • 不讲语言规范

    语言规范这类知识理应属于语言课,本课程关于web edu app设计开发,不会覆盖大量的语言知识。笔者认为,语言规范就是一个手册,只要掌握了学习技能,就可以随时查询学习,查的多了,coding多了,自然就记住了。

  • 不讲算法

    显然,算法是一个很大的课题,好的算法能显著降低程序的时间-空间复杂度,但设计一个好的算法与否不是web 应用开发所强调的。对算法感兴趣的可以参考巨著:

编程的要诀

  • 理解大图

    任何一种编程语言一定会伴随它特有的编程模式。对于web app设计与开发,不同的语言效果也会千差万别。比如传统php、jsp、asp是基于模板来开发,这些模板在服务器被解析为html,然后通过http传送到browser;而dart中也有模板,这些模板在都在browser上解析,并且,强调只从服务器传输需要的数据,从来根据数据做html界面动态调整。

  • 胆大包天

    在教学过程中,常常碰到有些学生不敢尝试,似乎写错一个,电脑就会冒烟。课堂一定要鼓励学生敢于尝试,没有什么需要担心的。

  • 善用文档

    这是极为关键的。课程中,若是一个语言或者框架有完善的官方文档,比如www.dart.org。善用这些文档能比花钱买那些教科书来的更为有效。文档通常都会包括如下五个核心部分

    • 语言特性
    • 编程环境
    • API Document
    • tutorial
    • 快速开始
  • 动手为王

    编程是实践为主的活动。没有实践,背会所有的教程都无济于事。

目标

目标概括起来很少:

  • 不再惧怕新的语言核技术,具有独立自学的能力
  • 能够自己着手实现软件idea

dartgate's People

Contributors

iflyup avatar meflyup avatar minitake avatar quitthink avatar weflyup avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.