zoukankan      html  css  js  c++  java
  • N0---我的编程教学提纲

    我在教别人编程的时候,会按照下面的提纲内容来教。细节以C#为准。

    结构化程序设计----从变量和函数说起

    1.变量,函数,修饰符。

    变量和函数是类的基本成员。

    变量的类型是其存储的值的类型,函数的类型是返回值的类型。

    变量不带小括号,函数带小括号----这是变量和函数区分的标志。

    函数有函数名,参数,返回值,函数体。

    函数可以用Func<>或Action<>的形式来抽象。

    运算符是一种特殊的函数,运算符都有返回值。

    访问修饰符有public,private等等。其他修饰符讲到面向对象的时候再讲。

    变量,函数,修饰符分别是编程语言中的名词,动词,形容词。

    2.程序=数据结构+算法的实践。

    变量的声明和赋值,常用数据类型。

    常用的运算符。

    函数的定义和调用。

    控制流的语法。

    常用系统自带函数。

    传统的编程练习题。

    3.整体代码组织和其他补充内容。

    sln,csproj,cs。

    C#中:小括号区分变量和函数。花括号是代码块划分的明显标志。方括号取索引。尖括号写类型名称。

    4.结构化与代码块

    要讲的是结构化的含义和代码块的意识.

    结构化的实质就是-----代码分块+流程化控制.

    控制流程图中的矩形----代码块;菱形----流程控制的条件;箭头----控制流程的顺序.

    写程序要有代码块意识.

    控制流有顺序,分支,循环三种。

    --------------------------------------------------------------------------------

    控制流把程序分了块。要看到顺序执行也是分块的。

    结构化程序设计的实质就是对控制流程的设计。

    从变量来看,程序实质是一篇描述变量变化规则的文章。

    从控制流来看,程序就是一棵从Main()函数开始的函数调用树。

    而写程序的实质就是用编程语言表达控制流程。

    -----------------------------------------------------------------------------------

    下面是我对为什么我们需要分支和循环的一种解释。

    人做微积分,会先根据【牛顿-莱布尼兹】公式,求出原函数,然后代入上下限求解。

    计算机,会真的先微分,再积分。先做除乘法,再做加法。

    思考人做微积分和计算机进行微积分的过程,可以看出计算机进行计算的两个特点。

    1.对离散的数据进行数值计算。大量的反复的数值操作,需要人来写循环。

    2.只会数值计算,不会逻辑推理。自己不会说“若。。。。则。。。。”这种话。所以需要人写分支。

    面向对象----现在以后都要方便编码

    1.主学内容

    类和对象,new方法。

    字段,属性,方法,事件。

    继承机制,接口的契约作用,接口跳转,静态多态。

    控件的常用属性和常用事件。可以说是面向对象的最佳实践。

    2.讨论

    面向对象本身是一种工程实践的产物。它符合我们归纳总结式的思维方式,也就是你是个什么东西,所以你应该是怎么样的。

    但是本身这种思想是不严谨的,天下乌鸦一般黑吗?所有鸟都会飞吗?所有鱼都会游泳吗?并不是。

    而且,它不纯粹,它把数据结构和函数绑定到了一起,做一件事最简单的方式是直接去关心你需要的部分,有时候对象附带的部分不仅是多余的,而且是一种麻烦。

    而且,过分的使用面向对象的继承是一种灾难,如果你有一个太大管的太多的基类,那么你写子类的时候就会瞻前顾后,摸不着头脑。

    因为更容易写出更烂的代码了,所以写的时候要考虑好,有自己的规范。

    数据库和网络

    1.使用数据库。增删改查,数据定义,内置函数,其他语法。

    2.使用网络。地址,b/s,webAPI.

    总体

    1.会基本语法,能写代码片段。

    2.会使用一种集成开发环境。

    3.了解特定框架,然后用的时候自己完善它。

    4.在做具体软件功能的时候,遇到不会的再去学。

    给牛哥的提纲

    我的好友牛哥,现在在读化学博士。

    前几日说是有个python项目看不懂,让我看看。

    虽然我不经常用python,但是看了一下,我可以给他讲讲基本语法。项目的核心算法是神经网络,是调用现成的包写的。涉及到神经网络模型的说法,什么维度什么的,我不知道含义。

    给牛哥看了项目,跟他说明了一些他不理解的语法。

    最后我告诉他,其实这些c系语言的语法都是差不多的,最基本的就是3大块。我给你一个提纲,你看着用来查缺补漏吧。

    下面就是这个提纲。

     

  • 相关阅读:
    权限管理
    书城项目第五阶段---book表的curd
    大话设计模式学习
    数据绑定流程分析
    GO 解决使用bee工具,报 bash: bee: command not found
    VScode插件:Todo Tree
    ant design pro如何实现分步表单时,返回上一步值依然被保存
    React开发流程
    为什么函数式组件没有生命周期?
    html2canvas@^1.0.0-rc.1
  • 原文地址:https://www.cnblogs.com/fabao/p/10704075.html
Copyright © 2011-2022 走看看