项目挑战: 学校微课平台推荐功能设计-教学设计(表格式)

资源下载
  1. 二一教育资源

项目挑战: 学校微课平台推荐功能设计-教学设计(表格式)

资源简介

教学设计
课程基本信息
课题 第二章数组与链表 项目挑战:学校微课平台推荐功能设计
教学目标
1.理解数组和链表的区别 2. 掌握在实际项目中选择合适的数据结构 3. 掌握在数组和链表在程序中的使用
教学内容
教学重点: 1. 设计不同的推荐要求并能选用对应的数据结构(数组、链表) 2. 掌握在程序中根据实际情况,为数组和链表设计合理的数据内容 教学难点: 1. 设计有创意且实用的推荐规则 2. 根据推荐算法设计合理的数据内容
教学过程
【任务导入】 学校新建了一个微课平台,用来展示校内教师和学生自制的微课。为了更好地服务师生,学校想增加微课平台的推荐功能,即当某个用户点播了某个微课后,平台会依据一定的规则推荐相关的微课。假如你作为平台的设计者,现在需要你来开发实现这个微课平台的推荐功能。 【建模讨论】 当用户点播操作时,按照一定的推荐规则有序推荐相关的微课视频,微课点播数据涉及用户,微课名称,播放时间等。 问题1:有按照用户类型推荐,也可以按照微课类型推荐,请问还有其他推荐规则吗 问题2:所推荐的微课用数组存放还是用链表存放?两者各有什么不同? 【设计数据的内容结构】 利用关键字查询出记录,并用字典存储关键的数据,用数组进行提炼和排序 用同样的方法也用链表进行类似的设计 【编写程序并测试】 数组法: import pandas as pd df=pd.read_csv("wk_click.csv") def printdic(dic): max1=0 for key in dic: if len(key)>max1: max1=len(key) for key in dic: print(key.rjust(max1, ' '),":",dic[key]) n=len(lst) dic={} types=input("输入年级") for i in range(n): if lst[i][1]==types: if lst[i][2] not in dic: dic[lst[i][2]]=1 else: dic[lst[i][2]]+=1 printdic(dic) menu=[[0,0]]*4 for i in range(4): for key,values in dic.items(): if dic[key]>menu[i][1] and [key,values] not in menu: menu[i]=[key,values] print(menu) 输出展示 略 menu=[] head=0;p=1 n=len(dic) cnt=0 #构建无序链表 for key,values in dic.items(): menu.append([key,values,p]) p+=1 menu[-1][2]=-1 print(dic) def rclnk(lst,head,n): i=1 while lst[head][2]!=-1 and ilst[head][1]: lst[cur][2]=head head=cur else: while v<=lst[p][1] and p!=-1: q=p p=lst[p][2] lst[q][2]=cur lst[cur][2]=p if p==-1: pre=cur cur=nt return head head=linksort(menu) rclnk(menu,head,4) 输出展示 略
【评价】

展开更多......

收起↑

资源预览