计算机程序设计基础
分享
课程详情
课程评价
spContent=在学习程序设计时,往往都有这样的困惑:课能听懂,书也能看懂,但一到自己编写程序时就不知从何下手了。本课程以C语言作为程序实现工具,围绕“如何编写程序”这条主线,从问题分析到算法设计,再到程序实现,讲清问题求解的基本思路和编写程序的过程,让大家学会利用计算机进行问题求解的思维方法。
—— 课程团队
课程概述

        在云计算、大数据、人工智能、物联网、移动计算等新一代信息技术背景下,程序设计成为人们必须掌握的一项基本技能。计算机程序设计基础也是高等学校非常重要的课程,其目的是介绍程序设计的基础知识,使学生掌握高级语言程序设计的基本思想、方法和技术,理解利用计算机解决实际问题的基本过程和思维规律,从而更好地培养学生的创新能力,为未来应用计算机进行科学研究与实际应用奠定坚实的基础。
        C语言是一种基础性的高级语言,它历久弥新,从其诞生至今,一直广受编程爱好者及专业开发人员的青睐。本课程以C语言作为程序实现工具,遵循以利用计算机进行问题求解的能力(计算思维能力)培养为切入点的教学思路,介绍程序设计的基础知识与基本方法。课程主要内容有程序设计概述、程序的数据描述、顺序结构、选择结构、循环结构、程序设计综合举例、函数与编译预处理、数组、指针、字符串处理、构造数据类型、文件操作等。
        本课程考虑到初学者的认知特点以及培养程序设计能力的教学要求,以实际问题的求解过程为向导,突出从问题到算法,再到程序的一种思维过程,强调计算机求解问题的思路引导与程序设计思维方式的训练,重点放在程序设计的思想与方法上。实例讲解采用自顶向下、逐步求精的方法,将要解决的问题分解为一个一个小问题,先逐个解决小的问题,再解决大的问题,从而避免陷入繁杂的细节,使程序设计过程有一个清晰明了的思路,突出“如何编写程序”的课程主线。

授课目标

通过本课程的学习,要求掌握C语言的基本特征与组成要素,进而能举一反三地学习和应用其他高级语言;掌握程序设计的基本方法,能设计问题的求解算法,并编写和调试程序,进而理解利用计算机进行问题求解的基本规律,为将来进一步进行应用计算机解决实际问题打下良好基础。

课程大纲
预备知识

高等数学,大学计算机

证书要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 http://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


参考资料

[1]  刘卫国.C程序设计(慕课版).中国水利水电出版社,2023.
[2]  刘卫国.C程序设计实践教程.中国水利水电出版社,2023.



常见问题

        Q1本课程的适用对象有哪些?
        A1:本课程是涉及面最广的计算机公共课,适合作为第一门程序设计语言,适用于理工类各专业的在校学生学习。此外,本课程也适用于广大的程序设计爱好者学习参考。
        Q2:为什么选择C语言?与C++语言有何关系?
        A2:C语言从其诞生至今,一直广受编程爱好者及专业开发人员的青睐。它数据类型丰富,对计算机资源的操控能力强,程序执行效率高。无论是语言特性还是应用范围,C语言是最基础性的高级语言,学会了它再学其他的程序设计语言就很容易了。以C语言为基础,纵向可以继续学习数据结构与算法方向的相关知识,横向也可以为继续学习面向对象的C++或Java语言奠定基础。因此,C语言不失为计算机程序设计入门的合适语言。其实,C语言是C++语言的子集,C++语言对C语言的扩充主要体现在面向对象部分,因此,本课程内容可以理解为C++语言的非面向对象部分,相当于简化的C++语言。

        Q3:本课程使用什么集成开发环境?
        A3:现在基本上都是利用C++集成开发环境中来运行C语言程序,本课程也是利用C++的集成开发环境来介绍C语言。在教学过程中,使用Visual Studio(2010)和Dev-C++两种集成开发环境(课程中有详细的操作演示),但不妨碍大家使用别的开发环境(如Code::Blocks)或别的系统版本,因为在不同开发环境或版本中大部分的功能和基本的操作方法是一样的,当然也会有细微的差异,在实际使用时要注意区分。

        Q4:学习本课程需要哪些先导知识?
        A4:其实没有太多的要求,对于某些算法(如求定积分、矩阵计算)会涉及到一些数学概念,但都是基本的,通过课程讲解也能理解的;还有,课程中会用到十进制、二进制、十六进制等数制转换的知识,需要时可以看看“大学计算机”课程的相关内容,也可以直接在课程讨论区提问。
        Q5:本课程的教学内容是如何组织的?
        A5:学习程序设计涉及到程序设计方法和程序设计语言两方面的问题,本课程针对学习程序设计的重点和难点,围绕“如何编写程序”这个主线来组织教学内容,力争把从问题到算法,再到程序的变换过程讲清楚。不是罗列现成的程序,而是讲清楚程序是怎么来的,怎样才能得到程序。为了突出课程的主线,避免初学者陷入到繁琐的语法当中,课程内容不拘泥于语言的语法细节,而是把主要的语法知识教给大家,让大家在应用实践中掌握语言工具。课程中有大量的应用实例,采用自顶向下、逐步求精的设计思想,引导大家建立清晰明确的编程思路,提高程序设计能力,学会利用计算机解决问题的思维方式。