中国大学生计算机设计大赛》备赛心得\color{#FF1493}{《中国大学生计算机设计大赛》备赛心得}《中国大学生计算机设计大赛》备赛心得

仰望天空,妳我亦是行人.✨

个人主页——微风撞见云的博客

《数据结构与算法》专栏的文章图文并茂生动形象简单易学!欢迎大家来踩踩~

《Java学习笔记》专栏的文章是本人在Java学习中总结的一些知识点~

《每天一点小知识》专栏的文章可以丰富你的知识库,滴水成河~

《Redis》专栏的文章是在学习Redis时,整理的笔记与记录的思考~

《RabbitMQ》专栏的文章是在学习尚硅谷课程时整理的笔记,方便复习巩固~

希望本文能够给读者带来一定的帮助~文章粗浅,敬请批评指正!

文章目录

《中国大学生计算机设计大赛》应用与开发组 “国二省一” 备赛心得 前言

我是一名普本计科大三的学生。我的技术一般,算法一般,但最终获得了设计大赛的国二。希望我的这段经历能够对你有帮助。

我是从去年暑假开始准备《中国大学生计算机设计大赛》的,在我导师的指导下开始调研选题,今年三月校赛,四月省赛,七月国赛,期间我还参加了字节跳动青训营,并且备赛了蓝桥杯,所以你不用担心参加这个比赛就没时间干别的事儿了。在整个过程中我有许多收获和感言,我想把这些经验分享给大家,如果你是正处大一大二大三,强烈建议你看完这篇博客,这或许能对你在大学生涯的规划起到较大帮助,至少能够在权衡学习、实习与参赛之间给到一定的参考意见。

如果你想大二就参加公司实习,并且没有合适的队友,自身技术也不是特别精通的话,那我还是建议你不用准备这个比赛了,因为它可能会花费你特别多的时间,性价比不高。 但如果你是有好队友,并且能够应用基本的框架来开发项目,前后端都比较熟悉,参赛欲强烈;这样情况的话,我就建议你可以参赛,因为你们团队大概率开发效率较高,所花费的时间就会减少,并且最终的质量也会较高,同时,你还可以边开发边学习,把所学的技术栈慢慢加入进项目中 。

需要说明的一点是:我仅仅是一个国二,不论是项目深度还是算法应用,离国一都还有一定距离, 如果大家想冲刺国一的话,一般还需要考虑以下一些点 :前沿技术、紧跟时事、创新性、能够为亟待解决的实际问题做出帮助、项目受众广、UI界面精美等。

正片开始 ↓

背景介绍

《中国大学生计算机设计大赛》(Chinese Collegiate Computing Competition,简称“大赛”或4C)是我国高校面向本科生最早的赛事之一,自2008年开赛至2019年,一直由教育部高校与计算机相关教指委等或独立或联合主办。大赛的目的是以赛促学、以赛促教、以赛促创,为国家培养德智体美劳全面发展的创新型、复合型、应用型人才服务。

大赛目前是全国普通高校大学生竞赛排行榜榜单内赛事,每年举办一次。大赛以三级竞赛形式开展,校级赛——省级赛——国家级赛(简称“国赛”),国赛只接受省级赛(含省赛和跨省区域赛)上推的参赛作品。校级赛、省级赛可自行、独立组织,国赛接受上推作品时间为当年5月份,国赛决赛时间在当年7月中旬至8月下旬。大赛国赛的参赛对象是中国高校当年在籍(含当年毕业)的本科生(含港、澳、台学生及留学生),参赛作品的指导教师是在高校担任本科生教学任务的教师。

备赛准备

备赛之初,我们组建了一个由五名热爱计算机应用开发的学生组成的团队 (因为我们整好有一门软件工程的课要做项目需要五个人,所以先是五个人一组的,但是比赛要求最多三人一组,刚开始不知道这个规定) 。我和导师讨论和研究参赛项目方向 (刚开始我是抗拒的,想随便弄一个糊弄一下,但是行不通) 导师告诉我:设计大赛的项目一定是要解决生活中或社会上某些问题的,并且要结合算法体现项目的智能化。 最终我选择了一个面向 “乡村振兴” 的应用,导师去网上看了对应的内容,肯定了我的想法。(我一共是选了两三个题目,有个安徽农业的感觉不错,但我是四川的,所以导师否定了那个选题,基本上就是因为地区不合适,要不然就是不太符合时事或没有特别大的价值。) 在备赛阶段,我和组员会经常开会,讨论功能与实现,制定详细的备赛计划、任务分工文档、思维导图等,以确保高效的合作与进度。

文档记录每次开会的内容,发在群里方便回顾,一般是记录现在的进度,下一步要做什么,目前有什么问题,怎么解决,任务分工等等。

思维导图主要是确定项目功能的,方便后续对照着完成相应内容。

设计大赛的项目和简历上的项目性质一样吗?

亲,我一定要提前告诉你,设计大赛的项目和你写在见简历上的项目通常情况下来说,还有一定区别的!

简历上的项目主要是看你技术栈的运用,能不能用真正使用这些技术栈,用的有多深。

而设计大赛的项目通常来说**没有特别看重你技术的深度,能解决问题即可。**就比如我的Redis只用于存储了一点热点数据,加了个超时时间啥的,不会去考虑分布式锁、持久化配置等等…

项目选择与设计

根据以前参数作品的名称,我们选择了 《基于多重匹配算法的阿坝乡村旅游智能服务平台》 作为我们的参赛题目。

选题理由: 项目设计

我们是一个单体项目,开发之初技术不精,没有做前后端分离的。logo就是去网上找的冷门但相关的,也可以自己制作。PPT是网上找的模板。前端也有很多“开源”(你懂的)的模板,搜一搜,都能在网上找到。

相关题目还有 ↓ (具体的作品名称会在官网公布,我这里是当时颁奖的时候随便截的几个国二题目)

答辩PPT 作品简介

技术栈 前端技术栈

我们前端很菜,只会jQuery + ajax 的方式,那时候连vue都不会,框架在学校只学了一点layui,数据可视化都是我在国赛之前学习了echarts,做的数据可视化界面。总体来说,我们前端开发效率较低,花了很多时间… (我讨厌前端!)

后端技术栈

这里也比较惭愧,现在看来就是很正常的框架运用,后来学了mybatis-plus,后悔没早点用起来,想用的时候,后端大多数的接口和功能已经写好了。当时觉得写了Redis和OSS啥的很牛B…哈哈哈 我们是用的git+Gitee管理的项目。强烈建议不会使用git的同学都学着用用,多多地解决合并冲突等问题

创新点

由于我们是一个旅游平台,我所想到能使用算法的地方不多,结合项目功能,我决定在行程匹配和地区推荐分别使用字符匹配算法和推荐算法,然后根据实际业务对算法进行针对性的改进和优化。

(很多大佬的项目都是用的模拟退火、遗传算法啥的,很高级,我省赛也用了模拟退火,那个时候是为了用而用,如果用在我们这里,模拟退火优化的KMP算法在我们的那段业务中,实际上还没有普通KMP高效,后面就改为了Sunday + 多模拟匹配的KMP。然后推荐算法是采用的基于物品的协同过滤算法。)

功能预览

思维导图 ↓

部分作品效果图 ↓

如何准备答辩? 准备说辞:

比赛是有时间限制的,10分钟的时间 + 紧张的环境,没有一套提前准备好的说辞,实际上是不太能稳定发挥的。提前准备好说辞,尽量讲好普通话,反复熟读,确保你不会卡壳。比赛的时候手机放电脑上,看着读,老师不知道的。

这里我把我的说辞附上,仅供参考。没有提及的部分就照着PPT读。

尊敬的各位评委老师好!我们本次参赛作品的编号为2023060549,题目是《基于多重匹配算法的阿坝乡村旅游智能服务平台》。

我将从以下四个方面来介绍我们的作品。

技术栈

前端部分使用Ajax进行异步通信,使用echarts进行数据可视化,其他的框架用于页面开发。

项目演示

我们先通过一张思维导图来简述项目的功能。其中特色模块有:热门地区、旅游引导、特色文化、旅客住宿、客服咨询等。下面进行项目演示。我们先登录一个游客的账号,从热点模块说起:

旅游引导模块:该模块使用Sunday算法、多模式匹配的KMP算法,当用户选定好出行路线,确认想要公开自己的出行信息并加入拼团后,系统将会调用上述算法为用户推荐出与其行程匹配的同程群聊,用户可以加入群聊与其他同程的游客互动,丰富出行的体验感。另外,在同程群聊模块可以创建群聊,也查看所有的群聊和属于自己的群聊。下面进行功能演示。

特色文化模块:该模块有历史文化、旅游足迹、藏羌文化、非遗文化、文化视频等子模块。“历史文化模块”包含阿坝地区的基本介绍、自然资源、历史追溯。“旅游足迹模块”展示了一些游客游玩的照片。“藏羌文化模块”记录了阿坝地区的特色藏羌文化,点击左侧按钮可以浏览这些特色文化,点击文字即可进入详情页面。“文化视频模块”包含一些文化视频,点击文字即可播放。

住宿驿站模块:该模块展示了一些热门的住宿,我们可以进行住宿搜索,输入“四姑娘”。点击查看。可以看到,在右边为我们展示出了对应的住宿,我们可以点击查看详细情况,(点击),其中包含该住宿的一些基本信息、民宿信息以及相关问题,如果用户对该住宿感兴趣,还可以点击收藏,之后会在个人页面展示出阿里;在页面右边也会推荐出一些热门的住宿。

热门地区模块:该模块使用Redis将热点数据进行缓存,系统会结合用户在话题模块的行为数据,通过基于物品的协同过滤推荐算法,在首页展现出更加符合用户偏好的景区。在“发现景区部分”可以通过搜索关键词,从而快速展现出对应的景区。

客服机器人模块:点击机器人,机器人会根据最近的提问情况展现出热点问题,我们回复问题编号,机器人就能够回答出相关问题。如果有它答不上来的问题,我们可以进入留言系统,给管理员留言我们的疑问。同时,机器人设置了敏感词过滤,当我们输入敏感词,系统会进行过滤。


本文由转载于互联网,如有侵权请联系删除!