本课程结合了计算学科宽领域中的新生研讨课和程序设计基础课程的相关内容,专为非计算专业学生设计。它向非专业学生介绍计算的核心概念作为问题解决的原则,提供计算思维和逻辑素养的广泛基础,并将这些概念与广泛领域的实际问题联系起来。学生无需具备任何计算或编程背景。本课程通过动手实践、基于实例的学习方法,涵盖计算概念,包括顺序逻辑、抽象和问题解决技术。活动从基于图形的拖放编程语言(如Scratch、Alice、App Inventor、Excel宏)开始,逐步过渡到高级编程语言(如Python或php)。实例和项目将计算思维技能应用于音乐、电影、社交网络、金融等实际领域。
主题 1. 编程与算法:计算机算法;算法类型;数据结构;抽象数据类型。 主题 2. 数据结构:表示与算法:线性结构:链表、栈、队列;树结构:二叉树、平衡树、树遍历;以及其他常见数据结构:优先队列、堆。 主题 3. 排序:基本排序算法:冒泡排序、插入排序、选择排序;高级排序算法:快速排序、归并排序、堆排序。 主题 4. 搜索:常见搜索算法:顺序搜索、二分搜索;高级搜索算法:树搜索、字典和散列。 主题 5. 应用:结合多种数据结构和算法进行实际程序开发,例如朋友簿;以及各种方法的效率。
主题 1. 集合、关系与函数 集合、关系与函数,等价关系,基数,序关系。 2. 命题逻辑与谓词逻辑 逻辑表达式;真值表;重言式;形式推理;谓词;量词;证明系统;正确性和完备性。 3. 离散数学技能 数学归纳法;计数技术;容斥原理;抽屉原理。 4. 图与树 图、有向图、同构;连通性;欧拉路径与哈密顿路径;最短路径问题;平面图;图着色;树与树遍历;生成树与最小生成树;决策树与树的同构。 5. 基本网络问题 网络流;最大流最小割问题;最小成本流问题;应用,例如网络设计、运输问题。 6. 布尔代数与组合电路 组合电路及其性质,布尔代数,布尔函数与电路合成。
1. 算法分析 • 渐近符号。 • 效率分析。 2. 数据结构 • 线性结构:链表、栈、队列。 • 树结构:二叉树、平衡树、树遍历。 3. 搜索与排序 • 贪心排序算法:冒泡排序、插入排序、选择排序。 • 基于分治法的排序算法:快速排序和归并排序。 • 堆排序及相关数据结构:优先队列、堆。 • 哈希:哈希函数、冲突解决。 4. 图 • 定义与表示。 • 深度优先搜索和广度优先搜索。 5. 算法设计技术 • 贪心算法与动态规划。 • 分治法。 • 递归。 6. 应用 • 结合多种数据结构和算法进行实际程序开发。
课程时长 1. 数值计算软件:数学软件库(例如,Numpy、Pandas、Scikit-Learn);数值计算环境(例如,Pytorch、Keras、Matlab) 2. 线性代数:向量空间;线性变换和矩阵;求解线性方程;矩阵分解;特征值和奇异值;矩阵范数和条件数;逆矩阵;列空间和零空间;非方阵作为不同维度之间的变换;伪逆 3. 优化:一维优化;最小二乘法;约束优化;凸优化;梯度下降;随机梯度下降 4. 概率与统计:概率的基本概念回顾;最大似然估计;贝叶斯规则;统计推断 5. 数学技能在机器学习中的应用:将数学技能与机器学习问题联系起来;数学技能在机器学习中的应用示例;与COMP中的机器学习课程的相关性
主题 1. 对象导向编程。对象和类的概念。软件对象与现实世界对象之间的对应关系。对象生命周期。 2. “Has-a” 关系和封装。数据隐藏和保护。 3. 对象导向编程。类层次结构的概念。“Is-a” 关系和继承。方法的重写。多态性。运行时绑定。抽象类和方法。 4. 多重继承/接口 5. 异常处理。 6. 通用编程。 7. 并发。 8. 使用 UML 模型化对象导向项目。
1. 问题与应用建模:问题分析;解决方案探索;使用工具(如 Excel、Matlab)快速求解;处理大数据集;时间序列;常用算法(如序列匹配、对齐、相似性概念)。2. Excel 编程:使用公式和图表;表格查找;计算统计;回归;使用 Visual Basic 编程宏。3. Matlab 编程:Matlab 中的数据表示;向量、矩阵和向量化;数据可视化;通过脚本和函数进行数据操作;文件输入输出;使用 Matlab 库。4. R 编程:R 作为统计计算语言;向量和矩阵;函数;数据导入和导出;内置 R 包;进行数据分析;与 Python、C/C++ 和 Java 交互。5. 案例研究与金融科技应用开发:快速编程概念;实现常用算法;建模和蒙特卡洛模拟;使用多种工具解决实际问题(如将 R 结果导出为 .csv 格式进行绘图);应对查询和数据的临时变化。
主题 1. 电子商务概览:电子商务与电子商务的区别;互联网、内联网和外联网;电子商务模式;组织的核心业务领域;商务信息系统的基础;内联网和互联网化的电子商务企业;电子商务系统的工业应用。 主题 2. 电子商务软件解决方案:网络编程语言;搜索机制;网络代理;网络上的多媒体和网络广播;决策;电子商务打包解决方案;XML 与数据集成。 主题 3. 电子商务的社会基础设施:电子商务规划;电子商务策略;电子商务管理;电子商务发展;电子商务评估。 主题 4. 电子商务的技术基础设施:访问设备和渠道;电子商品和服务的交付;网络;前端和后端计算基础设施;通信协议;网络和数据安全;身份验证;加密;电子支付和电子货币。 主题 5. 电子商务系统设计:电子商务系统设计;网页设计;数据库设计;系统集成。 主题 6. 电子商务环境:经济环境;社会环境;政治环境;电子商务的伦理环境。 实验:市场电子商务概览;电子商务系统与数字商务设计。 案例研究:通过商业模式画布分析全球电子商务案例。
1. 基础知识:网络基础知识;分层概念;协议;数据封装;OSI参考模型;TCP/IP参考模型;性能评估。 2. 数据链路与MAC子层:数据链路基础知识;帧;错误检测;自动重传请求协议;局域网;链路层和MAC协议。 3. 网络层:网络层基础知识;面向连接和无连接网络;路由/转发机制;距离向量和链路状态路由算法;IP基础知识;IP地址和子网;地址解析协议。 4. 传输层:用户数据报协议(UDP);传输控制协议(TCP)。 5. 应用层:网络应用。 实验:网络相关的实验室练习,如套接字编程和基于IP的应用。 案例研究:网络技术和应用。
主题 1. 数据库系统的基本概念 数据库及其应用;数据库管理系统的设计目标及其组件;三层架构;数据独立性。 2. 数据库设计 实体-关系模型;函数依赖;规范化。 3. 关系数据模型 关系结构;关系语言:关系代数、关系演算、SQL;关系约束:实体约束、参照完整性约束和外键。 4. 文件结构与物理数据库设计 文件组织;索引和哈希。 5. 应用设计与查询处理 关系视图定义与管理;查询表达式的等价性,查询处理成本估算,连接策略;嵌入式SQL。 6. 实施问题 缓冲区管理;事务处理;并发控制;故障恢复;安全与完整性。
主题 1. 基本概念 介绍计算机组织与架构的基本概念、基本组件与功能、时钟与时序同步、指令周期等。 2. 计算机算术 二进制系统与算术;带符号整数及其表示;八进制与十六进制系统;BCD表示;不同表示之间的转换;浮点表示。 3. CPU与汇编语言 指令集、特性和功能;CPU结构与功能;精简指令集计算机;汇编命令;程序指令;汇编语言编程。 4. 逻辑代数与逻辑网络 逻辑代数与网络;基本逻辑运算;逻辑表达式的推导;逻辑门;触发器;计数器;半加器与全加器。 5. 存储器、I/O与存储设备 输入输出设备;系统组件的连接;接口;总线;I/O系统中的中断;标准总线接口;主存储器;RAM;ROM;次级存储;缓存存储器;虚拟存储与操作系统支持。
1. 操作系统简介:操作系统类型及其功能;系统组件和服务;资源管理。 2. Unix 和 Linux:Unix 和 Linux 的使用;Shell 和命令;脚本;中断;内核;系统调用。 3. 进程管理:进程概念;进程创建和终止;并发进程;进程调度。 4. 进程通信与同步:进程间通信;临界区问题;同步;死锁。 5. 内存管理:地址转换;内存分配;分页和分段系统;虚拟内存。 6. 文件系统、保护与安全:目录和文件系统结构;次级存储;保护与访问控制;能力;安全与威胁。 7. 操作系统案例研究:Unix、Linux、Mac OS、Windows 10 等操作系统的结构。
课程大纲涵盖与社区参与相关的重大问题,涉及来自其他文化、种族或社会群体的个人,通过技术解决方案的应用: 服务学习的概念与实践: • 服务学习的原则、概念和神话 • 服务学习对学生、大学和社区的好处 • 服务学习中的伦理问题 • 社会问题的基本概念与理论、发展与正义 • 全球公民作为知识分子和专业人士的社会责任 • 服务交付中的正确态度与行为 • 服务项目提案/计划的开发 • 服务学习项目中的有效团队合作与问题解决技能 • 反思作为学习的工具 学科特定的概念、问题与技能: • 数字鸿沟。谁拥有,谁没有?全球和本地解决数字鸿沟的可能方案。 • 社会因素、文化、宗教和种族对社区的影响。 • 技术对社会需求和感知的影响。 • 技术社会责任。 • 影响弱势社区有效使用或部署技术的潜在因素。 项目特定的概念、问题与技能: • 与离岸站点(如中国大陆、柬埔寨)或目标本地社区(如难民、来自中国大陆的新移民、南亚少数民族)相关的特定历史、文化和政治背景。 • 服务项目相关的健康、安全及其他问题。 • 与项目相关的特定技术主题。 • 与项目和受益人相关的道德和伦理问题。 • 项目规划、健康、安全及其他相关问题。
课程 1. 算法分析 数学技术;大O表示法;效率分析;递归关系。 2. 高级算法设计技术 动态规划、分治法、分支限界法、贪心算法。 3. 高级分析技术 随机化算法、概率分析、摊还分析简介。 4. 计算几何算法 空间范围搜索、空间对象索引、凸包、最近点对 5. NP完全问题 复杂性类、NP完全性、归约、近似算法。
本科目概要/建议大纲: 1. 编程语言范式:现有编程语言和编程范式的概述;编程语言的历史。(2学时) 2. 作用域与子例程:代码块的概念;环境;变量的作用域与可见性;静态与动态作用域;运行时堆栈;过程调用;参数传递语义;激活记录与递归。(4学时) 3. 并发与并行语言:多线程,消息传递,语言:Scala,Go,Erlang,Clojure。(6学时) 4. 函数式语言:数学函数,列表,函数组合,语言(例如,Lisp,ML,Haskell)。(6学时) 5. 逻辑语言:谓词演算,定理证明,逻辑编程,语言(例如,Prolog及其变体)。(6学时) 6. 编程语言中的内存管理:指针,悬空引用,垃圾回收,编程中的常见实践。(2学时) 总计:26学时。
1. 介绍:基本概念(如:需求、计算问题、算法、实验),现实生活中具有挑战性的问题实例(如:车辆路径规划、路径搜索、图划分、最近邻搜索)。2. 问题需求:需求类型(如:响应时间、内存消耗、解决方案质量),约束条件、优化目标。3. 数据和问题实例的分析:识别数据和问题实例的特征,利用特征设计算法。4. 以性能为导向的算法设计:性能分析,性能瓶颈分析,优化响应时间、内存消耗和解决方案质量的技术。5. 实现选项:使用库函数,使用编译器选项(如:优化选项),多线程,向量化代码/单指令多数据(SIMD)。6. 实验:衡量性能的方法,准备测试案例和基准,实验目标,系统和硬件设置的影响,实验结果的可再现性,实验结果的分析。7. 演示:书面和口头呈现算法和实验结果的指导和实践。
主题 1. 社会计算简介 历史、概念、重要性和定义。 2. 社会计算技术 博客、协同过滤、互联网搜索、社交媒体和网络,维基百科和维基。互联网背景。Web 2.0。 3. 社会计算行为 动机和社会心理学。在线可信度。社会影响。在线环境中的社会角色。在线社交网站的设计和组织。 4. 社交网络文化 作者身份。全球化。社会存在。虚拟社区。 5. 社交网络政策 隐私。知识产权。商业模式。 6. 社交网络应用 社交网络营销。数据趋势。 7. 社交网络建模 节点和社会网络的属性。在线社交网络建模和数据收集。
主题 1. 信息系统环境:企业信息系统介绍,企业信息系统体系结构,企业应用集成中的问题与挑战,信息系统开发生命周期。 主题 2. 信息系统设计:微服务架构,容器化应用,云原生应用,无服务器应用,十二因子应用方法论。 主题 3. 信息系统开发:现代信息系统开发实践:Git 和版本控制,分支策略,自动化测试,持续集成/持续交付 (CICD),DevOps 实践与指标。信息系统部署:大爆炸部署,滚动部署,蓝绿部署,金丝雀部署。基于云的应用开发与平台。 主题 4. 信息系统项目管理:信息系统项目规划、监控与控制,信息系统风险管理。敏捷项目管理实践与指标。
主题 1. 信息系统/信息技术在组织中的作用。使用信息技术带来的日益增长的好处;信息系统组织及其人员角色的变化。 2. 信息系统战略。信息系统战略的定义和制定过程;信息系统管理与信息系统战略的制定。 3. 信息系统规划。信息系统规划的要素和过程。信息系统规划技术,包括竞争力量模型和价值链分析。 4. 信息系统战略与企业战略的关系。战略对齐模型;影响信息系统与企业战略对齐的因素。 5. 信息系统战略与组织环境。信息系统与组织的双向关系;技术与行为定义的组织;系统开发与组织变革;重新设计;风险管理与变革管理。 支持组织学习的信息系统,如协作、虚拟组织和知识管理。
1. 中文字符的表示、输入与输出:中文和通用字符集标准(如GB、Big5和Unicode),字符编码方案(如ISO2022、EUC和UTF),编码集兼容性问题,中文字符的输入与输出处理。 2. (中文)自然语言处理基础:词形分析、词干提取和分词,句法分析和句子解析,语义分析和语义消歧,话语分析和共指消解。 3. (中文)自然语言处理应用选题:语言建模、意见挖掘和情感分类、对话和对话系统、问答和摘要、信息检索和提取、机器翻译等。