第一次教授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. eclipse和android studio的爱恨情仇

    Eclipse,以下简称ES(自己起的,不喜勿喷):Android studio,以下简称AS(都这么叫的啦)! 2000年,IBM怀胎24个月,终于产生了Eclipse,当时ES的诞生只是为了解决I ...

  2. Vue2.0结合webuploader实现文件分片上传

    Vue项目中遇到了大文件分片上传的问题,之前用过webuploader,索性就把Vue2.0与webuploader结合起来使用,封装了一个vue的上传组件,使用起来也比较舒爽. 上传就上传吧,为什么 ...

  3. DBdbvis数据库驱动连接问题

    今天使用数据库查询工具DBvis链接mysql数据库时, 发现执行如何sql语句, 都报如下错误: mysql驱动包的版本不对导致的.我的mysql版本是5.7 解决办法: 去mysql官网下载最新的 ...

  4. 在.NET Core中处理一个接口多个不同实现的依赖注入问题

    前言 近段时间在准备公司的技术分享,所以这段时间将大部分时间放在准备分享内容上去了.博客也就停了一下下. 在.NET Core中处理依赖注入问题时,往往是定义好了一个操作规范的接口,会有N多个基于不同 ...

  5. POJ 1087 A Plug for UNIX (网络流,最大流)

    题面 You are in charge of setting up the press room for the inaugural meeting of the United Nations In ...

  6. .NET中的线程与异步(笔记)

    翻出了之前记录的笔记,基本涵盖了.NET中线程和异步的相关概念.可以提供一个学习的方向. 线程类型 工作者线程IO线程 线程池 全局队列(QueueUserWorkItem.Timer总是放入全局)本 ...

  7. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...

  8. asp.net跳出iframe结构转向登录

    在网页编程时,我们经常需要处理,当session过期时,我们要跳到登陆页面让用户登陆,由于我们可能用到IFrame框架,所以我们我登陆页面需要显示在整个页面,而不是一个IFrame中,大部分的网友是用 ...

  9. PHP基础入门(一)

    php现在很火的后台开发语言,它融合了许多其他的语言,所以它的灵活性不用多说.话不多说,我们开始php的学习吧! 整数类型:$变量名=132;浮点类型:$变量名=1.32;字符串类型:$变量名=&qu ...

  10. 关于win8的各种版本的区别

    Windows8.1 Professional VL  表示:专业版(大客户版,批量授权) Windows8.1 Multiple editions 表示:多合一版本(包含:标准版.专业版) 个人用户 ...