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

‍‍

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


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


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


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


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


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

       

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

    

授课目标

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

课程大纲
预备知识

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

参考资料

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

京东 本教材提供了相应内容的电子教案、例题代码、部分作业参考答案,以及重点内容的视频;可以扫描书上的二维码获得,或者访问https://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 微软免费环境:
  • https://visualstudio.microsoft.com/zh-hans/vs/community/
  • (2)Codeblocks 开源跨平台多语言开发环境:
  • https://www.codeblocks.org/downloads/26
  • (3)DEVC++ :
  • https://bloodshed-dev-c.en.softonic.com/



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



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