程序设计基础——发现计算之美
分享
课程详情
课程评价
spContent=计算机在我们的身边无所不在,现在的手机也是计算机,我们用它来学习、写作、交友,等等。驱动计算机运行的关键在于软件,也就是程序。而程序设计的关键,在于程序设计的思想。在本课中,课程团队将带着你,深入浅出,逐步揭开程序的秘密,从第一个简单的程序开始,领略程序的艺术,感受计算的魅力。
—— 课程团队
课程概述


这是怎样的一门课

  在人工智能与大数据的时代,程序设计或许变得越来越重要。程序设计是理工科专业学生基本的技能之一,但是即使是非理工科专业的学生,在很多软件中,可以利用程序设计让软件发挥出更强大的功能。

  程序设计,也不仅仅是程序设计本身,计算思维一种利用计算机来解决问题的方式。学习程序设计,可以更好的理解计算机的工作方式,这也是本课程期望带给大家的。


授课团队的期望(教学愿景) 

  1. 在本课程中,我们期望带给你一个五彩斑斓的程序的世界,这里剔除了不同不同计算机语言的复杂苛刻的表达,而只留下了设计程序最基本的东西:过程与存储,算法与数据结构。

    2. 在本课程中,我们为你带来了计算思维,这不仅仅是掌握一种利用计算解决问题方法,也是你未来面对各种问题的一种严谨的,结构化的思维方法,一种解决问题的方法。

  3. 通过本课程的学习,我们期望你能够将计算机语言运用到你未来的工作学习中去,用到你的科研或工程中去,计算机语言,是一种工具,也不仅仅是一种工具,因为这种工具很可能彻底改变了你思考问题的方式。

  4. 在本课程中,你或许会经历一些小小的坎坷,如何面对问题,如何拨开迷雾去伪存真,如何坚持不懈,如何适应、融入大学的学习,也是我们教学团队希望本课程带给大家的。

  所以,你还不开始行动?


在这门课上我能学到什么?(学习目标

  本课程由浅入深,介绍计算机语言的基础知识,以计算思维和伪码作为入门,让学生逐步了解计算机语言的工作方式。

  1. 通过本课程的学习,你能够描述大部分常用的程序设计算法(1.1),熟练运用多种程序的基本结构(1.2),灵活的调度存储(1.3),构建数据的结构(1.4),编写中小规模的代码(1.5)。

  2. 通过本课程的学习,你能够分解略有些复杂的程序设计问题,逐级分解,直到每一个环节都是你力所能及且可以实现的(2.1),你也能够将程序设计运用到数学、物理等你正在学习,或你将要学习的课程中去,解决你遇到的实际问题(2.2)。

  3. 通过本课程的学习,你能够对比不同计算机语言之间共同与差异(3.1),在实际的编程中,利用语言的优势(3.2),规避计算机语言所不能及的方面(3.3),触类旁通。

  4.1 通过本课程的学习,在算法与存储的学习、运用中,你将描述自己在遇到困难时,是如何面对问题,处理问题,解决问题的(4.1),辨析自己的思维特质(4.2),更深入的了解自我,并在本课程中,参与课程之间的成员将相互介绍(4.3),相互学习,相互促进,相互进步(4.4)。

  4.2 在本课程的线下课程中,同学们将经历团队项目的体验。在项目中,每一个小组成员都明确自己适合的角色,寻找自己未来在工作中的立足点(4.5),组织协调成员之间的关系(4.6),协调每个成员的工作量(4.7),帮助有困难的团队成员完成任务(4.8),激励整个团队向共同的目标前进(4.9)。

  5. 通过本课程的学习,你将能够看到冷冰冰的计算机背后,其实是一个活灵活现、五彩缤纷的世界。你将能够调试有问题的程序(5.1),你将经历各种问题的解决过程,面对问题的表象,拨开迷雾,通过各种手段,解析问题的本质,并逐步找到问题的根源(5.2)。

  6. 通过本课程的学习,你将看到网络学习的魅力。你进行资料搜集(6.1),综述现有的方法(6.2),提出自己的见解(6.3),在学习中暂时的搁置疑惑,允许“暗盒”的存在,并对问题进行全局的分析与判断(6.4),在学习中描述你的工作,有理有据,合乎逻辑与结构的撰写出你思考的过程(6.5)。



谁在讲授这门课?

  李骏扬老师毕业于东南大学自动化学院,2002年本科毕业留校,2004年获得硕士学位,2014年获得博士学位。李骏扬老师讲授程序设计课程已经19年,国家级首批线上线下混合式一流课程负责人,曾获得首届全国教师教学创新大赛一等奖,江苏省教学成果一等奖,全国卓越高校联盟青年教师授课竞赛二等奖。

  李老师教学方式独特,其课程既风趣,又有挑战,曾获得东南大学青年教师授课竞赛二等奖,教学奖励金二等奖,并多次入围东南大学“吾爱吾师”十大最受欢迎教师评选。

  李老师认为,思维是课堂教学的关键,李老师的课堂注重思维与逻辑,也注重实践与练习,在李老师的课程中,同学们必须将自己的大脑充分的运转起来,通过各种分析、剖析,探究计算机程序运行的本质,理解计算机的工作过程。


本课程的教学团队还包括:

  魏海坤:教授,博士生导师,东南大学自动化学院院长,研究领域:神经网络;

  仰燕兰:讲师,博士,东南大学自动化学院教师;

  杨万扣:博士,博士生导师,东南大学自动化学院教师,研究领域:人工智能;



如何开始本课程的学习?

  开始本课程的学习,首先需要做好以下准备:

  1. 进入课程公告,下载并安装X-Program编程平台,或者Visual Studio。

  2. 合理安排好你的学习时间,在所有的截止日期之前完成相应的作业和单元测试

  3. 每一单元的学习目标在课程大纲中发布,学习目的是每单元学习的纲要,也请同学们务必重视

  4. 课程每个单元的视频内容在左侧“课件”的内容中

  5. 课程每个单元每一课时,既包括了视频,也包括了授课内容的文档,以及评测等,你可以在视频的上方横向选项卡中切换该课时不同的内容

  6. 每课时都包括了一个或多个讨论题目,请同学们认真参与讨论,应为每一个讨论都是一次深层次的思考

  7. 尽管测试中大多都是选择题,但都需要融入你的思考,有的题目需要理解算法过程,有的题目是在理解知识内容基础上的应用,有的题目是对不同方法的对比与分析,以及对不同方法的评价,所以请认真对待每一次的测试。

授课目标

大学一年级学生,或对程序设计感兴趣的同学

课程大纲
预备知识

作为大学一年级入门课程,本课程可以零基础学习。如果学习过大学计算机基础、计算思维,对本课程也有所帮助。

参考资料

《C语言程序设计》作者: (美)Brian W. Kernighan / (美)Dennis M. Ritchie 

常见问题


如何使用本课程的平台?

  《程序设计基础》是在中国大学MOOC(https://www.icourse163.org)平台上运行的一门在线开放课程。该课程除了可以在PC(个人电脑)端上利用浏览器观看之外,还可以在IPad或智能手机上下载“中国大学MOOC”客户端观看。要参与该课程的学习,学习者首先需要注册成为该平台的用户,注册成功之后,输入相应的注册账号和密码即可完成登陆;此外,还可以采用网易邮箱或者爱课程账号登陆。

  登陆成功以后,学习者可以在平台主页面搜索“程序设计基础”课程,找到该课程之后,点击进入课程介绍页面。该页面主要包含该课程的基本信息,点击“立即参加”,跳转到课程学习页面,点击“开始学习”即可进入课程资源页面。在此页面,学习者可以进行观看课程视频、查看课程公告、参与讨论等学习活动。

  为了顺利的进行课程学习,建议使用IE10及以上版本的IE浏览器、或者谷歌Chrome浏览器。此外,利用浏览器观看视频的学习者需要确保自己的电脑上面安装有“Adobe Flash Player”浏览器插件并且及时升级自己的浏览器版本,否则会出现视频无法播放等问题。


X-Program 是什么编程软件?

  为了将程序设计入门学习的难度降到最低,本课程不采用C语言直接导入,而是采用课程团队自行研发的X-Program平台,X-Program虽然也是图形化编程平台,但是它更加关注程序的结构与过程,编写者也必须编写符合计算机要求的公式,以进行最初步的程序规范的训练。在X-Program平台中,你可以更加关注程序算法的设计,而不会在第一次编写程序时,同时混合着算法与语法的各种问题。

  X-Program 下载地址:https://exelab.org/Xpro/Xpro.rar 。下载解压缩之后,运行“Eiven.XProgramming.exe”这个程序。 

  X-Program 在 Windows 平台下运行,在 Windows 10 中可以直接运行:而在 Windows 7 平台中;需要补充安装:Windows 7 Service Park 1、.Net Framework 4.0或更高版本,以及 IE11,这些软件可以在微软官网(https://microsoft.com)上免费下载。