1.建立微信群时,查加群情况及规范群昵称。
在2月初接通知要准备上网课,为了联系学生建立了课程微信群。开始学生并没有全部入群,且多数同学群昵称也不规范,编写了下列python代码,导出了群成员名单,并用Excel和选课学生名单对比,列出还差谁,以及未改群成员名为”学号+姓名”规范格式的同学。很快完整地建立课程群,在初期测试和平时交流中起了很好的作业,遇到的问题也能及时沟通。
import itchat
itchat.auto_login()
xiandairoom=itchat.search_chatrooms(name="线性代数18053132")
groupMember=itchat.update_chatroom(xiandairoom[0]['UserName'], detailedMember=True)
for c in groupMember['MemberList']:
print(c['DisplayName'])
2.分割教材PDF文件。
因教材PDF文件太大,在微信群中超过文件大小限制,也不方便网络传输和下载,并且书后有习题答案,所以编写以下代码对PDF教材文件按章节进行了分割。先在微信群中发放给同学前几章的文件。
import PyPDF2
reader=PyPDF2.PdfFileReader(open("线性代数.pdf","rb"))333
output=PyPDF2.PdfFileWriter()
for i in range(67,92):
output.addPage(reader.getPage(i))
outputStream=open("线性代数第3章.pdf","wb")
output.write(outputStream)
outputStream.close()
3.建立查看学生照片的小网站
“为了增强上网课仪式感”,方便记住学生,生成了有学生名单和照片的小网站。过程简单,但描述有点复杂,就是利用学生名单数据库关联以学号为文件名的照片,配置IIS,以ASP生成html文件。也可不建网站,用名单生成html文件等其它简便方式达到效果
4.为了防止学生复制作业上交,给每位同学出不一样的题。
如本课程中有“计算行列式”,让学生计算以自己的学号按规则生成的行列式,或随机出一些题目。教师用C语言或EXCEL生成不同学生的答案,来核对批改。如以下代码为读名单,并生成答案的主要程序段:
int readStudent_outAnswer()
{
int i,n,j;
double xh[100];
double *A=new double [2*2];
double *B=new double [3*3];
char xm[100][10];
char c_xh[20];
FILE *fp,*fpo;
if((fp=fopen("BookMd18053.txt","r"))==NULL)
{printf("cannot open file\n");
exit(0) ;}
i=0;
while(!feof(fp))
{ fscanf(fp,"%lf,%s\n",&xh[i],&xm[i]);//读学号,姓名
i++;
}
n=i;
printf("n:%d\n",n);
if((fpo=fopen("Book_out_homework2.txt","w"))==NULL)
{printf("cannot open file\n");
exit(0) ;}
for(i=0;i<88;i++)
{
sprintf(c_xh,"%lf",xh[i]);
for(j=0;j<8;j++)
{B[j]=(int)(c_xh[j]-48);
}
B[8]=-2;
A[0]=B[4]; A[1]=B[5]; A[2]=B[6]; A[3]=B[7] ;
c_xh[8]='\0';
printf("%s,\t|A|=%.2lf,\t|B|=%.2lf,\t%s\n",c_xh,det(A,2),det(B,3),xm[i]);
// fprintf(fpo,"%s,\t|A|=%.2lf,\t|B|=%.2lf,\t%s\n",c_xh,det(A,2),det(B,3),xm[i]);
}
fclose(fp);fclose(fpo);
return 1;
}
以上是简单总结交流。
上网课一周,体会到“没黑板真是不行”,这点常识居然是最深切的体会。