计算机科学导论
计算机科学导论
5万+人选课
更新日期:2024/04/19
开课时间 2024/03/01 - 2024/06/01
课程周期 14 周
开课状态 开课中
每周学时 -
课程简介

根据马克思主义哲学“实践是认知的基础”这一论断,将计算学科中的抽象和理论,分别与感性认识和理性认识对应,将计算学科中的设计与实践对应,构建“计算机科学导论”课程的总体结构框架;课程包含计算思维与计算机科学导论;计算学科专业名称的演变,学科的描述、培养侧重点;教学问题的探讨(含BLOOM分类法、SOLO分类法,难度、复杂度与能力的理解);计算学科的基本问题(算法复杂性中的难解性问题,RSA公开密钥密码系统,组合爆炸问题,程序设计中的结构问题,软硬件资源的管理问题,计算机中的博弈问题等);计算学科中的抽象、理论和设计三个过程(含计算机语言的发展及其三个过程的内在联系);计算学科中的核心概念(绑定、大问题的复杂性、概念模型和形式模型、一致性和完备性、效率、演化、抽象层次、按空间排序、按时间排序、重用、安全性、折中与结论);计算学科中的数学方法(集合,函数和关系,代数系统,定义、定理和证明,必要条件和充分条件,证明方法,递归和迭代,公理化方法);计算学科中的系统科学方法(系统科学的基本思想,在软件开发中引入系统科学方法的原因,结构化方法,面向对象方法);社会和职业的问题等内容。

课程大纲

第1章 绪论

【第1课时】计算机科学导论课程的构建问题

【第2课时】计算思维与计算机科学导论

【教学文档】

【习题1】

【讨论1-1】习惯与计算思维的培养

【讨论1-0】控制和降低复杂工程问题的思想和方法

【第3课时】在广西师大漓江学院作如何学习CS导论报告

【单元测验1】

第2章 计算学科的基本问题

【第1课时】哥尼斯堡七桥问题

【第2课时】汉诺塔问题

【第3课时】证比求易算法和P=NP?

【第4课时】RSA公开密钥密码系统

【第5课时】旅行商问题与组合爆炸

【第6课时】GOTO与程序结构

【第7课时】哲学家共餐问题

【第8课时】两军问题

【第9课时】图灵测试

【教学文档】

【习题2】

【第10课时】停机问题

【第11课时】找零问题、背包问题与贪婪算法

【单元测验2】

第3章 计算学科的3个学科形态

【第1课时】学生选课实例

【第2课时】自然语言与形式语言

【第3课时】自然语言形式化及实例

【第4课时】图灵机的工作原理

【第5课时】VComputer软件的演示、说明及下载使用

【教学文档】

【习题3】

【讨论3-3】虚拟机与分层抽象

【第6课时】虚拟机与分层抽象

【单元测验3】

第4章 计算学科的核心概念

【第2课时】两个常见的算法

【第3课时】数据结构

【第4课时】数据的存储和表示

【教学文档】

【习题4】

【第5课时】编码

【第6课时】到广西师大漓江学院作报告与学生互相-猜姓氏

【第1课时】算法的基本知识

【单元测验4】

第5章 计算学科中的数学方法

【第1课时】递归与迭代

【教学文档】

【习题5】

【第2课时】随机数和蒙特卡罗方法

【第3课时】数学与计算机科学的不同

【第4课时】必要条件和充分条件

【第5课时】猜姓氏游戏和猴子吃桃问题

【单元测验5】

第6章 计算学科中的系统科学方法

【第1课时】系统同构

【教学文档】

【习题6】

【第2课时】人固有能力的局限性及使用工具后产生的力量

【第3课时】软件开发的系统化方法需要遵循的基本原则

【单元测验6】

第7章 社会与职业问题

【第1课时】道德选择

【第2课时】检举

【教学文档】

【习题7】

【讨论7-2】工程与社会——软件风险案例的讨论

【讨论7-3】环境与可持续发展

【讨论7-4】个人与团队,沟通,项目管理

【第3课时】企业的可持续发展

【第4课时】敏捷开发方法

【单元测验7】

实验一 分支和循环结构的简单程序设计

【视频】Raptor使用介绍(注:如果无法播放视频,请切换到兼容模式或者使用Chrome、IE、火狐浏览器)

【文档】实验内容

【程序及文档】实验答案

选择结构(热身实验)

循环结构(热身实验)

性能分析(热身实验)

求平方根的“亚历山大的海伦算法”(进阶实验)

两个正整数求和的算法(进阶实验)

两个整数较大值的判定(进阶实验)

输出1至10的累加和(进阶实验)

三个数最大值的判定(进阶实验)

两个循环嵌套程序效率的比较(进阶实验)

分段函数求解(综合实验)

农场主问题(综合实验)

金字塔图形的输出(综合实验)

二分支函数(综合实验)

第8章 探讨与展望

【第1课时】难度、复杂度与能力

【第2课时】SOLO分类法

【教学文档】

【习题8】

实验二 RSA公开密钥密码系统

【文档】实验内容

【程序及文档】实验答案

质数判定(热身实验)

输出给定区间内质数(热身实验)

欧拉函数(热身实验)

RSA公开密钥密码系统的构建(进阶实验)

RSA公开密钥密码系统的加密和解密(进阶实验)

实验三 存储程序式计算机的简单程序设计

【视频】Vcomputer软件演示

【文档】实验内容

【程序及文档】实验答案

一个机器指令程序的执行过程(热身实验)

一个汇编指令程序的执行过程(热身实验)

一个机器指令程序的简单修改(热身实验)

一个机器指令程序的简单设计(热身实验)

分段函数的求解(进阶实验)

累加求和(进阶实验)

迭代求和(进阶实验)

实验四 递归算法、迭代算法及其比较

【视频】迭代与递归

【文档】实验内容

【程序及文档】实验答案

斐波那契数列的迭代实现(热身实验)

斐波那契数列的递归实现(热身实验)

n!的迭代求解(进阶实验)

n!的递归求解(进阶实验)

汉诺塔问题的递归算法(进阶实验)

求f(a,b)=a^b(进阶实验)

猴子吃桃(综合实验)

判断回文(综合实验)

递归画二叉树(扩展实验)

实验五 数组实验

【视频】一维数组热身实验

【文档】实验内容

【程序及文档】实验答案

一维数组实验(热身实验)

二维数组实验(热身实验)

创建长度为100的数组(进阶实验)

创建长度为100的数组并对数组元素赋值(进阶实验)

存储斐波那契数列的前20项(进阶实验)

二维数组(进阶实验)

字符数组中单空格替换为双空格(综合实验)

二维数组中元素的查找(综合实验)

单重循环完成二分支函数(综合实验)

实验六 栈的基本操作:push和pop

【文档】实验内容

【程序及文档】实验答案

模拟栈操作(热身实验)

两个栈用一个数组的表示(进阶实验)

两个栈模拟一个队列(进阶实验)

括号匹配的检验(综合实验)

实验七 归并排序与折半查找

【视频】归并排序与折半查找

【文档】实验内容

【程序及文档】实验答案

子数组的合并算法(热身实验)

二路归并排序(热身实验)

折半查找(热身实验)

查找和为x的两个元素(进阶实验)

背包问题(进阶实验)

轮转数组内数值的查找(综合实验)

实验八 蒙特卡洛方法应用

【视频】蒙特卡洛方法求π的程序示例

【文档】实验内容

【程序及文档】实验答案

基于蒙特卡洛方法对圆周率π的求解(热身实验)

基于蒙特卡洛方法对椭圆面积的求解(热身实验)

基于蒙特卡洛方法对简单曲线下面积的求解(进阶实验)

基于蒙特卡洛方法对球体在第一卦限体积的求解(进阶实验)

基于蒙特卡洛方法对曲线下面积的求解(综合实验)

基于蒙特卡洛方法对椭球在第一卦限体积的求解(综合实验)

基于蒙特卡洛方法对抛物面相交部分体积的求解(综合实验)

实验九 简单的卡通与游戏实验

【文档】实验内容

【程序及文档】实验答案

绘制一个Hello Kitty(热身实验)

绘制一朵花(进阶实验)

设计一个“找茬”游戏(综合实验)