《重构·破茧:Deepseek赋能教育的底层认知革命.pdf》由会员分享,可在线阅读,更多相关《重构·破茧:Deepseek赋能教育的底层认知革命.pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、重构重构破茧:破茧:Deepseek赋能教育的底层认知革命赋能教育的底层认知革命山西师范大学山西师范大学 机器人与人工智能实验室机器人与人工智能实验室 宋彩芳宋彩芳山西山西晋城晋城DeepSeek为什么可以赋能教育?为什么可以赋能教育?Deepseek V3 和 R1如何选?博学的全能人才,有问必答,无昼无夜。博学的全能人才,有问必答,无昼无夜。应用场景应用场景工具组合工具组合核心价值核心价值PPT创作创作DeepSeek+iSlide插件插件AI生成逻辑框架+专业排版优化数字人数字人DeepSeek+D-ID中文脚本创作+口型同步技术思维导图思维导图DeepSeek+幕布幕布结构化思维+大纲
2、转视觉化视频生成视频生成DeepSeek+剪映专业版剪映专业版AI脚本生成+智能剪辑知识管理知识管理DeepSeek+Obsidian碎片信息整合+双向链接网络学术研究学术研究DeepSeek+Zotero文献综述辅助+引用管理AI编程编程DeepSeek+Cursor智能代码补全+跨文件上下文理解多模态创作多模态创作DeepSeek+ComfyUI文生图+工作流可视化控制数据分析数据分析DeepSeek+简道云简道云自然语言生成SQL+零代码看板智能设计智能设计DeepSeek+即时设计即时设计AI生成原型图+团队协作标注虚拟实验虚拟实验DeepSeek+Labster理论推导+3D虚拟实验
3、室操作只有你想不到,没有你找不到。只有你想不到,没有你找不到。DeepSeek可以让我们管(教)的轻松,可以让我们管(教)的轻松,可以让学生学得高效吗?可以让学生学得高效吗?管(教)的轻松,学的高效老问题老问题还没有得到有效解决还没有得到有效解决钱学森之问为什么我们的学校总是培养不出杰出人才?对于培养一流科学家不太成功 是不是有这个现象?有没有可以改进的地方?值不值得去研究?杨振宁三问教育教学中的问题发现根本原因发现根本原因探寻求解路径探寻求解路径6解决问题的能力和创新能力差 教育学科的表面教育学科的表面“繁荣繁荣”与实质实质“停停滞滞”教育教学的新问题:教育教学的新问题:“内卷内卷”与与“躺
4、平躺平”教育教学中的问题知识爆炸知识爆炸 VS 知识贬值知识贬值 Op en A I o 3(2024 年12 月20 日):通向AG I在A RC-AG I(通用人工智能评估基准)测试中 G P T-3:0%G P T-4 o:5%Op en A I o 3:87.5%(人类平均水平人类平均水平85%)Deep Seek+X9教育教学不得不迎接AI的挑战面临挑战面临挑战AI的进展标志人类已经迈向的进展标志人类已经迈向AGI智能化时代的教育目标学习的本质是解决问题学习的本质是解决问题认知认知能力能力知识知识知识知识+能力能力 能力能力+认知认知知识积累(记住、被动吸收知识、僵硬性)解决问题(思
5、维、主动探索知识、创新性)拼搏几十年的事业可能被AI取代,人生意义何在?AI算法能穷尽的是技;算法能穷尽的是技;而棋手毕生追求的是道。而棋手毕生追求的是道。怎么用怎么用DeepSeek赋能教育?赋能教育?手持利刃:DeepSeek1、私有化部署2、第三方接入API:OfficeAI,chatBox3、其他产品:腾讯元宝手持利刃:Deepseek下载chatbox https:/chatboxai.app/zh从硅基流动获取API:https:/ n 和计划录取人数 m,然后读取每个选手的报名号和笔试成绩。2.*排序规则*:将选手按笔试成绩从高到低排序,成绩相同则按报名号从小到大排序。3.*确定
6、分数线*:计算 m*1.5 的向下取整值 k,找到排序后第 k 名选手的分数作为面试分数线。4.*筛选选手*:遍历排序后的列表,选出所有成绩不低于分数线的选手。5.*输出结果*:输出分数线、实际人数及符合条件选手的信息。#代码实现pythonn,m=map(int,input().split()candidates=tuple(map(int,input().split()for _ in range(n)#按成绩降序、报名号升序排序candidates.sort(key=lambda x:(-x1,x0)#计算面试分数线的位置k=int(m*1.5)#确定分数线的分数line_score=c
7、andidatesk-11 if k=line_score#输出结果print(line_score,len(selected)for person in selected:print(person0,person1)#代码解释1.*输入处理*:使用 input()读取数据,并将选手信息存储在列表中。2.*排序*:使用 sort 方法按成绩降序和报名号升序排序。3.*确定分数线*:计算 k 的值,并取排序后第 k 名选手的成绩作为分数线。4.*筛选选手*:通过列表推导式筛选出所有成绩不低于分数线的选手。5.*输出结果*:按格式输出分数线、实际人数及选手信息,确保结果符合题目要求。嗯,我现在需要
8、解决这个问题。首先,我得仔细理解题目要求。题目是说,根据计划录取人数m的150%来划定面试分数线。具体来说,就是先计算出m乘以1.5,然后向下取整得到一个整数,这个整数就是排名在这个位置的选手的成绩作为分数线。然后所有成绩不低于这个分数线的选手都能进入面试。之后,要按照成绩从高到低排序,成绩相同的话按报名号从小到大输出。那输入部分是n个选手的信息,每个有报名号和分数。输出的第一行是分数线和实际人数,接下来是符合条件的所有选手的信息,按要求排序。首先,我需要处理输入。比如,读取n和m,然后读取n行的报名号和分数。然后,我需要对这些数据进行排序。排序的规则是首先按分数从高到低排,如果分数相同的话,
9、按报名号从小到大排。这一点很重要,因为后面的分数线确定和筛选都依赖于这个排序后的顺序。接下来,确定分数线。这里有个关键点,计算的是m*150%后向下取整的值,也就是取整数部分。例如,如果m是3,那么3*1.5=4.5,向下取整是4,所以排名第4的选手的成绩就是分数线。这时候,需要注意数组的索引是从0开始还是从1开始。比如,在Python中,如果列表排序后,第4名对应的索引是3吗?比如,假设排序后的列表是按降序排列,那么第一个元素是第一名,第二个是第二名,依次类推。所以当计算得到的是第k名的话(比如k=4),那么在列表中的索引应该是k-1,也就是3。比如,当k=4时,列表中索引为3的元素就是分数
10、线对应的分数。然后,找到这个分数线之后,所有分数大于等于这个分数线的选手都会被选中。这时候,可能会有更多的人进入面试,比如如果有多个人的分数和分数线相同,那么这些人都要包括进去。比如,如果分数线是85分,那么所有分数=85的选手都算进去,不管原来的排名如何。这时候,实际人数可能比k大,因为可能有多个同分的。举个例子,比如假设排序后的列表前5名分数分别是100,95,95,95,90。假设k是3,那么第3名是95分。这时候分数线是95分,所有分数=95的人都是前三名加上后面的两个95分,所以总共有3+2=5人?或者可能题目中的“排名第k名”指的是刚好在k位置的分数,而所有同分的都会被算进去。比如
11、,比如当k是4的时候,第4名的分数是85,那么所有分数=85的都进入面试。这时候,即使前四名中有多个同分的,比如第三名也是85,那么这些都会被包含进去。那这一步的关键是,确定分数线后,遍历所有选手,选出分数=分数线的。然后,这些人的数量就是实际人数。那步骤大概是这样的:1.输入n和m。2.输入n个选手的报名号和分数,存入列表。3.对列表进行排序,首先按分数降序,然后按报名号升序。4.计算k=floor(m*1.5)。比如,m=3时,k=4。这时候取排序后的第k名的分数作为分数线。注意,这里的第k名是指第k个元素吗?比如,当排序后的列表是降序排列的话,第1名是第一个元素,第k名是索引k-1处的元
12、素。比如,当k是4的时候,索引是3的元素。然后,分数线是这个元素的分数。5.遍历整个排序后的列表,找到所有分数=分数线的元素,组成进入面试的名单。6.输出分数线,以及实际人数。7.输出所有进入面试的人的信息,按同样的排序方式(分数降序,同分按报名号升序)。那现在需要注意几个问题:-如何计算k?比如,m*1.5是否需要转成整数?题目中说明是向下取整。所以用int(m*1.5)或者用math.floor。但例如,当m=3时,3*1.5=4.5,向下取整是4。这时候,k=4,所以取第4名的分数。这时候,排序后的列表中第4名的索引是3。这样处理是正确的吗?比如,排序后的列表是按分数降序排列的,所以第1
13、名是最高分,第k名是第k个元素。这时候,当k=4时,索引是3。然后,分数线的值是排序后的第k-11。例如,k=4,索引3的分数。然后,所有分数大于等于这个值的选手都被选中。那可能存在这样的情况,比如当k的分数后面还有相同分数的人吗?比如,假设k=4,分数是85,而第五名的分数也是85,那么他们也会被包含进来。因为分数线是85,只要分数=85的都算。所以这个时候,实际人数可能比k要多。比如,当k=4,第4名的分数是85,但后面还有第5、6名的分数也是85,那么他们都会被算入,这时候总人数是6。举个例子:假设排序后的分数是:90,90,90,85,85,85。k=4(即m=3,所以k=4.5向下取
14、整是4),那么分数线是85。所有分数=85的有6人,所以输出人数是6。这说明,在确定分数线后,必须遍历整个排序后的列表,找出所有分数=分数线的选手,而不仅仅是前k名。因为有可能后面的选手分数等于分数线。所以这一步的处理需要遍历整个列表,而不仅仅是前k名。比如,假设排序后的列表中有多个分数等于分数线的选手,那么他们都应该被包括进去。现在,如何实现这些步骤?具体来说,在代码中:读取n和m。然后读取n个k和s,存储为一个列表。然后,排序这个列表。排序的key是分数降序,如果分数相同的话,按报名号升序。在Python中,可以用sorted函数,或者list的sort方法,使用自定义的key。比如,对于
15、每个元素(k,s),排序的key应该为(-s,k)。因为当s降序的话,可以取负数作为排序依据,这样升序排列等同于s的降序。同时,当s相同的话,k按升序。例如:sorted_list=sorted(candidates,key=lambda x:(-x1,x0)这样排序后的列表是按照分数从高到低,同分按报名号从小到大排列。然后,计算k的值:k=int(m*1.5)。或者,用math.floor(m*1.5)。但因为题目中给出的输入保证m*150%向下取整后=分数线的元素。这些元素就是进入面试的选手。这时候,实际人数是这些元素的数量。所以,最后输出的两个数是分数线(sorted_listk-11)
16、和实际人数(len(interview_list)。然后输出这些人的报名号和成绩,顺序还是按照之前的排序方式,也就是成绩从高到低,同分按报名号升序。那现在,如何处理一些特殊情况?例如,当k=0?这应该不可能,因为题目中说输入数据保证m*150%向下取整=3,所以k至少是3*1.5=4.5,向下取整4,所以k=4。那可能当m=0的时候,但题目中的输入条件m=3,所以不用担心。那现在,代码的大致结构是:n,m=map(int,input().split()candidates=for _ in range(n):k,s=map(int,input().split()candidates.appen
17、d(k,s)#排序candidates.sort(key=lambda x:(-x1,x0)#确定分数线k=int(m*1.5)#因为题目中说向下取整,所以用int转换即可。比如4.5转成4。#如果m*1.5是整数的话,比如m=4,则4*1.5=6,k=6,没有问题。#那么,分数线的位置是k_th名,即第k名。在排序后的列表中,索引是k-1。#但是,当k等于0时会有问题?但题目中的输入条件保证k=3,所以k至少是4.5向下取整4,所以k=4。line_score=candidatesk-11#找出所有s=line_score的人。注意,这里的判断是=,因为题目中说“不低于”。interview
18、_list=candidate for candidate in candidates if candidate1=line_score#输出结果print(line_score,len(interview_list)for person in interview_list:print(person0,person1)但是,这样是否正确?例如,当多个人的分数等于line_score的时候,都会被包含进来?是的。比如,当k=4,分数是85,而排序后的列表中,第5名也是85,那么会被包含进来。那现在测试一个例子。例如,样例输入:6 31001 951002 901003 851004 901005
19、 801006 75排序后的列表应该是按分数降序,同分按报名号升序。排序后的顺序:1001 95(分数最高)然后是分数90的两个,报名号较小的优先。所以1002和1004,因为1002的报名号是1002,1004是1004,所以1002在前,1004在后?或者原题中的例子中,可能输入顺序是:假设输入的报名号顺序是1002和1004。比如,假设输入顺序是:1001 951002 901003 851004 90 分数是90,报名号10041002,所以在排序后的列表中,1002会在前面,然后是1004?是的。所以排序后的顺序应该是:1001 951002 901004 90 因为1004的报名号
20、比1002大,所以在分数相同的情况下,按报名号升序,所以1002先,1004后?或者,可能我搞反了。比如,按升序排列的话,报名号小的在前。是的。比如,当两个成绩相同,按报名号从小到大,所以在排序时,key是(-s,k),其中k是报名号。所以当两个成绩相同时,报名号较小的会被排在前面。比如,假设有两个选手,报名号是1004和1002,分数都是90。那么在排序时,1002的报名号较小,所以会排在1004前面。所以排序后的顺序是1002,1004。所以,假设输入的样例数据中:第二行到第n+1行包括:1001 95 第一位1002 90 第二位1003 85 第三位1004 90 第四位输入1005
21、80 第五位1006 75 第六位那么排序后的列表是:(1001,95),(1002,90),(1004,90),(1003,85),(1005,80),(1006,75)因为1004的报名号比1002大,所以当分数相同时,1002排在前面,1004排在后面?或者原问题中的排序是否正确?比如,当两个分数相同,那么按报名号从小到大排列。所以在排序时,key函数应该是先按分数降序,再按报名号升序。所以在key=lambda x:(-x1,x0)的情况下,两个分数相同的元素会按照x0(报名号)升序排列。所以对于报名号1002和1004来说,1002的报名号较小,所以排在前面。所以,排序后的顺序是正确
22、的。此时,k=m*1.5 3*1.5=4.5 向下取整得到4。所以取第4名的分数。排序后的列表中的第4名是索引3的元素,即(1003,85)。所以分数线是85分。然后,所有分数=85的选手会被选中。即前四个元素中的分数:第一位95,第二位90,第三位90,第四位85 这四个人的分数都是=85吗?是的。所以这四个会被选中。所以输出的人数是4,分数线是85。然后输出这四个人的信息,按顺序。所以,输出样例的结果是:85 41001 951002 901004 901003 85这与题中的示例是符合的。那现在,代码是否正确?是的。那是否还有其他测试情况需要考虑?比如,当k的分数后面还有多个同分的选手?
23、例如,假设n=5,m=2。那k=2*1.5=3。所以取第3名的分数。假设排序后的分数是100,90,90,90,80。那么分数线是90。所有分数=90的有3人?或者前三个都是90吗?或者排序后的列表中,第三名是索引2的元素,分数是90。所以所有分数=90的包括前三名?或者可能包括更多?比如,假设排序后的列表是:(100,100),(90,90),(90,90),(90,90),(80,80)此时,k=3(因为m=2,k=3),第3名的分数是90。所有分数=90的有前三个?或者所有三个分数为90的都会被选中?是的。所以实际人数是3吗?例如,排序后的列表中,索引0是100,分数100;索引1是90
24、;索引2是90;索引3是90;索引4是80。此时,k=3,取索引2的分数90。那么所有分数=90的包括索引0、1、2、3?因为他们的分数都是=90。所以实际人数是4?哦,这里出现了一个问题。原问题中,当分数线是第k名的分数,那么所有分数=这个分数的人都会被选中。例如,如果第k名的分数是90,那么其他分数等于90的选手,无论是否在k名之后,都会被选中。比如,上述例子中,k=3,那么第3名是索引2的元素,分数90。而索引3的元素分数也是90,所以也会被选中。所以总共有4人进入面试。这说明,在确定分数线后,必须遍历整个排序后的列表,而不仅仅是前k名,找出所有分数=分数线的选手。这可能包括比k更多的人
25、。所以,代码中的处理是正确的,因为它遍历整个列表,判断每个元素的分数是否=分数线。这时候,实际人数可能大于等于k。比如,在之前的例子中,当k=3,分数线是90,而后续的选手分数也是90,那么都会被包含进来。这样总人数可能超过k。所以,这样的处理是正确的。那现在,代码是正确的。那是否有其他边界情况需要考虑?比如,当m=5,1.5*m=7.5,向下取整为7。这时候,k=7。如果n=7,那么第7名的分数是最后一个元素。这时候,所有分数=该分数的选手都是整个列表中的元素,因为如果最后一个元素的分数是某个值,那么所有元素的分数都=该值吗?比如,假设排序后的所有元素的分数都相同。例如,所有选手的分数都是1
26、00。那么无论k是多少,所有选手都会被选中。这时候,输出的人数是n。例如,n=5000,m=3,k=4.54。分数线是第4名的分数,即100。所有5000人的分数都是100,所以实际人数是5000。所以,代码在这种情况下也能正确处理。综上,代码的逻辑是正确的。那现在需要编写这个代码。知识蒸馏:面向过程编程=数据结构+算法个性化学习从从“知识知识+能力能力”到到“能力能力+认知认知”认知认知能力能力知识知识内化的过程学习的本质是为了解决问题。老子曰:有道无术,术尚可求也;有术无道,止于术道道-本质规律本质规律法法-得到之法得到之法术术-落地之术落地之术器器-手持利刃手持利刃重知识转为重问题的认知模型Deepseek翻转课堂、项目式PBL、案例复现教学之 问题与挑战教学之术教学之道以“教学之道”御“教学之术”、突破内卷、迎接AI挑战97让学生带走行走人间的“真功夫”