版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章信息技术概述本章教学目标
知道信息技术及其发展。
初步理解冯·诺依曼计算机设计思想。
理解计算机的硬件组成。
理解二进制数和信息编码。
理解计算机软件的分类。
知道软件著作权保护及共享软件相关概念。1.1.1信息技术及其发展
信息的定义与特征信息技术的关键阶段:
古代(文字、书信)近代(电报、ENIAC)现代(网络、光纤、卫星)核心技术:通信、计算机、控制(3C)1.1信息技术
信息同数据、知识、消息、信号的关系①数据是反映客观事物属性的原始事实;信息是由原始数据经过处理加工,按特定的方式组织起来,对人们有价值的数据集合。信息通过具体的数据形式被存储和传输,因此数据可看作信息的载体。②知识是经过加工并经过实践检验的条理化信息,信息是知识的基础,但并非所有的信息都是知识。③消息是信息的外表,信息是消息的内涵。④信号是信息的载体,信息是信号所载荷的内容。1.1.2计算机的发展
四代计算机划分:电子管→晶体管→集成电路→超大规模集成电路摩尔定律与集成度未来发展方向:
碳基芯片光计算机量子计算机生物化学计算机1.1.3云计算定义与核心理念特征:共享资源、虚拟化、弹性伸缩服务模式:IaaS、PaaS、SaaS1.2计算机硬件组成冯·诺依曼结构五大部件CPU功能与组成(运算器、控制器)存储器层次结构(Cache→内存→外存)总线与接口类型(USB、HDMI等)1.3数字和编码二进制与十六进制、八进制的转换十进制数(D)二进制数(B)十六进制数(H)十进制数(D)二进制数(B)十六进制数(H)0008100081119100192102101010A3113111011B41004121100C51015131101D61106141110E71117151111F1.3数字和编码二进制与十进制的转换n进制数转换为十进制数一个具有i+1位整数和j位小数的n进制数A,可表示如下十进制数转换为n进制数整数转换方法为除制(n)取余,小数转换方法为乘制(n)取整1.3数字和编码负数的补码表示反码中,除了符号位,其他各位均按位取反。补码是反码末位加1【例】
在一个8位的二进制系统中实现十进制数减法65-15。①十进制数65的8位原码为01000001(正数没有反码、补码);②十进制数-15的8位原码为10001111,反码为11110000,补码为11110001;
③
执行加法A+(-B),即01000001+11110001,结果为100110010,最左边的1是符号位参与运算后的进位,由于结果已超过8位,这个进位被丢弃(溢出),因此有效结果为00110010,此时符号位为0,表示正数,即十进制数50。1.3数字和编码ASCII码D6D5D4D3D2D1D00000010100111001011101110000NULDLESP0@P`p0001SOHDC1!1AQaq0010STXDC2″2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB′7GWgw1000BSCAN(8HXhx1001HTEM)9IYIy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<
L\l|1101CRGS-=M]m}1110SORS.>
N^n~1111SIUS/?O_oDELASCII码,即美国信息交换标准代码(AmericanStandardCodeforInformationInterchange),由7位二进制数组成的编码,用十六进制编码更能呈现其规律性字母A,B,C,D,…的十六进制编码分别为41H,42H,43H,44H,…1.3数字和编码汉字编码(国标码、内码)国标码为了预留扩展空间,以2020H为编码起点,将区位码偏移映射到国标码空间为了区别汉字字符与西文字符,将表示一个汉字的2字节最高位均置为1,即将国标码每字节的最高位均置为1,作为汉字机内码,也就是说,将十六进制国标码加8080H即为内码1.3数字和编码字模点阵存储(示例:16×16点阵占32字节)16×16点阵,每个汉字要占用16×16/8=32B24×24点阵,每个汉字要占用24×24/8=72B1.4计算机软件系统软件:
操作系统(Windows、Linux、macOS)操作系统(OperatingSystem,OS)是最贴近硬件的软件层,是直接运行在“裸机”上的最基本的系统软件,用于控制和管理系统资源,方便用户使用计算机的程序集合。其基本功能有两个:一是管理和调度计算机系统的资源,二是为用户提供友好界面和良好服务。其他软件必须在操作系统的支持下才能运行语言机器语言能被计算机直接理解和执行的指令称为机器指令汇编语言低级语言,用助记符来表示的符号语言。随CPU的指令集而异,兼容性和通用性较差高级语言接近人类自然语言和数学表达的计算机语言解释执行和编译执行1.4计算机软件软件著作权与开源协议按商业利益模式,分为免费软件(Freeware)、共享软件(Shareware)和付费软件(PaidApps)按源代码知识产权模式,分为非开源软件(Non-OpenSourceSoftware)和开源软件(OpenSourceSoftware)Apache许可证(ApacheLicense)GNU通用公共许可证(GeneralPublicLicense,GPL)木兰宽松许可证第2版(MulanPSLV2)第2章操作系统与数据安全本章教学目标
掌握操作系统的主要功能和命令操作。
知道操作系统的分类。
掌握信息安全的基本概念和防护措施。
知道加密解密和区块链的基本概念。Linux操作系统核心组件内核设备驱动、进程管理、内存管理、文件系统和网络协议栈等关键底层功能和组件,用于管理系统硬件和提供最基本服务系统库C语言标准库(libc)、数学库(libm)、动态链接库(libdll)、线程库(libthread)和第三方库等Shell用户使用Linux的人机交互接口应用生态(GNOME/KDE)国产操作系统银河麒麟适配飞腾/龙芯等国产芯片深度定制桌面环境安全等级三级认证统信UOS兼容Windows操作习惯Deepin桌面环境支持Wine运行Windows应用文件管理Ext4,第四代扩展文件系统(FourthExtendedFileSystem)物理驱动器的每个逻辑分区(BlockGroup)均含有如下块组SuperBlock:记录整个文件系统相关信息。GDT:块组描述符信息,整个分区的每个块组均对应一个块组描述符。BlockBitmap:块位图,用来描述本块组中数据块的使用状况。InodeBitmap:Inode位图,1位对应一个Inode,表示其是否空闲可用。InodeTable:Inode表,存储本块组的Inode序号和Inode保存的位置。Flexible块组:这是ext4新增的特性,用于聚集元数据,加速元数据载入,并使大文件在磁盘上尽量连续。DataBlocks:存放数据。文件管理目
录功
能/根目录/boot系统启动引导目录/rootroot用户(系统管理员)的目录(通常不可见)/bin存放标准的Linux的系统基本命令及二进制可执行文件,普通用户可执行/sbinroot用户才能执行的指令(二进制文件)/dev外部设备的端口。Linux中将设备作为文件来管理,例如,/dev/cdrom是光驱,/dev/sda是硬盘,/dev/shm是内存/etc存放系统、服务的管理配置信息,如网络配置、用户加密口令等/home用户的“家”目录,用户使用系统时首先会进入该目录。在银河麒麟中就是登录用户的“个人”目录,在统信UOS中是“主目录”或“数据盘”/media用于挂载可移动设备(如U盘、光盘等)和网络文件系统/lib内核、共享库等库文件/usr应用程序的安装目录,类似于Windows的C:\Programfiles。其中/usr/local主要存放那些手动安装的软件或自定义脚本/opt存放可选程序。第三方软件安装后其相关的数据、库文件都在此目录中,直接删除不会影响系统其他设置。适合安装试运行的程序/proc内存映射目录,该目录可以查看系统的进程相关信息/sys存放系统文件/var存放经常会发生变化(增加、修改、删除)的文件,如项目程序、日志等文件文件管理Linux中的目录和文件名区分大小写目录和文件名应避免使用可能造成歧义的特殊字符不能使用系统中已经定义的一些特殊目录名绝对路径:从根目录“/”开始表示的文件路径。各级目录之间以“/”分隔相对路径:从当前目录开始表示的文件路径。“.”表示当前目录,“..”表示上一级目录文件管理的行命令<当前用户名>@<计算机名>:<最后提示符>“最后提示符”为“$”,表示登录身份为普通用户;为“~”,表示用户的家目录;为“#”,表示以root用户身份登录查看当前目录(pwd命令)切换目录(cd命令)列出文件和目录(ls命令)创建目录(mkdir命令)创建链接(ln命令)复制文件和目录(cp命令)重命名文件和目录(mv命令)查找文件(find命令)查看日期时间(date命令)查看目录结构(du和tree命令)查看文件内容(cat命令)清空屏幕显示(clear命令)权限管理用户和组权限root用户是Linux中最高权限的用户(超级用户)sudo授权将用户切换为root用户,提示符由“$”变为“#”文件的基本访问权限读(r)、写(w)和执行(x)文件压缩归档管理器压缩、解压缩命令例,将当前目录中的data.txt和test.txt文件压缩为testtar.tar:tar-cftesttar.tar./test.txtdata.txt软件的安装与运行统信UOS和银河麒麟等均属于Debian分支,安装包格式为.deb安装命令:sudodpkg-i<带安装包路径的文件名.deb>使用Wine运行器运行Windows软件信息安全有效地防御和抵制计算机网络安全威胁而采取的技术及管理手段机密性:确保信息不暴露给未授权的实体或进程。完整性:确保数据不被未授权的实体或进程修改。可用性:得到授权的实体在需要时可有效地访问数据,而攻击者不会占据资源妨碍授权用户对数据的正常使用。可控性:授权范围内的信息流向和行为方式可控。可审查性:对出现的网络安全问题能提供调查手段和证据。网络中存在的威胁扫描系统的脆弱性利用漏洞进行攻击扩大攻击范围和窃取重要资料信息安全防火墙按软件、硬件形式分类:软件防火墙、硬件防火墙、芯片级防火墙。按技术原理分类:包过滤型防火墙、应用代理型防火墙、混合型防火墙。按应用部署位置分类:边界防火墙、个人防火墙。按通过性能分类:百兆级防火墙、千兆级防火墙。按结构分类:单主机防火墙、路由器集成防火墙、分布式防火墙。按网络层次分类:网络层防火墙、物理层防火墙、链路层防火墙。病毒防护系统实时监控沙箱隔离病毒特征库加密与解密哈希函数(HashFunction)是一种数学过程,它接收任意长度的输入(源数据),却产生固定长度的输出(哈希值或摘要)哈希函数具有不可逆性,即从哈希值不可能直接推算出原始输入信息加密的需求通常是双向的,将明文(可读数据)转换为密文(不可读乱码形式)的过程称为加密;对应地,解密则是将密文恢复成原始的明文内容的过程首先,使用接收方的公钥对原始消息或数据进行加密,公钥是公开的,任何人都可以使用它进行加密和身份验证。然后,将被公钥加密的信息发送给接收方,接收方可以先用公钥进行身份验证,再使用自己的私钥对密文进行解密,还原成原来的消息或数据。私钥是私有的,仅由信息的所有者掌握,确保了信息的完整性和安全性数字证书是实现数字认证的核心工具之一,是经由权威的第三方机构—证书颁发机构(CertificateAuthority,CA)签发的电子文档。数字证书包含以下关键信息。用户身份信息:包括证书所有者的名称、地址等标识性内容。公钥信息:与证书所有者对应的公开密钥,用于加密数据或验证签名。证书颁发机构信息:CA的名称、签名算法及证书序列号等,表明该证书是由可信的第三方签发的。有效期:标明证书的有效起始日期和终止日期。数字签名:由CA使用其私钥对证书内容进行运算后生成,用于保证证书的真实性和完整性区块链区块链(Blockchain)是一种分布式数据库技术,通过时间戳和链式结构连接不断增长的记录列表(区块),形成一个可验证、不可篡改的数据存储系统①去中心化:区块链不依赖于单一中心化的机构来维护和管理数据,而是由网络中的多个节点共同参与和维护。②区块(Block)与链式结构:每个区块中均包含了一定时间内发生的交易或数据记录,并且每个区块都有一个唯一的标识(哈希值)。区块中除了包含交易数据,还有前一个区块的哈希值,这种前、后区块之间的链接形成了一个链条。每个区块通过包含前一个区块的哈希值来确保数据一旦写入就无法被更改。如果试图修改一个区块中的信息,将会导致所有后续区块的哈希值发生变化,从而破坏整个链的完整性。③共识机制:为了在去中心化的环境中达成对交易记录的一致认可,区块链采用不同的共识算法,如工作量证明(ProofofWork,PoW)、权益证明(ProofofStake,PoS)等,让网络参与者按照规则竞争或投票确认新区块的生成并将其添加到链上。④加密技术:区块链使用非对称加密算法以保障交易的安全性,用户拥有公钥和私钥,交易经私钥签名后可以公开验证其真伪,但只有拥有相应私钥的人才能创建有效的交易。⑤透明性和匿名性:区块链上的交易信息是公开可见的,但是账户持有人的身份不一定直接关联真实世界的身份,提供了某种程度的匿名性第3章计算思维与Python语言本章教学目标理解计算思维基本思想。学会Python语言基本语法和基本结构。能编写简单的Python语言循环、分支程序。初步掌握Python语言的组合数据类型。3.1计算思维3.1.1图灵机模型图灵机抽象模型:无限长纸带(存储介质)读写头(处理单元)状态转换表(程序逻辑)理论意义朴素的IPO(Input,Process,Output)运算模式①证明了通用计算理论,肯定了计算机实现的可能性,同时给出了计算机应有的主要架构;②引入了读/写、算法与程序设计语言的概念,突破了传统计算机器的设计理念;③图灵机模型理论是计算学科的核心理论,很多问题可以转化为图灵机这个简单的模型来考虑3.1.2计算思维特征六大核心要素:分解(Divide)抽象(Abstraction)算法(Algorithm)调试(Debugging)迭代(Iteration)泛化(Generalization)①计算思维是一种解决问题过程的思维方法,是概念化的抽象思维,而不是程序化的思维。②计算思维是人的思维,而不是机器思维。计算思维像“读、写、算”那样,是人的一种基本技能,尤其是数字时代每个人都应具备的基本技能。计算思维并非计算机科学技术工作者所独有的技能,而是面向所有人、所有领域的思维方式。③计算思维并非数学计算的能力,但吸收了解决问题需要采用的一般数学思维方法,并可与数学和工程思维互补融合。④计算思维是思想,而不是人工制品。3.2Python语言基础3.2.1基本语法标识符是变量、常量、函数、属性、类、模块、包等对象的指定名称。标识符的命名规则如下:①区分大小写,Myname和myname是两个不同的标识符;②首字符可以是下画线“_”或字母,但不能是数字;③除首字符外的其他字符,可以是下画线、字母或数字;④关键字不能作为标识符;⑤不能使用Python内置函数作为自定义的标识符。关键字是类似于标识符的设定的字符序列基本数据类型分为数值类型和字符串类型。数值类型包含整数、浮点数、复数和布尔类型3.2Python语言基础字符串类型标识符是str。字符串可根据需要用一对单引号、双引号、三单引号、三双引号作为界定符进行包裹。其中三单引号和三双引号所界定的字符串可以包含多行。切片从字符串中提取子串。切片的参数是用两个冒号分隔的三个数字,切片的形式为s[i:j:k]3.2.2组合数据类型列表(list)是一种序列型组合数据类型,用来存储由多个值组成的序列。在列表中,值可以是任何数据类型,称为元素(element)或项(item)。列表是有序的。>>>mlist=[['ColA','ColB','ColC'],[1,2,3],[4,5,6],[7,8,9]]>>>mlist[0][1]'ColB'>>>mlist[2][2]6列表的切片规则与字符串的一致>>>list1=[1,2,3,4,5,6,7]>>>list1[1:5][2,3,4,5]>>>list1[:-3][1,2,3,4]>>>list1[3:][4,5,6,7]3.2.2组合数据类型元组(tuple)与列表类似,也是序列型组合数据类型。元组也可以存储不同类型的数据,如字符串、数值甚至元组。元组的索引、切片与字符串、列表的规则也相同。与列表不同的是,元组是只读的,创建后不能再做任何修改操作>>>t=()>>>t1=(1,)#创建只有一个元素的元组>>>t2=(2,3,345,'abc',(4,5,'pp'),'中文')>>>t2[2:]('abc',(4,5,'pp'),'中文')>>>t2[-2][-1]'PP'3.2.2组合数据类型字典(dictionary)是一种映射型组合数据类型,是包含键(key)和值(value)映射的集合,其中的一个键对应一个值。这种一一对应的关联称为键值对(key-valuepair),或称为项(item)。简单地说,字典就是用花括号包裹的项(键:值)的集合>>>dict={'name':'www','port':80}>>>dict{'name':'www','port':80}>>>dict['port']80>>>dict['a']Traceback(mostrecentcalllast):File"<pyshell#4>",line1,in<module>dict['a']KeyError:'a'>>>d={}>>>print(d.get('name'))None>>>d.get("name",'N/A')'N/A'>>>d["name"]='Eric'>>>d.get('name')'Eric'3.2.2组合数据类型3.2.3程序控制结构(顺序、分支和循环结构)顺序结构是典型的IPO结构,即程序工作的一般流程:数据输入、运算处理、结果输出,自上而下地依次执行各条语句importmathr=float(input("请输入圆的半径:"))circumference=2*math.pi*rprint("圆的周长为{:.2f}".format(circumference))3.3程序控制结构(顺序、分支和循环结构)分支结构#分支结构示例score=eval(input("请输入成绩:"))if90<=score<=100:grade='A'elif80<=score<90:grade='B'else:grade='C'print(f"成绩等级:{grade}")
3.3程序控制结构(顺序、分支和循环结构)为了逼近所需目标或结果重复反馈的过程称为迭代。对过程的一次重复称为一次迭代,而一次迭代得到的结果会作为下一次迭代的初始值,重复执行一系列相同的运算步骤,从前面的结果依次求出后面的结果。循环结构是迭代思想在程序设计中的具体体现i=1whilei<=9:j=1whilej<=i:print("{}*{}={}".format(i,j,i*j),end="\t")j+=1i+=1print("\n")第4章数据处理本章教学目标掌握电子表格数据处理操作。初步掌握基于电子表格的数据分析。初步掌握用Python编程处理电子表格数据。初步掌握基于pandas的数据处理方法。4.1电子表格4.1.1工作簿与工作表工作簿格式:.et/.xlsx/.xlsm/.xls/.txt/.csv工作簿模板:.ett/.xltx/.xltm4.1.2单元格数据填充:序列填充/公式填充单元格格式:数字格式/对齐方式/边框填充数据有效性:范围限制/下拉列表计算:公式(相对/绝对/混合引用)/函数库4.1.3工作表格式化行/列操作:自动调整/合并居中条件格式:色阶/数据条/图标集4.1.4图表图表类型:柱形图/折线图/组合图图表元素:标题/坐标轴/数据标签高级功能:双坐标轴/趋势线/误差线4.1.5排序和筛选排序方式:单条件/多条件/自定义筛选类型:文本筛选/数字筛选/颜色筛选4.1.6分类汇总操作流程:排序→分类字段→汇总方式高级应用:嵌套汇总/分级显示4.1.7数据透视表创建步骤:字段拖拽→布局设置→样式应用高级功能:切片器/值字段设置4.2基于电子表格的数据分析4.2.1单变量求解应用场景:方程求解/投资分析操作要点:目标单元格/可变单元格设置解方程56x4+8x3+34x+8=04.2.2模拟运算表单变量模拟:参数变化分析双变量模拟:多参数交互分析4.2.3规划求解核心要素:目标函数/约束条件/求解方法典型案例:路径优化4.2.3规划求解典型案例:排班问题某灾难救援临时医疗机构集合了全科医师20人,根据各医疗岗位的配备需求,周一至周日分别需要6、4、5、6、7、8、7人。若每名全科医师每周连续上5天班,利用规划求解优化排班效率,计算需要参加排班的最少全科医师人数4.3用Python编程处理电子表格4.3.1基本操作库使用:openpyxl核心API文件操作:创建/读取/写入工作簿importopenpyxlwb=openpyxl.Workbook()ws=wb.activews['A3']=1.25#为A3单元格赋值celldata=ws.cell(3,2).value#第3行第2列的值wb=openpyxl.load_workbook('./新建工作表.xlsx')ws=wb['Sheet1']wb.save('C:/data/test.xlsx')4.3.2大量数据汇总自动化流程:目录遍历→数据提取→合并写入代码示例:Python脚本实现多文件整合importopenpyxl,oswb=openpyxl.Workbook()ws=wb.activetitle=['姓名','身高','体重','左眼视力','右眼视力','舒张压','收缩压']foriinrange(1,8):ws.cell(1,i).value=title[i-1]#列表从0起始,而列标从1起始files=os.listdir('C:/体检/')r=2#从第2行开始汇总forfinfiles:iff.upper()[-5:]=='.XLSX':#无论大小写
wb1=openpyxl.load_workbook('C:/体检/'+f)ws1=wb1['Sheet1']foriinrange(1,8):ws.cell(r,i).value=ws1.cell(i+1,2).valuer+=1wb.save(filename='./数据汇总.xlsx')4.4pandas数据处理4.4.1核心数据结构Series:一维带标签数组DataFrame:二维表格型数据结构>>>df=pd.read_excel('./参赛作品.xlsx',sheet_name=0)>>>df[:5]#显示前5行4.4.2数据操作数据清洗:缺失值处理/重复值删除统计分析:聚合计算/分组操作数据转换:列操作/条件筛选4.4.3数据持久化文件导出:CSV/Excel格式数据库交互:SQL表读写>>>df.to_csv('C:/data/data.csv',mode='w',header=True,encoding='gbk',index=False)>>>df.to_excel('C:/data/data.xlsx',sheet_name='Sheet1',header=True,na_rep='N/A',index=False)>>>importsqlite3>>>conn=sqlite3.connect('c:/data/ngln_data.db')>>>df.to_sql('df_data',conn,if_exists='fail',index=False)第5章关系型数据库本章教学目标初步理解数据库管理系统的基本概念和ER图。初步理解数据库设计的范式。掌握表与关系的创建。初步掌握单表查询、模糊查询、聚合查询、分组查询和连接查询。初步掌握数据的写入、修改和删除5.1关系型数据库概述数据库系统的基本概念数据库是按照一定的数据模型组织的数据集合数据库管理系统(DatabaseManagementSystem,DBMS)是一种管理数据库的系统软件数据的物理存储结构称为数据库的内模式,而数据库中数据的逻辑结构和特征称为模式,模式中部分被查询呈现的局部逻辑结构或部分数据表示称为外模式。数据库管理系统提供了内模式与模式、模式与外模式之间的两级映射,保证了数据与程序之间的物理独立和逻辑独立三级模式结构:内模式(物理存储)模式(逻辑结构)外模式(用户视图)数据独立性(物理独立性与逻辑独立性)ACID特性原子性(Atomicity):事务的不可分割性一致性(Consistency):事务前后的数据一致性隔离性(Isolation):并发事务的独立执行持久性(Durability):事务提交后的永久保存5.1关系型数据库概述数据库管理系统分类关系型数据库管理系统(RelationalDatabaseManagementSystem,RDBMS)NoSQL数据库管理系统不仅关系型数据库管理系统(Not-only-RelationalDatabase)E-R图与关系运算由实体、实体的属性和实体间的联系构成,将数据模型所涉及的数据对象及其关系表达为概念模型,并不依赖于具体的软/硬件或数据库管理系统数据库管理系统分类关系型数据库(RDBMS):Oracle,MySQL,PostgreSQLNoSQL数据库:文档型(如MongoDB)、键值对型(如Redis)、列族型(如Cassandra和HBase)、图形型(如Neo4j)、时序型(如InfluxDB)等国产数据库:达梦数据库、人大金仓数据库KingbaseES、阿里云POLARDB、高斯数据库openGauss等E-R图组成元素实体(矩形)、属性(椭圆)、联系(菱形)联系类型1:1(一对一)、1:n(一对多)、m:n(多对多)5.2数据库设计与管理数据库设计范式(1NF/2NF/3NF)表与关系的创建(达梦数据库示例)数据完整性约束(主键、外键、检查约束)数据迁移方法(SQL文件导入/导出)数据库设计范式第一范式(1NF):属性的原子性所有实体的属性都是独立的第二范式(2NF):部分依赖在满足第一范式的基础上,如果实体存在的其他属性都能够完全从属或依赖于某个或某几个联合属性的主属性第三范式(3NF):传递依赖指在满足第二范式的基础上,任何非主属性不依赖于其他实体的非主属性。也就是说,满足第三范式的一个关系中不得包含已在其他关系中包含的非主属性信息,但反过来说,可以包含其他实体的主属性,并作为本实体数据的参照约束数据完整性约束约
束项
目作
用实体完整性主键约束(PRIMARYKEY)主键不得出现重复值,确保表中记录的唯一性唯一性约束(UNIQUE)非主键字段不出现重复值(主键字段已不需要此项)域完整性默认值约束(DEFAULT)对没有插入值的列自动添加默认值非空值约束(NOTNULL)限定记录的某列必须有值,即不允许空值检查约束(CHECK)某列的取值必须符合检查限定参照完整性外键(FOREIGNKEY)通过表间关系约束字段值的有效性数据迁移导出数据生成定义脚本与数据脚本导入数据先修改模式名称与处理外键约束5.3数据查询与数据操作SELECT语句(单表查询、模糊查询)SELECT字段列表FROM表名或视图[WHERE查询条件][GROUPBY分组字段[HAVING分组条件]][ORDERBY字段名[ASC/DESC]][LIMIT起始位置,记录数];5.3数据查询与数据操作聚合函数与分组查询(AVG、COUNT、GROUPBY)函数表达式功
能AVG([ALL|DISTINCT]expression)计算分组中某个字段的平均值COUNT([ALL|DISTINCT]expression)统计分组中某个字段的个数MAX([ALL|DISTINCT]expression)查找分组中某个字段的最大值MIN([ALL|DISTINCT]expression)查找分组中某个字段的最小值SUM([ALL|DISTINCT]expression)计算分组中某个字段的总和查询药品表,统计不同类别药品的平均单价。SELECTAVG(单价)as平均单价,类别FROMCLINIC_DB.药品GROUPBY类别;5.3数据查询与数据操作连接查询(内连接、左/右外连接)FROM表1[INNER]JOIN表2ON表1.字段名1<比较运算符>表2.字段名2连接医生表和病案表,查询相匹配的医生所诊治的患者的简明症状SELECT医生.姓名,病案.简明症状FROMCLINIC_DB.医生JOINCLINIC_DB.病案ON医生.医生代码=病案.医生代码;连接医生表和病案表,查询所有医生诊治的患者的简明症状(没有参与诊治的医生,其简明症状列显示为NULL)SELECT医生.姓名,病案.简明症状FROMCLINIC_DB.医生LEFTJOINCLINIC_DB.病案ON医生.医生代码=病案.医生代码;5.3数据查询与数据操作数据操作(INSERT、UPDATE、DELETE)INSERTINTO表[(字段1,字段2,…)]VALUES(值1,值2,…]);UPDATE表SET字段1=表达式1[,字段2=表达式2,…][WHERE更新条件];DELETEFROM表[WHERE删除条件];DELETEFROMCLINIC_DB.药品WHERE药品名称='巯甲丙脯酸片';UPDATECLINIC_DB.药品SET单价=单价*0.9WHERE类别='解热镇痛药';INSERTINTOCLINIC_DB.患者(医保号,姓名)VALUES('YB12345','张三');第6章数字通信与网络教学目标理解数字通信的基本概念。理解计算机网络体系结构和网络互联设备。理解IP地址与域名。知道物联网的基本概念。掌握HTML基本语法和静态网页的构建6.1数字通信6.1.1基本概念信号类型:模拟信号(连续)与数字信号(离散)信道分类:有线/无线、多路复用、模拟/数字信道、专用/公用多路复用技术:FDMA、TDMA、CDMA6.1.2技术指标传输速率:比特率(bit/s)与波特率(Baud/s)差错率:误码率与比特差错率可靠性:正常工作时间(tr)/全部工作时间(Tr)带宽:信道容量,频率或能量带的范围6.2计算机网络6.2.1基本概念功能:数字通信、资源共享(硬件、软件、数据)组成:计算机系统、通信设备、协议、网络软件分类:广域网(WAN)、城域网(MAN)、局域网(LAN)协议语法:数据与控制信息的结构或格式(如何通话)语义:控制信息的含义,定义了发送者或接收者要完成的工作及响应(通话内容)时序:规定操作的时间顺序(何时通话)6.2.2网络体系结构OSI七层模型TCP/IP四层模型OSI模型开放系统互连(OpenSystemInterconnection,OSI)参考模型TCP/IP模型TCP/IP(TransmissionControlProtocol/InternetProtocol)是Internet上通用的网络协议组6.3互联网及其应用6.3.1IP地址与域名IPv4结构:A/B/C类地址与子网掩码IPv6优势:128位地址、自动配置、安全性DNS解析:域名层级结构与域名服务器6.4物联网(IoT)定义:物物互联的智能化网络技术架构感知层(传感器)网络层(通信)应用层(数据处理)应用场景:智能家居、智慧交通、工业自动化等6.5HTML与网页构建6.5.1静态网页基础HTML标签:<html>、<head>、<body>CSS样式:选择器、属性规则、层叠效果表单元素:文本框、单选按钮、复选框、提交按钮6.5.2网页布局表格布局:固定宽度与自适应DIV-CSS布局:响应式设计框架布局:多窗口协同第7章大数据与数据可视化教学目标理解大数据的基本特征与数据思维初步掌握FineBI数据仪表板可视化操作初步掌握Matplotlib数据可视化方法7.1大数据7.1.1大数据的基本特征与数据思维4V特征:Volume(数据规模)、Velocity(数据流转)、Variety(数据类型)、Value(数据价值)数据思维:数据意识、数据获取与处理、数据分析、数据可视化、数据驱动决策、数据伦理与隐私保护7.1.2数据可视化的基本概念数据可视化的定义与目的数据可视化是为了让人们理解数据,从而快速找到数据背后隐藏的现实问题,并有针对性地解决问题数据可视化的准备对数据分析的需求和关注点明确数据分析目的确定可视化要表达的内容及如何凸显用户关注的核心指标7.1.2数据可视化的基本概念常见数据可视化图形:比较类、趋势类、占比类、分布类、关联关系类7.2FineBI数据仪表板7.2.1数据准备连接数据库创建数据集业务包管理添加Excel数据集7.2FineBI数据仪表板7.2.2数据分析与图表应用维度和指标内置函数:聚合函数、统计函数、逻辑函数、日期函数属性设置7.2FineBI数据仪表板7.2.3仪表板布局与其他组件仪表板的整合与复用过滤组件与图表交互其他图文组件:文本组件、图片组件、Web组件、Tab组件7.2FineBI数据仪表板7.2.4资源迁移导出仪表板数据包上传仪表板数据包7.3Matplotlib数据可视化7.3.1线条图和散点图plot()函数与scatter()函数常用颜色、线型、描点标记设置坐标轴、标题、网格线等ucr.csv文件中是编码为GBK的24小时不同分组治疗患者尿肌酐含量数据。用Matplotlib绘制用蓝色虚线连接、描点标记为五角星的折线图importpandasaspdimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falseudata=pd.read_csv('./ucr.csv',encoding='gbk')gr=udata.groupcr=udata.ucrplt.title('24小时尿肌酐分组比较')plt.xlabel('UCR')plt.xticks(rotation=45)plt.plot(gr,cr,'--*b',label='UCR')plt.legend(loc='upperright')plt.axis('equal')plt.savefig('./ucr.png')#此代码要放在前面plt.show()7.3Matplotlib数据可视化7.3.2柱状图与直方图柱状图:bar()函数直方图:hist()函数plt.bar(gr,cr,color='#7ecef4',edgecolor=color,label='UCR')importpandasaspdimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsetdata=pd.read_csv('体检.csv',encoding='gbk')tz=tdata.体重plt.title('某年级学生体重分布')plt.xlabel('体重')plt.ylabel('人数')plt.ylim(0,8)plt.hist(tz,5)plt.axis('equal')plt.show()7.3Matplotlib数据可视化7.3.3饼图pie()函数常用参数:explode、labels、colors等importpandasaspdimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']CHN=pd.read_csv('gold.csv',encoding='gbk')gold=CHN.金牌xm=CHN.类别plt.title('第32届夏季奥运会中国队八项比赛金牌占比')explodes=[0]*8#相当于explodes=[0,0,0,0,0,0,0,0],预设都不突出显示explodes[3]=0.2#explodes[3]是第4个,即乒乓球项目plt.pie(gold,labels=xm, #设置数据标签为xmautopct='%.1f%%', #设置扇形里面的文本,数字自动归一化
explode=explodes)plt.axis('equal')plt.legend(loc='upperright',bbox_to_anchor=(1.1,1.1)) #设置图例plt.show()第8章人工智能教学目标熟悉人工智能基本概念和发展学派理解机器学习基本方法初步理解深度学习与人工神经网络理解大模型等人工智能概念8.1人工智能的基本概念8.1.1人工智能的定义AI是模拟、延伸人类智能的科学技术发展历程:初期阶段→知识时代→特征时代→数据时代核心问题:定义与算法8.1人工智能的基本概念8.1.2图灵测试通过文字问答判断机器是否具备人类智能2014年"尤金·古兹曼"首次通过测试8.1人工智能的基本概念8.1.3人工智能的发展与学派符号主义学派:基于逻辑推理(如专家系统)行为主义学派:强调环境交互(如控制论机器人)连接主义学派:仿生神经网络(如深度学习)8.2机器学习8.2.1机器学习的概念流程:数据预处理→模型训练→评价优化工具:scikit-learn(分类、回归、聚类等)8.2机器学习8.2.2机器学习的基本方法有监督学习:分类(KNN、SVM)、回归(线性回归)无监督学习:聚类(K-Means)、降维(PCA)案例:药用植物分类、血糖预测、数据聚类与可视化某药用植物由于原产地不同,药性有所差异。在“药材.csv”文件中记录了原产地分别为A(分类代码0)、B(分类代码1)和C(分类代码2)的药用植物叶片数据,包括叶长、叶宽、叶尖长和叶柄长数据(单位cm),局部数据如图所示。用sklearn进行分类建模。
①引用机器学习工具包并读入数据。importnumpyasnpimportpandasaspdfilename='./药材.csv'data=pd.read_csv(filename)X=data.iloc[1:,:-1] #数据集习惯上用大写形式,不含标题行,前4列数据y=data.iloc[1:,-1] #标签习惯上用小写形式,不含标题行,最后一列为标签列②划分数据。将已知数据分成2组:训练集(60%)和测试集(40%)。fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.4)③训练建模。使用训练集来构建相关特征的模型。fromsklearn.neighborsimportKNeighborsClassifierclf=KNeighborsClassifier(n_neighbors=3)clf.fit(X_train,y_train)④验证调优。使用测试集来验证模型的表现,通过调整参数或使用更多的特征来提升算法的性能。准确率(Accuracy)用预测结果中正确预测的数量与样本总数的比值表示。y_train_pred=clf.predict(X_train)y_test_pred=clf.predict(X_test)#预测模型的准确率importsklearn.metricsprint('训练集',sklearn.metrics.accuracy_score(y_train,y_train_pred))print('测试集',sklearn.metrics.accuracy_score(y_test,y_test_pred))当n_neighbors=3时,预测模型的准确率如下:训练集0.9775280898876404测试集0.9333333333333333当n_neighbors=7时,预测模型的准确率如下:训练集0.9775280898876404测试集1.0⑤应用预测。使用训练好的模型对未知数据进行预测。预测药用植物叶片的叶长、叶宽、叶尖长和叶柄长数据分别为4.5、1.5、0.1、3.1的原产地。注意X_n的数据结构,即使只有一条测试记录也要用二维列表(双重方括号)。#未知数据X_n=[[4.5,1.5,0.1,3.1]]y_n=clf.predict(X_n)print('预测未知数据属于标签',y_n)输出结果如下:预测未知数据属于标签[0]可知预测样本属于原产地A。临床研究发现,空腹血糖值与血液总胆固醇和甘油三酯两项独立指标具有线性关系。“血糖数据.xlsx”文件中有135例临床数据,局部数据如图8-3所示。用sklearn进行线性回归建模。①引用机器学习工具包并读入数据。importnumpyasnpimportpandasaspdfilename='血糖数据.xlsx'data=pd.read_excel(filename)X=data.iloc[1:,:2].values.astype(float) #自变量,大写,不含标题行,前2列数据y=data.iloc[1:,2].values.astype(float)#因变量,小写,不含标题行②划分数据。将已知数据分成2组:随机划分训练集(90%)和测试集(10%)。fromsklearnimportmodel_selectionX_train,X_test,y_train,y_test=model_selection.train_test_split(X,y,test_size=0.1,random_state=1)③训练建模。使用训练集来构建相关特征的模型。fromsklearn.linear_modelimportLinearRegressionlinregTr=LinearRegression()linregTr.fit(X_train,y_train)#输出线性回归模型的截距和回归系数print(linregTercept_,linregTr.coef_)输出结果如下:5.133088271911451[0.200307010.32663484]即线性回归模型可近似表达为多元线性方程y=0.200X0+0.327X1+5.133。④验证调优。使用测试集来验证模型的性能。利用sklearn的metrics类中提供的r2_score、mean_squared_error和mean_absolute_error方法分别计算决定系数R2、均方误差MSE和平均绝对误差MAE。fromsklearnimportmetricsy_train_pred=linregTr.predict(X_train)y_test_pred=linregTr.predict(X_test)train_mse=metrics.mean_squared_error(y_train,y_train_pred)test_mse=metrics.mean_squared_error(y_test,y_test_pred)print('在训练集和测试集上的均方误差分别为:{:.2f}和{:.2f}'.format(train_mse,test_mse))train_mae=metrics.mean_absolute_error(y_train,y_train_pred)test_mae=metrics.mean_absolute_error(y_test,y_test_pred)print('在训练集和测试集上的平均绝对误差分别为:{:.2f}和{:.2f}'.format(train_mae,test_mae))predict_score=linregTr.score(X_test,y_test)print('用回归模型自带方法计算决定系数为:{:.2f}'.format(predict_score))predict_r2_score=metrics.r2_score(y_test,y_test_pred)print('用metrics类方法计算决定系数为:{:.2f}'.format(predict_r2_score))输出结果如下:在训练集和测试集上的均方误差分别为:0.08和0.04在训练集和测试集上的平均绝对误差分别为:0.21和0.16用回归模型自带方法计算决定系数为:0.80用metrics类方法计算决定系数为:0.80⑤可视化输出结果。使用matplotlib.pyplot对所划分的测试集进行可视化结果比较,如图所示,其中虚线为模型预测结果,实线为临床血样真实结果。importmatplotlib.pyplotaspltplt.plot(range(len(y_test_pred)),y_test_pred,'g--',label='y_test_pred')plt.plot(range(len(y_test)),y_test,'r',label='y_test')plt.show()
⑥应用预测。使用训练好的模型对未知数据做预测。某患者血液总胆固醇和甘油三酯数据分别为8.9和2.3,预测其空腹血糖。注意X_n的数据结构,即使只有一条测试记录也要用二维列表(双重方括号)。#未知数据X_n=[[8.9,2.3]]y_n=linregTr.predict(X_n)print('预测未知数据空腹血糖为',y_n)输出结果如下:预测未知数据空腹血糖为[7.6670808]图测试集的模型预测结果与临床血样真实结果比较用sklearn机器学习聚类方法将下列6个数据点聚类:[1,2],[1.5,1.8],[3.5,2.8],[4.6,3.8],[1,0.6],[3.3,4.2],并预测[1.4,1.2]和[3.6,3.9]两个数据点所属的分类标签。importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportKMeansX=np.array([[1,2],[1.5,1.8],[3.5,2.8],[4.6,3.8],[1,0.6],[3.3,4.2]])clf=KMeans(n_clusters=2)clf.fit(X)centers=clf.cluster_centers_ #两组数据点的中心点labels=clf.labels_ #每个数据点所属的分类标签print('两组的中心点在:\n',centers)print('各数据点所属分类标签:\n',labels)foriinrange(len(labels)):plt.scatter(X[i][0],X[i][1],c=('r'iflabels[i]==0else'b'))plt.scatter(centers[:,0],centers[:,1],marker='v',s=100)#预测predict=[[1.4,1.2],[3.6,3.9]]label=clf.predict(predict)foriinrange(len(label)):plt.scatter(predict[i][0],predict[i][1],c=('r'iflabel[i]==0else'b'),marker='x')
plt.show()输出结果如下:两组的中心点在:
[[3.83.6][1.166666671.46666667]]各数据点所属分类标签:
[110010]8.3深度学习与人工神经网络8.3.1神经网络的基本概念结构:输入层→隐藏层→输出层激活函数:ReLU、Sigmoid、tanh训练过程:前向传播→损失计算→反向传播8.3.2卷积神经网络(CNN)核心组件:卷积层→池化层→全连接层应用:图像识别(MNIST手写数字分类)框架:TensorFlow/Keras实现模型构建与训练(1)加载相关库和数据集,配置模型参数。设定每批次128张图像,将60000张训练集图像分469批次进行训练;设定每批次32张图像(默认),将10000张测试集图像分313批次进行测试。importtensorflowastffromtensorflow.keras.datasetsimportmnistfromtensorflow.keras.modelsimportSequentialfromtensorflow.keras.layersimportDense,Flatten,Conv2D,MaxPool2Dfromtensorflow.keras.utilsimportto_categoricalimportnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.imageasmpimg#配置学习率、批次大小、迭代次数等参数learning_rate=0.001batch_size=128#每批次训练图像数epochs=10#加载MNIST数据集(需联网下载)(x_train,y_train),(x_test,y_test)=mnist.load_data()(2)数据预处理。利用reshape函数将二维图像(28×28像素)转换为一维序列(784像素),然后将像素0~255的灰度值归一化,对分类维度,将标签转换为0~9的分类格式。x_train=x_train.reshape(x_train.shape[0],28,28,1)/255.0#整形成适合卷积网络的输入x_test=x_test.reshape(x_test.shape[0],28,28,1)/255.0y_train=to_categorical(y_train,num_classes=10)#将标签转换为分类格式y_test=to_categorical(y_test,num_classes=10)(3)构建Sequential神经网络模型。输入层采用Conv2D二维卷积层,共28×28=784个神经元(一维序列输入),使用32个3×3的卷积核。然后依次连接2×2的MaxPool2D池化层、64核的Conv2D二维卷积层和2×2的MaxPool2D池化层,以Flatten展平层转换后连接128个神经元的Dense全连接层。其均以ReLU作为激活函数。最后连接10个神经元的Dense输出层,以softmax函数归一化得到10个数字的概率分布。model=Sequential([Conv2D(32,kernel_size=(3,3),activation='relu',input_shape=(28,28,1)),#32个3×3的卷积核
MaxPool2D(pool_size=(2,2)), #2×2的池化层
Conv2D(64,kernel_size=(3,3),activation='relu'),#64个3×3的卷积核
MaxPool2D(pool_size=(2,2)), #2×2的池化层
Flatten(),#展平层,在卷积层和全连接层中间起转换作用
Dense(128,activation='relu'), #全连接层
Dense(10,activation='softmax') #输出层])(4)模型编译。使用Adam优化器,每步均输出损失函数和准确率用于模型评估。pile(optimizer=tf.keras.optimizers.Adam(learning_rate=learning_rate),loss='categorical_crossentropy',metrics=['accuracy'])(5)训练模型。迭代次数达到预定epochs时结束训练。model.fit(x_train,y_train,batch_size=batch_size,epochs=epochs,validation_data=(x_test,y_test))(6)评估模型。训练和测试的部分输出结果如图所示。test_loss,test_acc=model.evaluate(x_test,y_test)print(f'测试集准确度:{test_acc}')(7)可视化测试。测试结果如图所示。images=x_testlabels=y_testnum_rows=2#展示4个测试图像,2行2列num_cols=2prediction_labels=np.argmax(model.predict(images),axis=1)fig,axs=plt.subplots(num_rows,num_cols,figsize=(2,2))foriinrange(num_rows*num_cols):row=i//num_colscol=i%num_colsaxs[row,col].imshow(images[i].reshape(28,28),cmap='Greys')axs[row,col].set_title(f"Label:{labels[i]},Prediction:{prediction_labels[i]}")plt.axis('off')plt.tight_layout()plt.show()(8)对测试图像进行识别。创建一张28×28像素的灰度图像,手写数字“8”,保存为8.png进行测试,显示结果如图所示。file='./8.png'img=mpimg.imread(file)plt.imshow(img)plt.show()prediction=model.predict(img.reshape(1,28,28,1))print(f"图像文件{file}的识别结果为:{prediction.argmax()}")8.4大模型8.4.1大模型的概念特点:参数规模大、涌现能力、多领域泛化案例:AlphaFold蛋白质预测、GPT-4多模态生成8.4大模型8.4.2大语言模型(LLM)技术核心:Transformer架构、Token化策略应用:文本生成、对话系统(如ChatGPT)提示词设计原则:明确意图、结构化输入8.4大模型8.4.3思维链和智能体智能体能力:感知(Perception)、推理(Reasoning)、规划(Planning)、决策(DecisionMaking)、行动(Actuation)和学习(Learning)知识蒸馏:一种将大模型压缩的方法,可将复杂模型的知识转化为更精简高效的表示,在保持高性能的同时,降低计算复杂度和资源需求,从而能将大模型迁移到小系统中形成泛化能力。知识蒸馏可以比喻为教师教学生,将一个复杂、庞大的模型(通常称为教师模型)的知识和经验,提炼并传授给一个轻简系统的模型(学生模型)。8.4大模型8.4.4人工智能的安全①隐私泄露②数据偏见③误用风险④安全漏洞⑤失控风险⑥就业影响⑦道德和伦理问题⑧武器化⑨恶意数据训练风险第9章数字媒体教学目标理解数字媒体技术的主要特征理解媒体信息的数字化理解数据压缩技术等数字媒体关键技术及应用发展掌握数字图像处理、动画等数字媒体编辑操作方法9.1数字媒体技术概述9.1.1数字媒体技术的主要特征多样性交互性集成性实时性9.1数字媒体技术概述9.1.2数字媒体计算机系统的组成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网企业产品经理用户需求分析手册
- 德州市平原县2027届六上数学期末检测模拟试题含解析
- 2027届云南省德宏傣族景颇族自治州盈江县数学六年级第一学期期末质量跟踪监视模拟试题含解析
- 山西大附中2026年数学七上期末综合测试试题含解析
- 汝州市2026-2027学年数学六年级第一学期期末达标检测模拟试题含解析
- 保山市腾冲县2026-2027学年数学六年级第一学期期末教学质量检测试题含解析
- 日喀则地区2026-2027学年六年级数学第一学期期末复习检测模拟试题含解析
- 财务报销单据审核执行函(6篇)范文
- 尚志市2026年六上数学期末质量跟踪监视模拟试题含解析
- 宁夏回族固原市彭阳县2027届数学六上期末统考试题含解析
- 2025年电动车充电桩运营合同协议
- 铁矿石质量考试题及答案
- 生产成本控制及核算数据表格模板
- 项目化教学工作汇报
- GJB3165A-2020航空承力件用高温合金热轧和锻制棒材规范
- 2025年国开电大合同法论述案例分析题题库(含答案)
- 国家审计案例425
- 现场施工人员管理制度
- 2020铁路路基工程施工安全技术规程
- 老年体检报告范文
- 国家开放大学2024年春季学期期末统一考试《外国文学专题》试题(试卷代号11308)
评论
0/150
提交评论