这是2016年秋季学期和北京工业大学耿丹学院合作教学的计划。

2016级有四个班,每班大约 32 人,每班配有一个有一定实际工作经验的助教,配合老师把课教好。

C语言是一门基础课, 是耿丹学院新生的第一门专业课,(为何第一门课安排C 语言?这个超出了本文的讨论范围)本文的主题是 - 谈谈有工业界经验的助教能给这门课带来什么新东西呢?下面是一些我们要在这个学期实现的想法:

- 通过实践掌握C语言,C语言有很多强大的功能 (例如指针),但是我们了解很多学校出于种种原因,C语言不讲指针, 或者讲了但是没有练习。在这种情况下,学生学的不是C, 而是 C--。 助教应该能帮助学生掌握重要的功能,让学生知其然,并且知其所以然。

- 养成良好的编程风格,变量名还是a, a1,a2?为何不能在一开始就养成良好的风格?

- 学会使用现代工具:

开发集成环境 (IDE), 基本的源代码管理,基本的代码复审(windiff) 流程

- 学会合作

结对编程 (建议前面三次作业都是结对编程完成),最后较难的作业也可以考虑结对编程

- 学会总结、分享

每周都要写技术博客。技术博客可以总结自己在技术上的心得,心得少也要写。必须填写的一个内容是:自己技术方面的进度条

学生技术学习进度条
周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较迷惑的问题
9/5 - 9/12  <学生填写>  ...   ...  ...
9/13 - 9/20        

(可选)学生还可以画出每周累计学习时间和累计代码行数的二维坐标图。

对助教的要求:

① 维护一个学生的成绩单 (请看别的助教的成绩单成绩单2),每周更新。

  每次作业 (包括进度条)满分10 分,迟交作业 0 分,一周以后仍然没有交作业,倒扣 10 分,发现抄袭,一律倒扣10分。

  学生的作业成绩映射到 [50.. 100] 区间, 就是学生的平时总成绩。

  学生有做附加作业的机会,附加作业满分10分。

② 点评学生的作业,博客,每个作业和博客必须有至少一条评语,持续鼓励学生,培养他们对编程的兴趣。

③ 做好学生结对编程的分组工作

每周进度:

第一周:

  同学

建立博客园的博客,申请 coding.net 账号。

在博客园找到自己的助教和老师,并在助教的博客下面留言,加”关注“, 建立联系。

每个人发一个博客随笔,介绍一下自己。

同学和自己的结对伙伴认识并共同写第一个作业,建议是简单的输出 “Hello World"的程序,写完作业后,每个人各自把写作业的过程发表在博客的一个新随笔上, 并把程序签入 coding.net。

  助教

建立所有学生的列表,点评学生作业,发布所有同学的成绩。(在同学作业截至后两天)

助教可以组织qq群,微信群等,和学生加强联系

助教的博客:

http://www.cnblogs.com/dongfengweixiao  DHY 老师

https://www.cnblogs.com/wuzhe/   吉吉老师

https://www.cnblogs.com/shanlizi/  善老师

https://www.cnblogs.com/toughever/    ToughEver 老师

还有热心的编外助教:

http://www.cnblogs.com/douzujun

很多同学写刚开始 C 语言程序的时候出现很多莫名其妙的错误,然后就跑来问老师,下面是一个解决问题的步骤:

当出问题的时候,请弄清状态,再问别人:

① 出错信息是啥?

② 你把你的程序简化 (例如只有一个语句,或者回到上一次正确的状态),然后每往前走一步,就检查一下,在哪一步出的问题?

③ 复习一下知识, 例如,每个语句后面都应有分号 (;)你的语句有么?

如何评价老师和助教的工作呢? 有很多因素可以考虑, 从老师和助教的教学效果来看,最后学生要回答:

  你推荐这个老师给你将来的学弟学妹么?

  你推荐这个助教给你将来的学弟学妹么?

  回答一个数字 (1: 非常不推荐; 2: 不推荐; 3:一般; 4:可以; 5: 极力推荐)

C语言 教学实践建议的更多相关文章

  1. 第二章 C语言编程实践

    上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...

  2. yarn快速使用及实践建议

    什么是 yarn? 简单来说,yarn 是一个与 npm 功能相同的工具,用于前端项目的依赖管理.在使用 npm 的项目中,使用 npm 命令的地方都可以使用 yran 来代替. 为什么要使用 yar ...

  3. MaxCompute 构建企业云数据仓库CDW的最佳实践建议

    在本文中阿里云资深产品专家云郎分享了基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议. 本文内容根据演讲视频以及PPT整理而成. 大家下午好,我是云郎,之前在甲骨文做企业架构师 ...

  4. http://i.youku.com/u/UMzQ3NjQ0MDAw C语言教学 觅风

    http://i.youku.com/u/UMzQ3NjQ0MDAw C语言教学 觅风

  5. 高德渲染网关Go语言重构实践

    ​1.导读 高德启动Go业务建设已经有段时间了,主要包含Go应用落地,Go中间件建设,云原生三个部分.经过持续的发力,在这些方面取得了不错的进展.高德Go业务落地过程是如何实现的,遇到过哪些问题,如何 ...

  6. 2017级C语言教学总结

    一个学期下来,对于这门课教学还是感受挺多,多个教学平台辅助,确实和我前10年的教学方式区别很多,也辛苦很多. 一.课堂教学方面 1.课堂派预习作业 主要借助课堂派平台,每次课前发布预习作业.而预习作业 ...

  7. Gitlab仓库规范实践建议

    记录一下Gitlab仓库实践信息: 仓库是指一个可以git clone的地址,用于存储某个服务,模块,子系统或某类辅助代码的地方 仓库的visibility level一般设置为Private(访问需 ...

  8. Go语言设计模式实践:迭代器(Iterator)

    关于本系列 决定开个新坑. 这个系列首先是关于Go语言实践的.在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档.图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只 ...

  9. Go语言设计模式实践:组合(Composite)

    关于本系列 这个系列首先是关于Go语言实践的.在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档.图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代 ...

随机推荐

  1. Java 和C/C++的“语法”上的差异!

    额其实认为语言语法之间是没有可比性的! 但是因为额曾经学过C/C++,而今又学Java,有赵本山说的话:“知识都学杂了!”,所以我个人总结一下,望提醒自己! Java C++ double 要用%f: ...

  2. NetApp常用检查命令

    常用检查命令 ************************************* ******************************************************* ...

  3. python调用外部子进程,通过管道实现异步标准输入和输出的交互

    我们通常会遇到这样的需求:通过C++或其他较底层的语言实现了一个复杂的功能模块,需要搭建一个基于Web的Demo,方法查询数据.由于Python语言的强大和简洁,其用来搭建Demo非常合适,Flask ...

  4. 在macos上利用vmware fusion安装Ubuntu

    1. 安装vmware fusion http://www.vmware.com/products/fusion 下载以后,可以在网上找注册码,最好下载最新的,这里下载的是7的版本 2. 下载ubun ...

  5. left join 取一条数据

    产品生产过程中要记录产品在制作过程中的不良历史,即使在一个工序,也可以产生多条不良历史记录,所有的不良信息保存在B表中.假设产品在打包工序,存放打包工序成品参数记录的表A,数据是唯一的.但在打包过程中 ...

  6. c# MessageBox 用法大全

    我们在程序中经常会用到MessageBox. 1.MessageBox.Show("Hello~~~~"); 最简单的,只显示提示信息. 2.MessageBox.Show(&qu ...

  7. [转]-CSS 元素垂直居中的6种方法

    原文地址:http://blog.zhourunsheng.com/2012/03/css-%E5%85%83%E7%B4%A0%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD ...

  8. onAttachedToWindow () 和 onDetachedFromWindow () (转)

    原文地址:http://blog.sina.com.cn/s/blog_74c22b2101012urv.html

  9. Python-Numpy函数-tile函数

    tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...

  10. C++设计模式-Memento备忘录模式

    Memento模式作用:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态. UML图: Originator:负责创建一个备忘录Me ...