实用项目:选择项目
现在是时候开始思考你要做什么样的项目了。这是一个重要的决定,因为它将决定这门课程的其余部分。
我过去评审过的项目包括
- 基于数据库的板球运动员管理系统,跟踪比赛和球员得分
- 日托中心儿童数据库,处理父母的账单
- 计算机房预订数据库,允许教师预订不同日期的房间,并以图形方式查看其他教师的时间表
- 硬件商店的库存控制数据库,处理重新订购和销售
- 基于网络的数学复习网站,允许创建随机试卷并自动评分
- A-Level 数学复习迷宫游戏
- 法语复习横版冒险游戏
- 物理学抛射物建模工具
- 贪吃蛇游戏,要求你吃掉正确答案来回答数学问题
- 直升机飞行游戏,要求你回答经济学问题以获得额外燃料
- 围绕俄罗斯方块克隆构建的计算机复习程序
- 一个国际象棋游戏,它强制执行所有游戏规则,并在出现将军时识别出来
- 基于手机的数学复习游戏
你可能已经注意到,关于数据库和数据操作的讨论很多。解决这个项目的一个简单方法是构建一个数据处理系统,例如库存控制系统或复习游戏,在后端使用数据库来存储数据。这是一种强力的项目,也是获得高分的途径。但是,你不必做这样的事情。如果你的代码足够复杂,你就不必存储任何数据,而关于数据库部分的写作,你可以跳过。你可能不会被鼓励制作游戏,但如果它是一款带有数据库或复习系统的游戏,或者展示了 A-Level 标准数学的巧妙模拟,那么你需要与你的计算机老师谈谈。
你制作的每个系统都必须涉及数据处理。这意味着获取数据并添加、更新、删除、解释和显示它。使用数据库非常容易,但你必须超越 Access 提供的添加、编辑、删除等默认操作。考虑使用复杂的查询和展示结果的奇特方式。它也可以是一个 XML 文件,存储座位安排或学生记录,编辑/删除/添加复习游戏中的问题,并记录不同用户的分数。无论你做什么,数据处理都必须是核心。
使用某种形式的 SQL(例如 MySQL)或类似的语言(例如 MariaDB)比 Access 更好,因为它可以轻松地与许多编程语言集成。此外,SQL 属于 COMP3 课程,因此你无论如何都需要基本的 SQL 知识。
为了获得最高分,系统必须复杂,但这意味着什么?你需要做一些事情,还需要做更多的事情才能有机会获得最高分。AQA 的评分标准说,要获得复杂度的最高级别,你需要至少满足以下条件之一:
- 非平凡算法,例如图遍历或递归。
- 使用所选编程语言的复杂功能,例如运行时创建的对象、复杂的数据结构、用户定义的类
- 基于时间的模拟
- 使用网络协议(例如 TCP/IP)
- 为移动设备开发
- 问题非计算方面的复杂性(例如使用复杂的数学,如果它是你 A-Level 数学中的内容,它就足够复杂了)
- 图像处理或模式识别(例如使用正则表达式注意:正则表达式属于 COMP3 课程,因此你无论如何都会学习它)。
如果你可以使用以上条件中的多个,你将确保自己获得这些分数。此外,更多条件将给你更多内容在后面的章节中进行阐述。但是,不要过于雄心勃勃,因为你不想把所有时间都花在编码上,或者无法完成程序。
如果你使用的是数据库,可能很难判断你的项目是否会很复杂。AQA 有一个关于这方面的文档,但简而言之,你的数据库需要完全规范化,大量数据将为你获得更多分数。如果你可以,尝试实现上述条件之一,你将获得分数。
警告! 永远不要只在 Access 中创建东西,你需要展示真正的编码。即使 Access 是一个更简单的解决方案,这也不会让你获得复杂项目的分数。始终与你的老师确认复杂度 |
你可能已经有一些想法在脑海中浮现,但现在你需要找到一个用户。用户不一定能找到你,所以如果你是一个当地运动俱乐部、教堂、戏剧社团等的成员,尝试思考数据处理系统如何帮助他们。例如,你可以跟踪合唱团的成员,他们参加了哪些课程,以及他们是否支付了会费。如果你认识一些经营小企业的,你可以编写一个系统来跟踪员工值班的时间、库存数量以及销售数量。学校/学院中是否有可以改进的地方?问问你的老师,也许他们仍然需要手动写报告,也许他们想要一个学科的复习工具,也许他们想要一个基于网络的系统来预订房间,也许他们想要一个可以模拟抛射运动以演示课堂上某些内容的程序。一旦你找到了你的用户,就牢牢抓住他们,他们将是你完成这个项目各个部分的关键。
如果你在寻找用户方面遇到困难,尝试问问学校的一些老师。如果你想做模拟,你的数学或物理老师可能会有帮助。
以下项目听起来足够复杂吗?如果不是,你将如何使它们变得复杂?请记住与你的老师确认复杂度。
一个商店销售数据库,允许人们更新库存和添加新的库存项目。<点击> | ||
可能不够复杂!如果它建立在一个使用向导创建的 Access 数据库上,并使用向导来创建所有表单和运行更新查询,那么它肯定不够复杂。你可能可以通过使用 mySQL 和 Web 前端来构建它,但你仍然应该考虑包含一些更复杂的功能,例如显示销售图表和统计数据。 |
一个在线复习网站,允许学生登录并参加随机生成的数学测试<点击> | ||
这听起来相当复杂,如果你计划使用 ASPX 或 PHP 来编写整个脚本,而不是使用 Wordpress 之类的软件包。你可能想要添加一些不错的功能,例如消息系统和邮件系统。你可能还想让程序创建随机问题正在被提出的动态视觉显示,例如创建正在测试的尺寸的三角形。 |
一个 2D F1 赛车游戏<点击> | ||
这听起来非常复杂,特别是如果你考虑碰撞检测、AI 等。但是,你的用户是谁?你需要一个现实生活中的用户,你可以请你的物理老师提出一个模拟场景吗? |
一个四连棋游戏<点击> | ||
考虑到图形表示和 AI 元素,这听起来非常复杂,但同样,你的用户是谁?你可以为小学制作这个游戏吗? |
3D 射击游戏<点击> | ||
太复杂了,除非你想在 Blender 或 Unreal Engine 之类的东西上编写一些代码。 |
一个照片库数据库<点击> | ||
以目前的形式不够复杂。你当然可以添加一些功能,例如将其放在网上,并允许对照片进行标签。确保你与你的老师确认。 |
一旦你有了用户和问题,你将如何解决它?你不是一家价值数十亿美元的 IT 公司,而且你可能只有一年的编程经验。你必须对如何解决这个问题保持现实态度。以下是一些你需要开始思考的问题,写下你的答案
- 你已经知道哪些语言?你需要学习哪些语言和技能?
- 它将是基于 Web、手机还是桌面应用程序的?
- 你将使用关系数据库还是平面文件数据结构,或者根本不使用?
- 你知道如何规范化数据表或从文本/XML 文件中读取数据吗?
- 你是否有足够的时间来完成你想要做的事情?
- 它是否足够复杂,让你获得最高分?
把所有这些内容都写下来,这对你将来的分析很有用!
问题 | 答案 |
---|---|
你的想法是什么? | |
你的想法足够复杂吗? | |
你将如何实现复杂性? | |
你的最终用户是谁? | |
你会哪些编程语言? | |
你还有多少时间? | |
你需要使用数据库或其他数据存储吗? | |
基于 web 的 / 手机应用程序 / 桌面应用程序? | |
你需要学习什么? | |
哪些网站和书籍可以帮助你? |