对软件学院教学建议若干

对软件学院教学建议若干

一、        总章

我个人喜欢以下四句话,希望大家也借鉴下:

1、              面对已经发展了50多年的对手,年轻的自己如果遵从和对手一样的方法发展自己,自己的经验、资金、力量都不如他,那只会永远排在他的后面;若想超过他,只有创新,使用更好的方法发展自己,即使这会有一些风险。

2、              同一个山坡,有人挖了一个30米深的井挖到了水,有人挖了三个10米深的井什么都没挖到。

3、              曾经有一个人,骂国王是笨蛋,后来他被抓起来交给国王审判。国王判了他两条罪,第一条是侮辱了国王,第二条是泄露了国家机密。

4、              高中一个好朋友,每月生活费并不多,但每月前十天用钱如水,而后二十天却青菜馒头度日,甚至连买书买作业本的钱也省了,拿平时考试过的卷子背面交作业。他穷吗?他是节约用纸吗?

二、        教学流程

建议一:

每一个真正搞软件的人都应该清楚,所有程序都是层层中间件调用,而语言只负责逻辑,库负责封装调用。既然如此,哪些技术最重要、最能体现一个人的实力呢?是C语言。第一条建议就是,开C语言课,将C设置为大一入门学习语言,而非C++C++标准库里封装了过多的操作,不利于同学们真正领悟到语言的逻辑。 C++可以作为第二门语言去学习,最好安排在与数据结构学习的同时,两者保持进度,正好可以理解C++库中的一些内部实现。这是大一上学期搞定的。

建议二:

         数据结构这门课,我们安排的教学时间太短了,如此重要的一门课,如果仅仅是教目前这么多个学时,那么后面的排序、查找就很难讲透彻了。我建议首先在学习完C语言后,讲数据结构C语言版,将基本数据结构讲完。然后再开一门数据结构与应用,将数据结构与基本类型实现(如C++中的字符、链表、HASH表等)、数据库实现(B+树查找、HASH查找)、ACM技巧(算法技巧,可以提高大家对C的熟悉)相结合,这样效果会很好,如果学生学完以上两门课的话,可以算是计算机入门了。如果说我课安排的紧的人,我想,一年时间入编程的门,算紧吗?这样,大一一年的任务完成了入门学习。

建议三:

         数据结构培训完后,编程基本入门了,之后应该开软件开发原理这门课,这门课主要内容告诉软件是如何运行的,所有软件是调底层API,一直调用到CPU指令集、微程序、微微程序。上这课的同时,按教学进度应该讲到了计算机组成原理、汇编语言、操作系统、计算机网络,我认为这应该是大二一年的任务。有人一定会说让大二的人学这么难的操作系统,计算机网络他们能理解吗?我可以负责任的说,可以,毕竟是一年时间。学到这里,软件编程已经能达到初级水平了,即使不会编复杂的应用程序,但至少原理和算法应该会了。

建议四:

         到了大三,前面的基础已经让同学们明白软件的原理,这一年主要学架构和开发应用。这一年我认为学院应该上半年必修,下半年选修。上半年,培养大家架构思想和Web开发、嵌入开发、Winform开发等思想,让大家明白各种开发的关系,需要哪些知识,了解最新的技术走向。顺便学习一下C#JAVA基础。有C/C++基础的话,JAVAC#只需要一学期就可以了,哪像现在这样重复这么多,还有什么JAVA认证,纯浪费的课。还有操作系统认证这门课,竟然只教Windows不教Linux,让我很不解,另外还有软件项目实例分析,这门课竟然开在C#这门课之前,而里面全是C#的例子,这样老师教的累,同学们学的更累,完全没接触过的语言,直接教拖控件,这不仅仅是对C#的侮辱,也是对同学的误导。这样,上学期已经学会了项目开发基础,那么下学期就应该针对大家的选择,去选修相应的课。建议从多媒体,Web开发,客户端开发,服务端开发,手机应用,系统内核开发……等几方向开设选修课,每人必须选一个方向,这样可以让同学们选择喜欢的方向学习。这样大三下学期可以提高学生的在不同方向的开发基础。

建议五:

         到了大四,是应该提供项目开发了,可是开发什么项目呢?一味的去弄低档次的项目开发,不仅仅会让学生对软件这行业失去兴趣,反而成了大家的累赘!什么是高档次的开发?例如,最近Web游戏非常火,我们弄项目组开发这个,这个档次在什么级别的呢?企业级的,需要用CPU时钟去处理每秒的游戏数据变化,需要服务器负载去均衡在线并发,需要处理安全问题。还有什么项目档次高?搜索引擎,开发一个搜索引擎,从网络爬虫开始,设计整个架构,二分分词,全文索引等等。还有什么?Web方向可以开发一个高质量的CMS,可以开发高质量的在线考试系统。还有什么?客户端的可以开发游戏对战平台,开发类似QQ的聊天程序。游戏开发的可以开发MMORPG的简单例子,可以开发动作系列游戏,设计高质量碰撞检测等高端问题……我想,这些高质量的项目才是真正应该摆上日程的,而不是XXX管理系统!!!如果你说怕同学不会做,那我告诉你,完全不可能。在不要求高并发的条件下,这些系统的设计难度并不大。而且很多书上都有这些例子和开发方案。只要学一本书,就可以立刻下手编写。

三、        教学方法

建议一:

         均衡教学进度,不要教一门课,一看48课时,而这门课又比较简单,结果教的非常慢,或者是教完以后就上自习。建议课时比较松的课,老师可以教一下这门课的课外知识,提高点难度,或者讲下应用等。如果一门课,课时少,结果课又很难,怎么办?按正常进度讲,并向学院反映,要求增加课时!这是正确的做法。

四、        管理办法

建议一:

         减少无聊讲座,所有讲座尽量设置为自愿,除非有非常好的讲座,至于讲座的评判,由有经验的教师来决定。如果有经验的老师认为某讲座有意义的话,那应该还不错吧。

建议二:

         对于学院的开支,应拿出一部分来给每个专业订阅计算机知识读物,例如〈程序员〉这类杂志。对于一些学院比赛,特别是软件设计大赛这类校级比赛,应该加大投入。

建议三:

         在每班或每专业有一个辅导员外,应增设一名任课老师作为辅助教师,因为辅导员不了解专业方面的知识,而找一名任课老师负责自己教的一个专业的教学,这样更有权威性。

建议四:

         活动针对学生,而不是针对校级活动。并不是校级活动有什么,我们就一定得准备对应的活动,就一定要盘盘照搬。一方面,我们确实要配合校级活动相应开展一些,另一方面,我们要针对软件做一些有特色的活动。如:黑客攻防赛,拆装电脑,Wndows个性化大赛……等等。

五、        领导层

建议一:

         设置领导直接信箱,让同学们有意见直接EMAIL。我想说,领导不是中间件,对下面不要透明,而要实际掌握情况。没有数据掌握在手,怎么能应用新的教学计划呢?

 

特别声明:本文观点并不代表本作者观点,而是由数十个朋友一起讨论写成,本文请勿对号入座。

posted on 2010-05-19 18:34  寻雨  阅读(335)  评论(1编辑  收藏  举报

导航