第一次教授C语言程序设计课程,相比计算机组成原理、arm体系结构等偏向硬件的课程,C的教学方式要灵活一些。计算机组成原理课程偏向理论,哈尔滨工业大学的计算机组成原理是国家精品课,增加了mooc+spoc的方式,但主要还是课堂讲解。arm体系结构也是硬件课程,之前的经验是学生都不太爱学,抽象,下学期预备改革的方式是加入汇编编程,或者使用开发板。这学期C语言程序设计课程教授课程中做了一些尝试:

博客

首先我很喜欢博客,喜欢将所学所讲写下来的踏实感。在我自己假期备课C语言课程的时候尝试了3种方法:

  • 看课本,课本内容是最基础的,学习应该从基础的开始看,但是悲剧的发现我看不下去,或者看过一遍只是大概知道主要内容,但是却讲不出来,之所以讲不出来因为理解不够透彻。
  • 看mooc,翁恺老师的C语言程序设计是mooc中访问量数一数二的,然后我开始“听”课,当然在实践的时候也会使用devc++编译运行,但是一天下来感觉和看课本类似,还是觉得知识并没有吸收到脑袋里。
  • 边看mooc边记博客边动手编程,扔掉课本,专心看翁恺老师的mooc,用devc++编译器将所有代码都敲写一遍,并将学习到的内容都写在博客里,虽然这样速度比单纯看课本和看mooc要慢很多,在听前几节课的时候,几个小时可能只学习了30分钟的mooc,但是这30分钟的内容却都实打实的记在脑里了!虽然大家都说谭浩强老师的课本比较绕,但当我学习完一章节的mooc内容,再回头看课本的时候,发现课本内容很简单清晰明了了。

其实我并不是有意尝试三种方法,而是为了把C语言知识掌握了不得不做的,但是从这件事情可以看出动手的重要性,学习的时候应该动手,教课的时候应该让学生动手:

  • 学习的东西要动手,怎么算动手?

    • 上课听老师讲课的时候或者听mooc的时候,要记笔记,上课不像听mooc可以回放,手也没那么快,不能将所有东西都记录下来,那就记知识点,如果听了40分钟,能够把老师讲解的知识点总结记录下来,这节课就吸收了80%。
    • 看书的时候随手记下所感所想或者是疑问,看专业书的时候是有必要的,看课外书也有必要,很多人写读后感就是从随手记录总结出来的。
  • 教课的时候要让学生动手,如果老师单纯的讲解知识,渐渐就会演变成老师的独角戏,实在不想再去演独角戏
    • 让学生动手编程
    • 课堂考核
    • 等等,肯定还有其他很多办法,这里就要说到博客的另一个好处,可以看到很多老师讲课的细节,比去听课去听讲座的效果还好,这里尤其推荐娄老师,一方面和娄老师教的课程重合的比较多,另一方面娄老师是个爱写爱总结的,所以从他的博客学习到好多。

另外写博客还有一个好处,好记性不如烂笔头,像吴军老师在硅谷来信中说的:

只有善于写作和记录,总结每一次成功的经验,或者某一次失败的教训,才能让自己做第二件事情的时候站在第一次的基础之上,第三次站在第二次的基础上,这样才有叠加效应,能不断的前进。

人的记忆力是有限的,不可能做到第十件事情的时候,能够把前九次的细节记得一清二楚,因此很多人做事情总是不断重复错误,很难获得叠加式成功。

叠加效应在教师这个行业更是非常适用,目前利用博客学习的方式是学习->记笔记->捋顺思路->写上课大纲博客->写ppt,为了让上课的效果更好,下次预备修改为学习->记笔记->捋顺思路->做ppt->写上课大纲博客-->回头修改ppt,这样可以对上课内容多一次梳理。

用博客写作业

因为我自己从写博客获益了,然后就非常鼓励学生也写博客,强迫授课班级学生开博客写作业,学生一开始非常抵触,不仅学生我一开始布置作业的时候也是非常犯愁,不知道布置什么样的作业能够避免抄袭,博客电子版作业比纸质作业抄袭起来方便很多,事实证明抄袭非常严重。有几个原因:

  • 作业布置的不好,因为学习内容是比较基础的知识且学生学习动力不足,所以作业内容大多是让学生熟悉学习基础知识,或者像(抄例题)这种作业完全是强迫学生去学习。
  • 学生不习惯也不知道怎么写博客,写博客不仅是为了完成作业,更重要的是积累知识,建立自己的知识体系,写博客是给自己看的,目的是让自己一段时间后回头看这些知识的时候能快速回想起来,怎么想,假设读者是一点不懂计算机的大一刚入学的自己。另外写博客不能讲究完美,我自己最近也停更了,原因和一个同学跟我说的一样:计算机知识网上一搜很多人都写了,我干嘛还要写或者我不知道该写什么了。首先还是写给谁看的问题,要记得写给自己看,顺带给别人看,另外不能追求完美,一写惊人,就像吴军老师在硅谷来信的《第215封信:最好是更好的敌人》里说的:

    虽然我们的目标是追求卓越,但是行动的步骤却是在固定时间,固定成本的前提下尽可能做好而已。只要我们保证下一次比现在更好,我们就能接近目标。但是,最好是更好的敌人,很多时候当我们看似在追求完美的时候,我们其实是在不作为!

所以,坚持写博客,即使照抄书里的内容,要知道抄一遍比读一遍记忆要深刻很多!

如何改进作业:

  • 需要学习结对编程,整个一学期的作业最好是一个场景逐渐累加
  • 借助教学辅助工具,例如PTA,实验楼,蓝墨云课堂等!
  • 学习teacherli的布置作业

教学方式

教学方式也做了两种尝试:

  • 仿效翁恺老师的上课方式,边讲解边实践,但是学生反应无法接受,原因是第一学期学C的时候老师授课方式主要是单纯讲解,学生动手实践的时间很少,不习惯于边听课边教学。实验了大概4周后,测试了几个例子,让学生当堂写,结果是两个班级70多人只有大概15个人完成。上课效果差的惊人,反思需要改进两点,放慢讲解速度,增加学生动手编程的机会。
  • 简单讲解基础知识,分析例题,然后出测试题,当堂记录成绩。惊讶的发现课堂测试题完成的人越来越多,也看到好几个同学的编程能力逐渐增长。但是等结课的时候才发现,很多人依然是抄袭,另外人数太多指导起来难度大。

改进方法:

  • 增加课堂趣味性:最近上下班车里放的都是吴军老师的硅谷来信,非常喜欢听并且上瘾,每天都会听好几篇,就我目前听到的内容,硅谷来信本质是两方面内容,一是大道理,比如慢生活,多阅读,终生学习,积极向上等,另一方面是it行业、投资等一些理论东西,当然硅谷来信肯定不止这些东西,但是这些东西很多人都讲,但是为何吴军老师讲解的让人上瘾,能听到心里去,我很多时候听完都有一种幸福感,充满精气神,并且像润物细无声一样,悄悄地改变了我很多的观念。那吴军老师如何做到的,我觉得最大的特点是每封信都从讲故事开始,故事每个人都爱听,讲完故事总结的理论或者大道理就很容易让人接收,所以需要重看吴军老师的浪潮之巅、硅谷之谜和智能时代。预备在下学期的C基础和arm体系结构中,每次课讲解一个小故事。
  • 改变别人从改变自己开始:不要对学生抱有希望,默认大家什么都不会,大一的自然什么都不会,给大三的上课也发现基础知识都忘记了。另外态度温和,减慢语速,坚决不能抱怨学生,吸引而不是强迫学生去学习。这也是最近去听学校的教学大赛的最大感受,我听的都不是我所在专业,默认都听不太懂,但是后来获得冠军的老师的讲课让我很有感触,她的语速语调让人不自觉地想听她讲。
  • 翻转课堂不能着急:这学期的另外一门课嵌入式系统程序设计,内容和娄老师的[信息安全系统设计基础]有很多重合,并且娄老师成功的翻转了课堂,我依葫芦画瓢也去翻转的时候我发现翻转不过来,需要准备的东西超出了我的想象,而我对这门课的积累还远远不够,就像比尔盖茨大学退学了,我们都要仿效退学吗?当然不是你得先考上哈佛再去考虑是否退学的问题。另外像学校80岁的老校长说的,目前我们的学生不适合翻转课堂,自学能力和积极性都不够。因此打好地基再去翻转,不过很多其他的教学手段还是可以学习的。

C语言程序设计课程总结的更多相关文章

  1. C语言程序设计课程设计自查表格

    课程设计自查表格 序号 项目 完成与否(完成打勾) 1 格式是否符合标准(缩进是否规范) 2 是否模块化设计(使用函数分解系统功能) 3 函数名否易懂(不得使用f1(int a1,int a2)这样的 ...

  2. Java语言程序设计课程学期总结

    2016-2017 第2学期 课程介绍 编程类课程,76学时(44理论+32实验),学期末还有1周的课程设计. 问题与现状 4个班共120人,教师无法逐一检查每个学生的编程实验. 纸质作业质量不高. ...

  3. 2019年上-C语言程序设计课程内容

    第一节课 序言 为何学习C语言 打印hello world程序 编译步骤,认识编译器 冯诺依曼体系结构 hello world程序如何在计算机上运行的 第二节课 基本数据类型与表达式 求华氏温度对应的 ...

  4. JAVA语言程序设计课程评价

    紧张的又短暂的一个学期结束了,这个学期也许将成为我人生中一个重要的转折点,作为一名半路出家的选手,在初次了解Java语言时我感到非常的迷茫与不知所措.因为之前很多同学都是通过假期时间在家自学,刚转入新 ...

  5. 2018年秋季学期《C语言程序设计I》教学过程及学期总结

    一学期下来,问题很多,思考也很多,需要整理.总结,好的经验要形成规律,不好的地方要提示警醒. 教学过程小结: C语言程序设计I-第一周教学 C语言程序设计I-第三周教学 C语言程序设计I-第四周教学 ...

  6. C语言程序设计I—第一周教学

    这是在修改人才培养方案后第一次上C语言程序设计课程,本课程由原来的1学期80课时(周学时6)修改为2学期48(周学时4)+32(周学时2)课时的模式,开课学期也由一年二期改为大一整学年,当时修改的主要 ...

  7. 李志杰的C语言程序设计第一次作业

    这个作业属于C语言程序设计课程 : https://edu.cnblogs.com/campus/zswxy/CST2020-2 这个作业要求在哪里: https://edu.cnblogs.com/ ...

  8. 《C语言程序设计》课程教学目录

    <C语言程序设计>课程教学目录 不要去精确定义单个论题,应将一整套问题组织成体系.--黎曼(1826-1866)德国著名数学家 教学过程 2018年秋季学期 C语言程序设计I-第一周教学 ...

  9. 2019年春季学期《C语言程序设计II》课程总结

    2019年春季学期<C语言程序设计II>课程总结 1.课程情况 教学内容 课堂小结 作业安排 优秀作业 备注 1.开学谈心 2.测验数据类型.运算符与表达式的自学情况,并讲解测验题目3.第 ...

随机推荐

  1. LinearRegression 线性回归

    一.预测 先来看看这样一个场景: 假如你手头有一套房子要出售,你咨询了房产中介.中介跟你要了一系列的数据,例如房子面积.位置.楼层.年限等,然后进行一系列计算后,给出了建议的定价. 房产中介是如何帮你 ...

  2. 【POJ 3401】Asteroids

    题面 Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape of an N x ...

  3. [HNOI2010]BUS 公交线路

    题面 Bzoj Sol 状压很显然 重点在于转移:题目就相当与每\(p\)长度的车站必须有且仅有\(k\)个被经过 那么转移时状压的二进制一定要有\(k\)个一 且两个相邻转移的状态之间必须满足:设为 ...

  4. 通过logstash-input-mongodb插件将mongodb数据导入ElasticSearch

    目的很简单,就是将mongodb数据导入es建立相应索引.数据是从特定的网站扒下来,然后进行二次处理,也就是数据去重.清洗,接着再保存到mongodb里,那么如何将数据搞到ElasticSearch中 ...

  5. Oracle数据文件丢失,数据库如何打开或恢复

    (一)如果没有备份只能是删除这个数据文件了,会导致相应的数据丢失.SQL>startup mount--ARCHIVELOG模式命令SQL>Alter database datafile ...

  6. python之hasattr()、 getattr() 、setattr() 函数

    这三个方法可以实现反射和内省机制,在实际项目中很常用,功能也很强大. [转]http://www.cnblogs.com/cenyu/p/5713686.html hasattr(object, na ...

  7. JavaScript之优化DOM

    优化DOM得从重绘和重排讲起,long long ago... 1.重绘和重排 1.1 重绘和重排是什么 重绘是指一些样式的修改,元素的位置和大小都没有改变: 重排是指元素的位置或尺寸发生了变化,浏览 ...

  8. Solidity调试 - 实现变量打印

    Solidity没有print或console.log方法可以用来打印变量,这会给我们调试程序增加难度. Solidity有event功能,可以在event中记录变量信息,通过调用event方法也可以 ...

  9. js实现二叉树

    //binary tree//add order remove findfunction tree() { var node = function(key) {  this.left = null;  ...

  10. c标准头文件

    好多C语言库函数参考还是用的TC的库函数参考,因此特地把现在C语言(C99)标准库函数的24个头文件列表如下:assert.h types.h(C99)  signal.h  stdlib.h   c ...