本课程只针对哈尔滨工业大学软件学院本科生(授课教师为苏小红,张羽),注册时请在昵称处不要填写昵称,按照下面的规范格式填写:
hit+学号+真实姓名
例如:hit153710112李刚
没有按此要求填写昵称信息的,将丢失自己的MOOC学习成绩。
本课程成绩由以下几个部分组成。
最终成绩100分 = MOOC课程30分 + 作业20分 + 实验20分 + 实验机上考试30分 (+ 讨论附加奖励分10分)。
1)MOOC课程分数构成与折算方法:
MOOC课程周测验(每周3分,15周合计45分);编程作业(3-12周每周4分,10周合计40分);在线期末考试(15分)。第1-2周的编程题以及第13-15周的编程题,作为自测练习题,不计入总分。
因MOOC课程结束较晚,所以我们只记录学生前12周的学习成绩,即3*12+4*10=76分,折合为30%的计算方法为:MOOC前12周学习成绩*30/76。
2)作业分数计算方法:
在作业在线测试系统上刷作业题,按分数排名取相对分,作为学生的作业分。
3)实验分数计算方法:
在作业在线测试系统上刷实验题,作为学生的实验分。
4)实验机上考试分数计算方法:
总计5次实验课,第1次实验课熟悉机上考试系统和作业在线测试系统的使用方法,从第2次实验课开始,每次实验课利用编程题考试自动评分系统进行一次机上考试,每次考试满分10分,4次考试成绩中去掉一个最低分作为学生的实验上机考试分数。
5)讨论附加奖励分计算方法:
每次实验课上,对于自愿到前面给学生讲解典型错误案例的分析调试过程的学生奖励附加分2分,加分上限为10分。
以上各项累计分数的上限为100分,超过100分按照100分计分。
计算机的基本常识
1. 面向读者的教材网站(https://book.sunner.cn)
该网站的服务对象是我们自编教材的读者,提供教材课件、例题源代码、教材勘误表等资源,便于学生浏览和下载后自学,读者也可利用该网站反馈教材使用意见和建议。
2. 作业在线测试系统(https://sse.hit.edu.cn/t)
该网站的服务对象是使用我们自编教材的读者,在我们编写的由高等教育出版社出版的《C语言程序设计(第2版)》的封底有一个刮刮卡,刮开可以获得一个免费的注册账号,登陆我们开发的C语言作业在线测试系统,在该系统中可以自主选择教材对应章编号中的习题进行自测,提交习题答案后,系统会实时显示评分,另外在习题市场中读者还可以发布题目给其他读者练习。
3. 参考教材
1)苏小红,王宇颖,孙志岗,《C语言程序设计(第2版)》,高等教育出版社,2013年8月,购书网址:亚马逊
2)苏小红,车万翔,王甜甜,《C语言程序设计学习指导(第2版)》,高等教育出版社,2013年9月,购书网址:亚马逊
3)苏小红,孙志岗,陈惠鹏,《C语言大学实用教程(第3版)》,电子工业出版社,2012年6月,购书网址:亚马逊
4)苏小红,孙志岗等,《C语言大学实用教程学习指导(第3版)》,电子工业出版社,2012年6月,购书网址:亚马逊
5)苏小红等,《程序设计基础》,高等教育出版社,待出版
5.相关链接
爱课程国家精品资源共享课:https://www.icourses.cn/coursestatic/course_3153.html
相关MOOC课程:程序设计基础:https://www.icourse163.org/course/hit/0809HIT004B#/info
带gcc编译器和gdb调试器的code::blocks集成开发环境的官网下载地址:https://www.codeblocks.org/downloads/26
(目前最新版本是codeblocks-13.12mingw-setup.exe)
Q:本门课程面向的授课群体是什么?没有任何基础能学习本课程吗?
A:本门课程的基本内容是面向零基础的学生。进阶内容是面向有一定编程基础或者大学计算机基础的学生,但是进阶内容不做为课程考试内容。
Q:本课程与其他课程在授课内容和讲授方法上有何不同?
A:在授课过程中,我们会注重解释“为什么”,揭示知识点背后的原理和思想,适时引入错误程序的分析、测试与调试,将一些易被忽视且对高水平程序设计很重要的“点”逐一展现给你,沿着数据结构从简单到复杂的主线展开,将软件工程相关的思想和方法渗透其中,从紧密结合实际的问题出发,在一个实例的“不断深化和提升”中逐步引出相关知识点,通过对问题的举一反三和前后知识点的融会贯通,由浅入深地启发引导你循序渐进地编程,让你在不知不觉中逐步加深对程序设计方法的了解和掌握。期望通过这样的设计,你在学完以后,不只是简单地掌握了C语言的语法,还能够理解隐藏在语法背后的思想,并初步具备灵活使用这些思想进行编程的能力。
Q:我想考二级,学完这个课程可以考吗?
A:二级考试题考查语言的语法细节较多,所以能否通过二级考试,要看你的应试水平如何。本课侧重于讲解程序设计的方法以及错误程序的排错方法,更关注实战能力,因此应该说本课程对学生的要求是高于二级考试的要求的。
Q:如何学好程序设计?
A:“熟读唐诗三百首,不会吟诗也会诌”,编程也是如此。写出的漂亮程序不是听课听出来的,也不是看书看出来的,而是读别人的程序读出来的,更是自己动手练出来的。学习编程一定要多读多写多练多思考,除此以外是没有捷径可走的。
Q:上机编写C语言程序使用什么软件好?
A:课程演示会使用Code::Blocks+gcc+gdb集成开发环境,但是你使用任何其他C语言开发工具也都可以。不过,我们推荐使用Code::Blocks,在教材网站(https://book.sunner.cn)上有软件下载的网址链接,《C语言程序设计学习指导(第2版)》上有关于如何使用这个软件的详细介绍,它是一个开源的跨平台的C/C++集成开发环境,它安装简单,比Visual C 6.0等其他集成开发环境更简单易学。
Q:使用codeblocks在sources中新建一个file,也就是不在原来默认的main.c里面写代码,那么应该如何调试才能使运行的时候直接运行新建的里面的程序呢?
A:给工程添加完新的文件后,移出旧的文件main.c再重新编译即可,移出文件的方法和添加的方法类似。
Q:为什么安装好软件后创建新项目的时候软件总是说:could not save project<invalid path> maybe the file is write-protected 呢?
A:codeblocks要求软件安装的目录最好不要带空格或汉字,不要按默认设置安装到program file目录下,卸载后再选择安装到根目录下试试。更多注意事项,参见高等教育出版社的《C语言程序设计学习指导(第2版)》
Q:请问为什么我在Code::Blocks里面点开Debug中的watch里面是空白的?
A:按照视频1.2讲的方法新建一个控制台应用程序,不要直接新建一个C文件,直接新建或者打开一个 C文件是无法使用调试功能的。
Q:为什么我的程序编译不了,提示没有编译器或调试器?
A:可能是你安装了不带编译器和调试器的版本,重新安装带编译器和调试器的版本,或者参考https://zhidao.baidu.com/link?url=T8WrKoa6dHXfZdTIOFex4uWais6SaTY2VbmNnLyKL77fb62LdzxrdJxBT_-UVf48AA9Z14K8l_nyueKFxD_q4Rh3BH0UMZvx5Kvxjx8o1MG重新设置编译器和调试器。
Q:如何提问,能得到快速的解答?
A:
1)标题:撰写标题时,要注意把要问的问题的出处和核心词写出来,最好用【】标出来,比如【第1周编程题在线测试的第1题】求解。
2)内容:内容上要把你不懂的地方说出来,最好详细点,把自己尝试修改的过程也说一下。
3)附源代码:把源码贴到讨论区(不要使用图片,因为图片看不清,也不能拷贝),这样大家可以通过你贴出的源码帮你分析错在哪里。
4)附错误提示:把编译出错的提示也贴出来(一般是英文形式),这样大家不用拷贝粘贴和调试程序也能帮你分析出错原因了。
Q:常见的运行结果错误的原因有哪些?
A:
1)数据输入输出的格式没有严格按照题目的要求写,直接拷贝粘贴题目中给的格式字符串,是最简单和不易出错的方法。
2)输入输出字符串中的字符大小写有错误,或者空格数量和位置与题目中的要求不一致,或者缺少换行等。
3)仔细审题,例如题目要求计算半圆的周长,就不要加上直径,更不要计算整个圆的周长。
4)如果只有几个测试用例通过,还有没有通过的测试用例,那么说明你没有考虑所有的可能性,甚至是非法输入的情况。
5)检查是否为英文输入,切记切换成英文状态再输入。一些同学误用了中文作为输入法,就会出现不能编译的问题,例如中文状态下输入的分号和英文状态下输入的分号是完全不同的,语句的末尾使用的分号一定要在英文状态下输入。