软件工程第一次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024/ |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243 |
-------------------------------------------------------- | ------ |
这个作业的目标 | 1.完成个人logo图生文任务 2.完成Github个人主页搭建 3.完成自我评价与学习指南生成 |
学号 | 102201327 |
1.个人logo文生图任务
这里我使用的是ChatGPT4.0文生图工具,生成过程如下
设计理念
- 因为我从小就喜欢打游戏,学习计算机也是小时候的兴趣所驱使。
- 简约和线条能赋予图案流畅和动感,同时易于识别。
- 小孩具有想象力与活力的特征,希望将来的我还能够保持创造力与好奇心。
使用感受
- AIGC能够通简短的描述就能生成图像,极大极大减少了工作时间和精力。
- 能够根据个人的需求,生成符合特定风格主题的个性化作品。
- 操作门槛低,不需要专业的技能和工具,就可以轻松生成质量较高的作品。
2.Github个人主页搭建
在Github上进行了个人主页的搭建,如下图
3.自我评估与学习指南生成
自我评估
目前具备的专业知识和能力
- 有一定的C与C++语法基础
- 初步学习了数据结构
- 有一定的线性代数与离散数学基础
有兴趣的技术方向
- 对软件项目的开发,特别是游戏的开发有着深厚的兴趣
- 多模态大模型
- 网页爬虫
缺少的能力
- C与C++没有项目开发的经验,只会写简单的算法题
- 学习深度学习时不能熟练使用python以及需要使用的数据包,使得在自己重新复现代码的时候寸步难行
- 自学能力较弱,常常能在一个简单的问题上卡很久,导致学习时间拉长,学习精力消耗过快
之前的代码量
- 近几个月基本为0,现在上手写代码不能离开百度编程
完成课程后希望达到的代码量
- 希望能够打到一万行
希望学到的知识
- 能够写出自己的游戏软件,为未来提供项目经验
- 学习到多人合作制作软件的流程以及经验,学习更高效率的软件制作方法
- 学习软件开发过程中对需求改变的调整方法
- 了解软件测试的各种方法以及面对测试失败后的策略
使用ChatGPT-4制作学习指南
1. 基础夯实阶段
C/C++项目开发
- 目标:通过实际项目应用C/C++,解决你缺乏项目开发经验的问题。
- 学习内容:
- 深入学习面向对象编程: 强化对C++类、继承、多态、模板等概念的掌握。
- 动手项目:
- 开发一个简单的控制台游戏(如贪吃蛇、俄罗斯方块)。
- 通过Git进行版本控制,学会基本的项目管理。
- 工具推荐:
- IDE:Visual Studio、CLion
- 版本控制:Git
数据结构与算法
- 目标: 通过数据结构与算法提升逻辑思维,应用在实际项目中。
- 学习内容:
- 掌握常见数据结构(链表、堆、栈、队列、树、图等)及其C/C++实现。
- 学习常用算法(排序、搜索、递归、动态规划等)。
- LeetCode、牛客网每天做1-2题。
2. 软件工程项目实战阶段
多人合作与项目管理
- 目标: 通过项目开发体验多人合作和软件开发流程。
- 学习内容:
- 项目流程: 学习需求分析、设计、实现、测试与发布等完整开发流程。
- 敏捷开发: 了解Scrum或Kanban等敏捷开发框架,学会如何应对需求变更。
- 工具: Jira或Trello用于任务管理,GitLab或GitHub进行版本控制与代码审查。
- 动手项目:
- 组队开发一个多人协作的简单游戏或工具软件,体验团队开发的节奏和协作流程。
软件测试与质量保证
- 目标: 掌握软件测试的基本方法,并学会处理测试失败。
- 学习内容:
- 单元测试(C++中的Google Test、Python中的unittest)。
- 集成测试与回归测试。
- 了解自动化测试工具和代码覆盖率工具。
3. 技术拓展阶段
Python与深度学习
- 目标: 克服在Python及数据包使用中的障碍,掌握深度学习框架。
- 学习内容:
- Python基础与高级编程(熟练掌握面向对象、装饰器、生成器等)。
- 学习NumPy、Pandas、Matplotlib、TensorFlow、PyTorch等常用数据包和框架。
- 通过复现经典深度学习模型(如卷积神经网络、RNN等),逐步理解算法并提升代码复现能力。
游戏开发入门
- 目标: 为未来的游戏开发奠定技术基础。
- 学习内容:
- 学习常见游戏引擎(Unity或Unreal)的基础使用。
- 掌握2D/3D渲染、物理引擎、输入处理等基础概念。
- 动手项目:
- 开发一个简单的游戏Demo(如平台跳跃游戏、第一人称射击游戏)。
4. 持续学习与代码量提升
- 目标: 增加代码量,提升编程速度与质量。
- 方法:
- 每周制定明确的编程目标,保持每日编程的习惯。
- 定期回顾与重构代码,提升代码质量。
- 参与开源项目或编程挑战(如Kaggle、GitHub上的项目)。