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大块。我给你一个提纲,你看着用来查缺补漏吧。

    下面就是这个提纲。

     

  • 相关阅读:
    Note/Solution 转置原理 & 多点求值
    Note/Solution 「洛谷 P5158」「模板」多项式快速插值
    Solution 「CTS 2019」「洛谷 P5404」氪金手游
    Solution 「CEOI 2017」「洛谷 P4654」Mousetrap
    Solution Set Border Theory
    Solution Set Stirling 数相关杂题
    Solution 「CEOI 2006」「洛谷 P5974」ANTENNA
    Solution 「ZJOI 2013」「洛谷 P3337」防守战线
    Solution 「CF 923E」Perpetual Subtraction
    KVM虚拟化
  • 原文地址:https://www.cnblogs.com/fabao/p/10704075.html
Copyright © 2011-2022 走看看