2024软件工程第一次作业
这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 1.体验使用AIGC 2.初步认识博客园以及github 3.学习Markdown 4.对自己现在和将来的认识与计划 |
学号 | 102202107 |
1. 个人logo文生图任务
设计理念
由于我很喜欢可爱的小狗,而我的MBTI是ENFP,也被称为“快乐小狗”,所以我选择我的Logo是一只可爱的小狗。
设计过程
我一开始选择了通义千问与文心一言,但是生成出来的图片不太能达到预期效果,最后选择了Craiyon。
最后我选择了这只可爱的小狗,因为它像我喜欢的一只叫多栋的比格犬。
个人感受
使用基于AI的图像生成工具极大地方便了图片创作过程,可以快速生成多种风格的图片,很省事。
然而,AI生成的图像有时可能并不完全符合预期,可能需要额外的工作来调整和完善。此外,由于AI是基于大量数据训练的,因此生成的作品可能会缺乏独特性,没有个性。
总的来说,它提高了效率,降低了门槛,使得非专业人士也能参与到设计过程中来。不过,很难达到完美的预期。
2. Github个人主页搭建
这是我的Github个人主页欢迎你来看
3. 在博客园发一篇随笔
当前技能树与技术偏好概览
1. 技能树
- 编程语言:学习过 C、Python 和 Java。
- 大数据处理与分析:学过大数据基础实践与大数据导论,对 Hadoop、HBase、MapReduce 和 Spark 有一定的了解,能够在实际项目中进行初步的数据处理和分析工作。
- 后端技术:擅长使用 Java 进行软件开发,并且熟练掌握了 Spring Boot、MyBatis Plus、Redis 等技术框架,能够快速构建高效的后端系统。
- 机器学习基础:正在学习机器学习的基本原理,包括但不限于 KNN、K-Means、决策树等算法,并尝试将其应用于具体项目中。
2. 技术偏好
- 数据分析:学习过 Spark、Hadoop 及 MapReduce 进行数据处理,特别是对于大规模数据集的清洗、转换和分析流程有着浓厚的兴趣。希望通过更多的实际项目操作,进一步加深对这些技术的理解和应用。
- 机器学习:对机器学习技术尤其是自然语言处理(NLP)和计算机视觉(CV)领域内的最新进展保持高度关注。对监督学习和无监督学习算法如 KNN、K-Means、决策树等有基本掌握,并希望通过实际项目经验加深对深度学习框架和技术的理解。
3. 缺少的能力与改进方向
- 团队合作:我需要提升团队协作能力和沟通技巧,希望做到 1+1>2。
- 代码质量:提高个人编写代码的质量,注重代码的可读性、可维护性和可扩展性,减少对自动化工具的依赖,培养独立思考和解决问题的习惯。
课程相关
1. 代码量
我之前的代码量不足,经常依赖自动化工具,希望本学期这门课完成后,能达到的千行以上代码量。
2. 希望学习的知识
- 增强团队协作经验:在团队项目中锻炼与人合作的能力,学会如何在团队中扮演不同角色,提升沟通和协调技巧。
- 掌握软件工程实践:不仅仅是理论上的学习,而是通过实际项目,将理论知识转化为实践技能,真正理解软件工程的实际应用。
- 提升代码质量:通过代码审查、重构练习等方式,改善自己的编程习惯,提高代码的可读性、可维护性和可扩展性。
软件工程课程学习指南
课程目标
本课程旨在让学生理解软件工程的基本概念,掌握软件生命周期各阶段的关键技术和最佳实践,并通过实际项目来提升团队协作与项目管理能力。
学习内容
1. 软件工程概述
- 软件工程的定义与发展历程
- 软件生命周期介绍
2. 需求分析与管理
- 需求获取与分析
- 需求规格说明书编写
- 需求变更管理
3. 软件设计
- 软件架构设计
- 设计模式与原则
- UML 建模语言
4. 编码与实现
- 面向对象编程
- 代码质量与重构
- 版本控制(Git)
5. 测试与质量保证
- 单元测试
- 集成测试
- 系统测试
- 自动化测试工具
6. 项目管理
- 敏捷开发方法(Scrum/Kanban)
- 项目计划与进度跟踪
- 风险管理
7. 持续集成/持续部署(CI/CD)
- CI/CD 概念
- Jenkins/GitLab CI 等工具使用
- 自动化构建与部署流水线
8. 团队协作与沟通
- 有效的团队沟通技巧
- 角色分配与职责划分
- 冲突解决策略
学习成果
- 提升项目管理能力:通过实际项目操作,增强在项目规划、执行、控制等方面的能力。
- 增强团队协作经验:在团队项目中锻炼与人合作的能力,提升沟通和协调技巧。
- 掌握软件工程实践:将理论知识转化为实践技能,真正理解软件工程的实际应用。
- 提升代码质量:通过代码审查、重构练习等方式,改善编程习惯,提高代码质量。
- 适应变化的能力:学习如何在不确定性和变化面前保持灵活性,及时调整计划以应对项目中的意外情况。
学习计划
- 第一周:软件工程概述
- 第二周:需求分析与管理
- 第三周:软件设计
- 第四周:编码与实现
- 第五周:测试与质量保证
- 第六周:项目管理
- 第七周:持续集成/持续部署
- 第八周:团队协作与沟通
- 第九周:复习与准备期末项目
- 第十周:期末项目展示与总结
学习资源
- 《软件工程:实践者之路》 - Roger S. Pressman
- 《敏捷软件开发》 - Robert C. Martin
- Coursera - 软件工程基础
- edX - 软件工程
学习建议
- 定期复习课堂笔记,整理知识点。
- 主动参与团队项目,积极贡献自己的想法。
- 利用在线资源进行补充学习,拓宽知识面。
- 通过实际项目练习,将理论知识应用到实践中去。