Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 教学系统分析与设计-需要多少编程经验?_Oop_Design Patterns_Uml - Fatal编程技术网

Oop 教学系统分析与设计-需要多少编程经验?

Oop 教学系统分析与设计-需要多少编程经验?,oop,design-patterns,uml,Oop,Design Patterns,Uml,我教一个学期的大学系统分析与设计课程。主题包括设计模式、UML、OOP、软件开发生命周期,以及各种方法(如Agile/SCRUM/BDUF/瀑布)的历史、优点和缺点 进入这门课程的学生应该有一些编程方面的经验,但事实上,我看到过各种各样的人,从精通一两门现代语言的人到勉强通过FizzBuzz测试的人 我的问题有两个方面:你认为学生在接触这些主题之前需要多少编程经验,或者你认为他们在学习编码之前应该学习多少编程经验;第二,你认为在课程开始时对他们进行预测试的公平和适当的方法是什么,知道他们的背景中

我教一个学期的大学系统分析与设计课程。主题包括设计模式、UML、OOP、软件开发生命周期,以及各种方法(如Agile/SCRUM/BDUF/瀑布)的历史、优点和缺点

进入这门课程的学生应该有一些编程方面的经验,但事实上,我看到过各种各样的人,从精通一两门现代语言的人到勉强通过FizzBuzz测试的人


我的问题有两个方面:你认为学生在接触这些主题之前需要多少编程经验,或者你认为他们在学习编码之前应该学习多少编程经验;第二,你认为在课程开始时对他们进行预测试的公平和适当的方法是什么,知道他们的背景中没有一致的语言或平台吗?

我认为学生在实践他们所学的材料时学习效果最好。为此,我认为最好的课程应该包括一些涉及编码的项目或小型项目。通常,我希望这门课能教给高水平的本科生和研究生。到那时,学生们应该已经上了一些编程课,一些离散数学和一门基础数据结构课程。虽然从技术上讲,除了编程课程之外,没有其他先决条件,但如果你需要这些课程,你就有更好的机会让学生具备适当的背景

至于预测试,我建议在课程的早期使用一些简单的编程项目来说明设计模式/OOP。对于这些项目,我可能会比你在课堂上的早期作业更严格。提前了解课程需要的编程技能,并以这种方式评分。通过你的评分让人们知道这个要求是严肃的


这听起来可能有些刺耳,但我见过太多的学生依靠他们的项目合作伙伴完成课程,因为他们无法跟上所需的编码。我认为他们并没有从课程中获得太多的东西,因为他们没有机会通过经验将知识内化。

我认为学生在实践他们所学的材料时学习效果最好。为此,我认为最好的课程应该包括一些涉及编码的项目或小型项目。通常,我希望这门课能教给高水平的本科生和研究生。到那时,学生们应该已经上了一些编程课,一些离散数学和一门基础数据结构课程。虽然从技术上讲,除了编程课程之外,没有其他先决条件,但如果你需要这些课程,你就有更好的机会让学生具备适当的背景

至于预测试,我建议在课程的早期使用一些简单的编程项目来说明设计模式/OOP。对于这些项目,我可能会比你在课堂上的早期作业更严格。提前了解课程需要的编程技能,并以这种方式评分。通过你的评分让人们知道这个要求是严肃的


这听起来可能有些刺耳,但我见过太多的学生依靠他们的项目合作伙伴完成课程,因为他们无法跟上所需的编码。我认为他们并没有从这门课程中得到什么,因为他们没有机会通过经验将知识内化。

大约两年前我还是学生时。这类主题在上一节课中有更好的理解。为了掌握所有这些主题,我认为学生必须至少有3门编程课程结构编程,OOP 1,OOP 2软件工程课程也很好,还有一些DB背景。试着鼓励学生从头开始一个项目,收集需求-发布当我两年前还是学生时,没有什么比实践更好的了。这类主题在上一节课中有更好的理解。为了掌握所有这些主题,我认为学生必须至少有3门编程课程结构编程,OOP 1,OOP 2软件工程课程也很好,还有一些DB背景。试着鼓励学生从头开始一个项目需求收集-发布没有什么比实践更好的了

我一直处于相同的位置,我相信学生应该有丰富的编程经验,以及一些数学知识。至少有一门好的、严肃的编程课程,一门数据结构课程,也许还有一门计算机组织或系统编程课程。

我也有过同样的经历,我相信学生们应该有丰富的编程经验和一些数学知识 也很老练。至少是一门好的、严肃的编程课程,一门数据结构课程,也许还有一门计算机组织或系统编程课程。

你不能教学生解决他们从未遇到过的问题。如果你想让学生能够用这些材料做一些事情,他们必须有丰富的编程经验,这样他们才能对所有这些想法想要解决的问题有所了解

问问自己,你为什么要教这些材料,你希望你的学生在学期结束前有什么改变。如果您只想让他们能够在白板上解释概念,那么编程经验就不那么重要了。但真正的目标取决于你:你越仔细地为全班阐述你的目标,你就越有可能实现它们。你希望完成什么?

你不能教学生解决他们从未遇到过的问题。如果你想让学生能够用这些材料做一些事情,他们必须有丰富的编程经验,这样他们才能对所有这些想法想要解决的问题有所了解


问问自己,你为什么要教这些材料,你希望你的学生在学期结束前有什么改变。如果您只想让他们能够在白板上解释概念,那么编程经验就不那么重要了。但真正的目标取决于你:你越仔细地为全班阐述你的目标,你就越有可能实现它们。你希望完成什么?

我还没有受过正规的计算机科学教育,所以我不能从这个角度讲,但我确实觉得欣赏设计模式等概念需要大量的编程经验

在经历了业余编程阶段之后,我认真对待编程,通过经验,我发现正确的设计可以使代码具有高度的可维护性。我经历了从基本的GOTOs的意大利面代码到利用设计模式和MVC方法的过程,并开始认真欣赏基于良好设计的编码

如果没有适当的经验水平,学生们只会认为这门课程是哦,所以有一些东西像设计模式,这很好,但它不会真正打动人心


我还发了第二篇博文,认为将项目作为课程的一个组成部分将真正展示如何利用面向对象编程和设计模式来编写设计良好、可维护性好、可重用的代码。

我没有接受过正式的计算机科学教育,因此我不能从这个角度讲,但我确实觉得,欣赏诸如设计模式之类的概念需要大量的编程经验

在经历了业余编程阶段之后,我认真对待编程,通过经验,我发现正确的设计可以使代码具有高度的可维护性。我经历了从基本的GOTOs的意大利面代码到利用设计模式和MVC方法的过程,并开始认真欣赏基于良好设计的编码

如果没有适当的经验水平,学生们只会认为这门课程是哦,所以有一些东西像设计模式,这很好,但它不会真正打动人心


我还发了第二篇博文,认为将项目作为课程的一个组成部分将真正展示如何利用面向对象编程和设计模式来编写设计良好、可维护、可重用的代码。

Coobird和Tvan关于编程需要大量时间的观点是绝对正确的。我要补充的是,在学习环境中,除了让代码运行外,还必须有即时的反馈,以及需要处理的各种情况


没有什么比吃自己的狗粮和被迫收拾自己的烂摊子更能说明问题了

Coobird和Tvan关于编程需要大量时间的说法绝对正确。我要补充的是,在学习环境中,除了让代码运行外,还必须有即时的反馈,以及需要处理的各种情况


没有什么比吃自己的狗粮和被迫收拾自己的烂摊子更能说明问题了

我想说,这取决于你的课程目标/目的、目标受众和结果

从表面上看,你不需要任何编程背景就能从这样的课程中获得很多东西。毕竟,这些方法和技术实际上是关于通信的,而不是具体的编程。事实上,如果做得好,设计可以消除大量不必要的编程——甚至使用敏捷方法论——这就是为什么他们被告知首先要频繁地与客户沟通

此外,如果目标明确,这门课程可以成为许多其他课程、学院和认证的交叉点;比如各种b 商务学位、管理课程等。如果有一位管理人员参加过这样的课程,并且真正理解了正确客户沟通的必要性,而不是仅仅关注营销想要什么,再加上通常的期限太短,那岂不是很好

因此,我鼓励您将程序员作为此类课程的目标受众。首先把这当作一门沟通课程,然后从那里开始

致以最良好的祝愿

干杯


-Richard

我想说,这取决于你对课程的目标/目的、目标受众和结果

从表面上看,你不需要任何编程背景就能从这样的课程中获得很多东西。毕竟,这些方法和技术实际上是关于通信的,而不是具体的编程。事实上,如果做得好,设计可以消除大量不必要的编程——甚至使用敏捷方法论——这就是为什么他们被告知首先要频繁地与客户沟通

此外,如果目标明确,这门课程可以成为许多其他课程、学院和认证的交叉点;比如各种各样的商业学位、管理课程等等。如果有一位管理人员参加过这样的课程,并且真正理解了正确客户沟通的必要性,而不是仅仅关注本周市场营销想要什么,再加上通常过短的截止日期,那不是很好吗

因此,我鼓励您将程序员作为此类课程的目标受众。首先把这当作一门沟通课程,然后从那里开始

致以最良好的祝愿

干杯


-Richard

我认为在介绍现代编程的各种基本思想的课程之前,可能会有一门基本的计算机编程课程,例如什么是IDE,什么是算法,什么是度量复杂性的基本方法,等。学生有两个选择:使用课程建议的语言,或从这个列表中选择自己的语言,助教和其他人将充分了解,以确定解决方案是否可接受。要考虑的一个问题是,诸如GLOGO、LISP、MODEMA-3或FORTRAN的各种外来语言是否可以。理解如何使用各种工具的想法比使用学术界以外可能不会使用的特定编程语言更为重要

在某些方面,这门课程的期末考试可以作为一种方式来决定一个人是否能够跳过这门课程。其主要思想是在特定领域内固定一些基础知识,就像在小学里,阿拉伯数字系统以10为基数,进行加、减、乘、除和赋值运算,如十、百、,等是数学的基础,而不是作为数学入门学习其中任何一项,这些都是可能的起点:

使用十六进制数基定义函数(如正弦、正割、正切)的三角函数,以及每个函数的余弦和所有函数的倒数,以及此类函数的图形

由路径、广度优先搜索、深度优先搜索和最小权值生成树组成的图论

复数系统或某些高维空间(如N x N实数矩阵)上的导数、积分和偏微分方程

概率和统计理论,包括算术和几何平均数、中位数、模式以及最小二乘法和线性回归的思想,以及足够的代数,因此所有这些都是有意义的

有限数学,如置换、组合、枚举和渐近线

模运算和浮点数字系统

各种形状的几何学检查角度和平行边的类型,作为对各种形状进行分类的方法。这里还有各种形状的周长、面积、表面积和体积公式

序列和序列,带有极限和无限的概念,是一种特殊的东西,它与大写的总和西格玛和乘积π一起带到课堂上

涉及各种逻辑门(如AND、OR、XOR)的布尔代数,不以真值表的形式出现

仅使用矩阵和线性变换的线性代数

逻辑问题类似于棋盘游戏的线索

纯数学,包括各种定理的证明,并使用了一种包含以下缩略语的语法:似乎且仅当,=>意味着向后E表示存在,向后E后跟感叹号表示存在且唯一,颠倒a表示全部或每个限定符,一种安排中的三个点表示因此,另一种安排中的三个点表示自,以及必要条件与充分条件的概念,以及归纳法证明

代数概念,如群、环和域。这里也有t 他提出了逆运算、结合运算和交换运算的概念


想象一下,如果一个教室里有30名学生,其中10名学生接受过基本的北美教育,另外20名学生各自学习了上述12部分数学中的一部分,但不一定是其他部分。像graph这样的术语是否可以是多个分支使用具有完全不同含义的术语的情况,例如,x、y平面上的函数图形与一组顶点和边的图形或网络,如如何构建各种三维形状的二维表示?我相信也会有类似的情况。

我认为在介绍现代编程的各种基本思想的课程之前,可能会有一门基本的计算机编程课程,例如什么是IDE,什么是算法,什么是度量复杂性的基本方法,等。学生有两个选择:使用课程建议的语言,或从这个列表中选择自己的语言,助教和其他人将充分了解,以确定解决方案是否可接受。要考虑的一个问题是,诸如GLOGO、LISP、MODEMA-3或FORTRAN的各种外来语言是否可以。理解如何使用各种工具的想法比使用学术界以外可能不会使用的特定编程语言更为重要

在某些方面,这门课程的期末考试可以作为一种方式来决定一个人是否能够跳过这门课程。其主要思想是在特定领域内固定一些基础知识,就像在小学里,阿拉伯数字系统以10为基数,进行加、减、乘、除和赋值运算,如十、百、,等是数学的基础,而不是作为数学入门学习其中任何一项,这些都是可能的起点:

使用十六进制数基定义函数(如正弦、正割、正切)的三角函数,以及每个函数的余弦和所有函数的倒数,以及此类函数的图形

由路径、广度优先搜索、深度优先搜索和最小权值生成树组成的图论

复数系统或某些高维空间(如N x N实数矩阵)上的导数、积分和偏微分方程

概率和统计理论,包括算术和几何平均数、中位数、模式以及最小二乘法和线性回归的思想,以及足够的代数,因此所有这些都是有意义的

有限数学,如置换、组合、枚举和渐近线

模运算和浮点数字系统

各种形状的几何学检查角度和平行边的类型,作为对各种形状进行分类的方法。这里还有各种形状的周长、面积、表面积和体积公式

序列和序列,带有极限和无限的概念,是一种特殊的东西,它与大写的总和西格玛和乘积π一起带到课堂上

涉及各种逻辑门(如AND、OR、XOR)的布尔代数,不以真值表的形式出现

仅使用矩阵和线性变换的线性代数

逻辑问题类似于棋盘游戏的线索

纯数学,包括各种定理的证明,并使用了一种包含以下缩略语的语法:似乎且仅当,=>意味着向后E表示存在,向后E后跟感叹号表示存在且唯一,颠倒a表示全部或每个限定符,一种安排中的三个点表示因此,另一种安排中的三个点表示自,以及必要条件与充分条件的概念,以及归纳法证明

代数概念,如群、环和域。这里还有逆运算、结合运算和交换运算的概念


想象一下,如果一个教室里有30名学生,其中10名学生接受过基本的北美教育,另外20名学生各自学习了上述12部分数学中的一部分,但不一定是其他部分。像graph这样的术语是否可以是多个分支使用具有完全不同含义的术语的情况,例如,x、y平面上的函数图形与一组顶点和边的图形或网络,如如何构建各种三维形状的二维表示?我相信情况也是如此。

我做程序员已经很长时间了,我希望一开始就学会了正确的系统分析

正确分析系统并设计解决方案是创建正确解决方案的基本步骤。系统分析方法为你提供了一个建立的基础。这是蓝图。如果没有适当的计划,你如何构建应用程序?这是可以做到的,但通常是一团糟。如果我有一门编程课程,我会教:

1.系统分析与设计。 2.项目规划 PMI机构使用MS项目。获得这些技能后,您可以以专业的方式从事任何编程工作。 3、编程解决方案VB.NET、C、C++、ASP.NET java等创建设计。p>
如果你想成为一名专业程序员,那么这些就是你需要的基本技能。不幸的是,我还没有在我工作过的地方看到这些项目。一个好的计划总是有帮助的。

我做程序员已经很长时间了,我希望我一开始就学会了正确的系统分析

正确分析系统并设计解决方案是创建正确解决方案的基本步骤。系统分析方法为你提供了一个建立的基础。这是蓝图。如果没有适当的计划,你如何构建应用程序?这是可以做到的,但通常是一团糟。如果我有一门编程课程,我会教:

1.系统分析与设计。 2.项目规划PMI研究所使用MS项目。获得这些技能后,您可以以专业的方式从事任何编程工作。 3、编程解决方案VB.NET、C、C++、ASP.NET java等创建设计。p>
如果你想成为一名专业程序员,那么这些就是你需要的基本技能。不幸的是,我还没有在我工作过的地方看到这些项目。一个好的计划总是有帮助的。

这与我在前几个学期使用的模型非常接近,虽然学生们似乎显著提高了他们的沟通技能,但似乎没有多少人知道如何在软件开发中实际应用这些概念。这与我在前几个学期使用的模型非常接近,虽然学生们似乎大大提高了他们的沟通技巧,但似乎没有多少人知道如何在软件开发中实际应用这些概念。在我看来,新程序员似乎不知道他们为什么要上这门课。。。并列争球?模式?这些东西有什么用处?他们可能会认为学习、反刍和忘记更多的是象牙塔垃圾。同意。在我看来,新程序员似乎不知道他们为什么要上这门课。。。并列争球?模式?这些东西有什么用处?他们可能会认为学习、反刍和遗忘更多的是象牙塔的垃圾。