课程详情
课程评价
spContent=本课程面向无编程基础,并致力于编程的学生,使其掌握结构化程序设计的基本概念、思想和方法,并培养其计算思维能力。通过本课程学习,学生能够掌握程序设计语言的基本语法、结构化程序设计的思想和方法,养成良好的编程风格;最终能在这些方法和思想的指导下,使用C语言写出解决实际问题的程序。
—— 课程团队
课程概述

荷兰著名计算机学家Edsger W. Dijkstra曾说过,“我们所使用的工具深刻地影响着我们的思维方式和思维习惯,进而也将深刻地影响着我们的思维能力”。 计算机技术的普及已经深刻影响了现代人类生活的各个方面。“计算思维”就如同读、写、算能力一样,是所有人必须具备的思维能力。


计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。编程能力即是这种思维能力的一种体现。


本课程目标是通过对C语言的学习和使用,使您掌握结构化程序设计语言的基本概念、思想和方法,从而获得初步的程序设计能力(能够编写小规模程序解决实际问题),逐步养成并具备一定的计算思维能力。


课程以实际应用为背景,以“案例驱动”不断引入相关知识点,随着案例不断深入,将程序设计各相关知识点展现在读者面前,形成一条完整知识链条。因案例都是常见实际应用或初等数学问题,和生活密切相关,所以您大可不必担心学不会。


课程注重计算思维训练,即对实际问题求解过程、逻辑过程的抽象、理解和应用;因此大量使用PAD(Problem Analysis Diagram)描述程序逻辑结构,而非直接使用代码讲解;目的是帮助您不受编程语言限制,理解抽象过程;最终达到举一反三,融会贯通,掌握结构化程序设计的思想和方法,形成初步的编程和计算思维能力。


为什么选C语言作为载体语言?C语言作为当代最优秀的程序设计语言之一,它的优点远远超过了它的缺点。经验表明,程序设计人员一旦学会使用C语言之后,就会对它爱不释手;而且很多语言都是在它基础上发展起来的;所以C语言当之无愧地成为思想交流的首选载体语言。

       

时间安排:我们将用12周时间来学习具体的C语言语法、结构化程序设计基本概念、思想和方法(观看视频、随堂测验、参与讨论等进行学习),客观题周测用来检验您对基本概念的掌握情况,主观编程题周测用来训练您的编程和计算思维能力。期末主讲教师会用1周左右的时间,通过公告在网上带领大家进行知识梳理回顾,帮助您对所学知识进行整理、归纳形成一个完整的知识体系。最后1周则是期末考试(包含客观和主观编程题),检验总体学习情况。

      


授课目标

本课程目标是通过对C语言的学习和使用,使您掌握结构化程序设计的基本概念、思想和方法,经过编程实践,获得初步的程序设计能力(能够编写小规模程序解决实际问题),逐步养成并具备一定的计算思维能力。

课程大纲
预备知识

零起点课程,具有初中水平的数学和英语知识即可学习。

证书要求

1. 课程评分是百分制,评分高于60分(含)可以申请获得合格证书,高于85分(含)可以申请获得优秀证书。

2. 分数构成

(1)  客观题周测,共12次,全部计入总分,占总分20%

(2)  编程题周测,共15次,其中11次计入总分,占总分40%;不计分的测评有明确标注。

(3)  期末考试,1次,分为客观题和编程题两张试卷,占总分30%

(3)  课堂活跃度占总分10%。教师在课件中发布不少于10个的讨论主题贴,学生需在讨论区的“课堂交流区”版块中,回复不少于10个主题帖才可得到此项满分。请注意是“课堂交流区”,其他讨论版块回帖不算。

3. 课程规则
(1)  客观题周测主要包括选择、判断、填空等题型,重点考核本周基本概念掌握情况:每位同学有2次答题机会,但2次题目可能不同。

(2)  编程题周测都是OJ测评的编程题,重点训练编程解决实际问题能力;系统允许无限次数提交代码,并实时评判代码是否通过测试点;如果出错会给出一定提示信息。

(3)  期末考试客观卷只有1次答题机会,主观编程卷采用OJ测评方式。

(4)  所有周测和期末考试都有明确的开始和截止时间,请大家仔细查看课件中标注信息,逾期没有提交的同学,系统可能还会允许您继续答题,但成绩肯定不会计入总分。

(5)  课程的讨论区,分为“老师答疑区”、“课堂交流区”和“综合讨论区”三个版块,请大家注意区分三个版块不同的主题。重点强调,本讨论区是用来帮助大家学习交流,请不要发表与学习无关话题或灌水,一经发现立即全站禁言,并扣除本课程全部课堂活跃度分数。

(6)  主讲或助教教师每周登录论坛进行交流答疑,同时我们强烈建议同学间通过讨论区进行交流。

(7)  课程相关通知会以公告形式发布在学习页面中,请随时关注。


参考资料

1. 新形态教材:《程序设计基础》(第三版)陈娟、张长海,2019年8月 北京 高等教育出版社

京东  本教材提供了相应内容的电子教案、例题代码、部分作业参考答案,以及重点内容的视频;可以扫描书上的二维码获得,或者访问http://abook.hep.com.cn/1860420 使用书后粘贴的用户名和密码登录访问。

2. 习题集:《程序设计基础习题集》张长海、陈娟、兰书梅,2008年7月 北京 清华大学出版社 当当网 。本书为大家提供了更多题目,由浅入深训练编程能力。

3. C语言规范:《C语言参考手册(原书第5版)》(美)Samuel P. Harbison III / Guy L. Steele Jr.  邱仲潘 等译  2003年8月 机械工业出版社。此书先后有多个译本,都能在网上搜到。如果您想更加深入了解C语言的特性,此书可以为你提供更多的帮助。  

常见问题
  • Q1: 如何学好该课程?

  • A1: “程序设计”是实践性极强的课程,想要学好就必须上机实践。对于零基础的同学可以分成如下3步:

    (1) 线上学习。通过线上视频和相关资料学习,记忆并理解课程知识点、体会例题代码编写思路、读懂并记下例题代码。请注意这里不是死记硬背,而是理解记忆,举个例子比如某个判断是"a大于等于b",您需要明白为什么要判断"a大于等于b",在您临摹代码时您很可能会将此判断写成"a不小于b",同样合理。

    (2) 临摹代码。线上学习后,线下需要自己动手在开发环境中临摹例题代码,即将您记忆的代码录入到开发环境、运行调试。这期间代码可能会正常执行;但更多时候会会出现各种各样错误,此时就需要和例题代码比较找不同,分析造成不同的原因和由此带来的后果,反复修正代码;达到强化学习的目的。

    (3) 自主编程。在您将所有例题代码弄懂调通后。此时完成作业,将想法写成代码并运行调试,使其通过所有测试点,训练自己编程解决实际问题的能力。通常一道题有用多种解法(代码),不妨试着分析比较不同方法间的差别或优劣,这对提高编程能力有很大帮助。


          “三个臭皮匠能顶一个诸葛亮”说明了群体学习的重要性。作为初学者,难免会遇到问题,除了问老师;我们鼓励各位同学,组成虚拟学习小组进行交流:如在平台论坛中分享你的学习经验、回帖讨论问题等。


          如果您还有参加ACM程序设计大赛的计划,则可以去网上各类ACM在线评测系统刷题,得到进一步的提高。有关ACM程序设计大赛的内容,请查看百度百科。



  • Q2:  使用什么样的C语言开发环境?

  • A2:  Code::Blocks和VC6.0 是本课程所涉及的两种开发环境。当然还有其他开发环境可以免费获得,完全由您自己决定。

    (1)VS community 微软免费环境:

    http://visualstudio.microsoft.com/zh-hans/vs/community/、

    (2)Codeblocks 开源跨平台多语言开发环境:

    http://www.codeblocks.org/downloads/26

    (3)DEVC++ :

    http://bloodshed-dev-c.en.softonic.com/


  • Q3:  如何在win10下安装VC++6.0?

  • A3:VC++6.0是非常经典的C/C++语言开发环境,小巧精炼、功能强大;但由于windwos操作系统在XP后对其兼容性变差,导致win10下运行VC常出现错误。具体解决方法可以参照"百度经验"

    http://jingyan.baidu.com/article/da1091fb6e5cba027849d6be.html 。



  • Q4:学习中有了问题怎么办?

  • A4:(1)在课程论坛里问老师和同学。(2)问百度(http://www.baidu.com )关键字搜索。(3)试着去CSDN论坛(http://bbs.csdn.net/ )看看技术大佬们怎么回答。