还剩42页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
厦门大学计算机科学课程课程简介课程目标课程内容帮助学生掌握计算机科学的基本概念,培养编程能力,为进一步学习相关专业知识打下基础课程目标1理解计算机科学的基本概念,掌握2学习常用编程语言,培养编程技3了解数据结构和算法的基本知识,程序设计的基本方法能,并能独立编写程序并能应用于实际问题解决4掌握数据库的基本概念和操作,并能设计简单的数据库系统课程内容概述编程语言1学习一门编程语言,如Python或Java,掌握其基本语法、数据类型、运算符、控制流程、函数、数组、字符串、文件处理等内容数据结构与算法2学习常见的数据结构,如线性表、栈、队列、树、图,并掌握相应的算法,如排序、查找、递归、分治、贪心、动态规划等数据库3学习数据库的基本概念,如数据库模型、关系代数、SQL语言、事务管理、数据库设计等软件工程4学习软件工程的基本方法,如需求分析、系统设计、编码和测试、项目管理、团队协作等语言和环境编程语言开发环境课程将采用作为主要编程语言是一种易于学推荐使用,它包含了解释器、库和工具,方Python PythonAnaconda Python习、功能强大且应用广泛的语言,适用于多种领域便进行程序开发和运行基本语法变量变量用于存储数据,通过赋值运算符进行赋值例如“=”age=20数据类型支持多种数据类型,包括整数、浮点数、字符串、布尔值等Python运算符支持算术运算符、比较运算符、逻辑运算符等Python表达式表达式由运算符和操作数构成,用于计算结果例如age+10数据类型整数浮点数字符串布尔值表示没有小数部分的数字,例表示带有小数部分的数字,例表示一系列字符,用引号括起表示真或假,用和True False如、、如、来例如、表示例如、1020-
53.14-
2.5Hello TrueFalseWorld运算符和表达式算术运算符包括加、减、乘、除、取模、取整、幂等+-*/%//**比较运算符包括等于、不等于、大于、小于、大于等于、==!==小于等于等=逻辑运算符包括逻辑与、逻辑或、逻辑非等||!位运算符包括按位与、按位或、按位异或、左移、右移|^等流程控制循环语句循环和循环用于重复执行代码块for while2条件语句1语句根据条件判断执行不同的if-else代码块和break continue3用于跳出循环,用于跳过break continue本次循环函数函数定义使用关键字定义函数,并指定函数名、参数和返回值def函数调用通过函数名和参数调用函数,并获得返回值函数参数函数可以接受参数,用于传递数据到函数内部函数返回值函数可以返回计算结果,用于将结果传递给调用者数组数组定义1使用列表来表示数组,例如list numbers=[1,2,3]数组访问2使用索引访问数组元素,例如numbers
[0]=1数组操作3支持添加、删除、修改、查找等操作字符串字符串定义1用引号括起来的字符序列,例如Hello world字符串操作2支持切片、连接、查找、替换等操作字符串格式化3使用格式化字符串或方法格式化字符串format文件处理12打开文件读写文件使用函数打开文件,并指定打使用、、等open readwrite readline开模式方法读写文件3关闭文件使用方法关闭文件close面向对象编程基础类对象属性方法封装学习面向对象编程的基本概念,包括类、对象、属性、方法和封装面向对象编程高级话题继承多态抽象类接口子类继承父类的属性和方不同类型的对象对相同的消定义抽象方法,子类必须实定义方法签名,实现接口的法,实现代码复用息做出不同的响应现这些方法类必须实现这些方法异常处理异常概念1程序运行过程中出现的错误,例如除以零、文件不存在等try-except语句2使用语句捕获异常,并进行处理try-except异常类型3定义了多种异常类型,例如、Python ZeroDivisionError等FileNotFoundError自定义异常4可以通过自定义异常类,更好地控制和处理异常图形用户界面按钮文本框标签列表框用于用户触发特定操作用于用户输入文本信息用于显示文本信息用于显示多个选项,用户可以选择其中一项网络编程基础学习网络编程的基本概念,如掌握网络连接、数据传输、数据接收了解常见的网络编程库和工具协议栈、套接字编程等等基本操作TCP/IP网络编程高级话题多线程编程网络安全网络协议使用多线程提高网络程序的效率和性学习网络安全的基本知识,如加密、解深入了解常用的网络协议,如、HTTP能密、防火墙等、等FTP SMTP数据结构概述数据结构定义数据结构分类数据结构是组织和存储数据的方常见的数据结构包括线性表、式,它描述了数据之间的关系和栈、队列、树、图等逻辑结构数据结构应用数据结构在各种计算机程序中广泛应用,例如数据库、操作系统、网络等线性表类型2线性表包括顺序表和链表两种类型定义1线性表是一种线性结构,数据元素之间具有线性关系,可以按照顺序访问操作线性表支持常见的操作,如插入、删3除、查找、遍历等栈和队列栈栈是一种后进先出的线性结构,数据元素只能从一端进行插入和删除12队列队列是一种先进先出的线性结构,数据元素只能从一端进行插入,从另一端进行删除树定义树是一种非线性结构,数据元素之间存在层次关系类型树包括二叉树、多叉树等多种类型操作树支持插入、删除、查找、遍历等操作应用树在文件系统、数据库索引、搜索引擎等领域广泛应用图无向图有向图图中边没有方向,表示顶点之间的双向关系图中边有方向,表示顶点之间的单向关系排序算法学习常见的排序算法,如冒泡排序、插入排序、选择排序、归并排序、快速排序等查找算法1线性查找依次遍历数据元2二分查找适用于有序数据,素,直到找到目标元素每次将查找范围缩减一半3哈希查找使用哈希函数将键值映射到哈希表中,实现快速查找算法分析时间复杂度空间复杂度算法运行时间随问题规模变化的趋势,用大符号表示,例如算法运行过程中所需额外空间随问题规模变化的趋势,用大符O O、、等号表示On Olog n Onlogn递归特点2递归函数具有简洁、优雅的特点,但需要注意避免无限递归定义1递归是指函数直接或间接调用自身应用递归在树、图等数据结构的遍历,以及3解决一些数学问题中经常使用分治法定义1分治法是一种将问题分解成规模更小的子问题,并递归解决子问题,最后合并子问题的解来解决原问题的算法设计思想应用2分治法在排序算法(如归并排序、快速排序)、矩阵乘法、最近点对等问题中广泛应用贪心算法定义贪心算法是一种在每一步选择中都选择当前最优解,最终期望得到全局最优解的算法设计思想特点贪心算法通常比较容易实现,但不能保证一定得到全局最优解应用贪心算法在找零、背包问题、最小生成树等问题中经常使用动态规划定义1动态规划是一种将问题分解成一系列子问题,并存储子问题的解,避免重复计算,最终得到全局最优解的算法设计思想特点2动态规划通常能够找到全局最优解,但需要额外的空间来存储子问题的解应用3动态规划在最长公共子序列、编辑距离、背包问题、最短路径等问题中广泛应用数据库基础12数据库模型关系代数数据库模型定义了数据库中数据的组织关系代数是一套操作关系数据库的操作方式,常见的数据库模型包括关系模符的集合,用于查询和处理数据型、层次模型、网络模型等3数据库管理系统数据库管理系统()是用于管理DBMS数据库的软件系统,常见的包括DBMS、、等MySQL OracleSQL Server语言SQL概述语句SQL SQL结构化查询语言()是一种用于访问和操作关系数据库的标语句包括(数据定义语言)、(数据操纵语SQL SQLDDL DML准化语言言)、(数据控制语言)等DCL事务管理事务概念事务特性事务是一组操作的集合,要么全事务具有原子性、一致性、隔离部成功,要么全部失败,保证数性、持久性()四个特ACID据的完整性性事务管理提供事务管理机制,用于控制事务的执行和回滚DBMS数据库设计需求分析1分析业务需求,确定数据需求概念设计2设计数据库的概念模型,建立实体和关系逻辑设计3将概念模型转换为逻辑模型,选择合适的数据库模型和数据类型物理设计4将逻辑模型转换为物理模型,选择合适的存储结构和索引软件工程概述软件工程定义软件工程目标软件开发流程软件工程是一门研究如软件工程的目标是提高软件开发流程包括需求何以系统化、规范化的软件的质量、降低开发分析、系统设计、编码工程方法来开发和维护成本、缩短开发周期和测试、部署和维护等软件的学科阶段需求分析收集和分析用户需求,明确软件的功使用各种需求分析方法,如用例图、编写需求规格说明书,明确软件需能和性能要求数据流图等求系统设计架构设计详细设计设计软件系统的整体架构,包括模块划分、数据流、接口定义设计每个模块的内部实现细节,包括数据结构、算法选择、代码等实现等编码和测试编码根据详细设计文档编写代码,实现软件功能测试对软件进行测试,确保软件质量,包括单元测试、集成测试、系统测试等项目管理项目计划项目执行制定项目计划,包括项目目标、组织项目团队,执行项目计划,进度安排、资源分配等监控项目进度项目评估评估项目进展,分析项目风险,调整项目计划团队协作2协作团队成员共同完成项目任务,发挥各自的优势沟通1团队成员之间进行有效的沟通,确保项目目标一致分享团队成员分享经验和知识,提高团队整体能力3发展趋势1人工智能人工智能技术在软件开发中的应用日益广泛,例如自动代码生成、代码优化等2云计算云计算平台提供强大的计算能力和存储空间,方便软件开发和部署3大数据大数据技术为软件开发提供了新的数据来源和分析方法4移动互联网移动互联网的快速发展,推动了移动应用开发的蓬勃发展学习建议课堂参与课后练习拓展阅读积极参与课堂互动,与老师和同学进行交认真完成课后作业,并进行代码练习,加阅读相关书籍和资料,拓展学习内容,提流深理解和掌握知识升专业技能课程总结计算机科学是一个充满挑战和机遇的领域,希望通过本课程的学习,你能够对计算机科学有一个深入的了解,并为你的未来发展打下坚实的基础。
个人认证
优秀文档
获得点赞 0