软件工程本科生宝典
首页/四年规划/大一下学期
第 1 学年 · 第 2 学期

大一下学期学习规划

巩固C语言并完成课程设计,正式预习数据结构与离散数学,第一次尝试把项目写进简历

本学期主题

巩固C语言并完成课程设计,正式预习数据结构与离散数学,第一次尝试把项目写进简历

🧭总览

大一下是从「会写代码」到「会写有用的代码」的转折点。核心任务有四块:一,通过C语言课程设计完成第一个真正完整、能从需求走到交付的项目;二,学好高等数学下册(尤其是多元函数与级数)和离散数学,后者是数据结构与算法的数学语言;三,把四级拿下手;四,提前预习数据结构,让大二上手时不至手忙脚乱。时间分配上,课外每周依然28到35小时:数学与离散约35%、编程与课程设计约35%、英语20%、通识10%。目标水平:能独立设计和实现一个带文件持久化的完整C项目,能用伪代码描述基本数据结构操作,离散数学与高数均在80分以上。常见错误:课程设计直接抄网上的代码;离散数学觉得「没用」而摆烂;四级拖到大二才准备。

📘课程安排与学习重点

共 7 门。每门课的完整学习引导(教材、网课、实践、面试考法)可在课程库中查看。

高等数学A(下)

数学基础5学分/80学时
📌 课程定位

下册研究多元函数微分学、重积分、曲线与曲面积分、无穷级数与常微分方程,是后续概率论、最优化、数值分析、物理类课程的前置。多元函数与偏导数是机器学习梯度下降的直接数学来源,级数则是理解算法收敛性的基础。

✅ 必须掌握
  • 多元函数偏导数与全微分
  • 二重积分的计算(直角坐标/极坐标)
  • 无穷级数的收敛性与幂级数展开
  • 一阶常微分方程的解法
✍️ 怎么学(含目标分数与刷题量)

同济《高等数学》第七版下册,重点:多元函数偏导数与全微分、二重积分计算、无穷级数的收敛判别、常微分方程基础。网课跟宋浩或MOOC。偏导数与二重积分要画图理解,级数要把判别法整理成表。目标85分以上,为考研数学打底。

📖 推荐教材
高等数学(第七版)下册(同济大学数学系)
🔗 在线资源
中国大学MOOC(搜索「高等数学下」,跟课学习)

离散数学

数学基础4学分/64学时
📌 课程定位

离散数学是计算机专业的「数学基石」,涵盖集合论、数理逻辑、图论、组合计数、关系与函数、代数结构。它直接支撑数据结构、算法设计与分析、数据库、编译原理、密码学、人工智能。很多学生觉得它抽象,但理解之后会发现数据结构里的树、图、哈希、等价关系全部源自这里。

✅ 必须掌握
  • 命题逻辑与谓词逻辑推理
  • 集合、关系(等价关系、偏序)与函数
  • 图论基础(连通、欧拉回路、哈密顿、树的计数)
  • 组合计数、鸽巢原理与递推
✍️ 怎么学(含目标分数与刷题量)

教材用屈婉玲《离散数学》或左孝凌版。重点:命题逻辑与谓词逻辑、集合与关系、图论(连通性、欧拉与哈密顿、树)、组合计数与鸽巢原理。B站有完整离散数学课程。每章学完自己手推一遍证明题,不要只背结论。目标80分以上,图论部分要精通,因为它与数据结构高度重合。

📖 推荐教材
离散数学(屈婉玲)
离散数学及其应用(Kenneth Rosen)
🔗 在线资源
哔哩哔哩(搜索「离散数学」,有完整名校公开课)

C语言课程设计/程序设计实践

实践2学分/2周
📌 课程定位

这是你人生第一个完整的软件项目实践环节,要求从需求分析、设计到编码、调试、写文档走完整个流程。它的价值不在难度,而在于让你第一次体会「交付」是什么感觉,并学会用模块化思想组织多文件工程。

✅ 必须掌握
  • 多文件工程的组织与Makefile基础
  • 结构体指针与动态内存分配
  • 文件读写与数据持久化
  • 基础调试方法与断点使用
✍️ 怎么学(含目标分数与刷题量)

选题建议:图书管理系统、学生信息管理系统或通讯录,功能不少于增删改查加文件持久化。要求用多文件(.h/.c)组织代码、用结构体与链表、有基本的错误处理。严禁直接抄网上代码,可以借鉴思路但必须自己重写。最后要写一份简单的设计文档和用户手册。目标:拿到优秀或良好,并把它整理进GitHub仓库作为第一个作品集条目。

📖 推荐教材
C和指针(Kenneth Reek)
🔗 在线资源
Gitee(把课程设计代码托管成仓库,作为作品集起点)

面向过程程序设计进阶(可选:Java/C++先修)

专业基础3学分/48学时
📌 课程定位

部分学校在大一下开设C++或Java的入门课,为后续面向对象课程预热。若你所在学校没有,这次自我加压的预习会在大二拉开明显差距。目标是理解强类型语言、引用/对象与C的差异。

✅ 必须掌握
  • 类与对象的基本概念
  • 封装与访问控制
  • 方法重载与构造方法
✍️ 怎么学(含目标分数与刷题量)

若学C++,用《C++ Primer》前6章;若学Java,用《Head First Java》或B站韩顺平Java基础。重点掌握类与对象、封装、方法重载。每周敲2个小类练习。目标:能用类的方式重写你在C语言里写过的程序。

📖 推荐教材
Java核心技术 卷I(Cay Horstmann)
C++ Primer(Stanley Lippman)
🔗 在线资源
菜鸟教程(Java/C++语法速查与在线练习)

大学英语(二)

通识3学分/48学时
📌 课程定位

本学期目标是拿下四级。英语成绩也关系到部分学校的毕业学位和评优。四级证书是很多企业网申的默认门槛之一。

✅ 必须掌握
  • 四级真题题型与解题技巧
  • 作文与翻译模板
✍️ 怎么学(含目标分数与刷题量)

以四级真题为核心,考前两个月每天一套听力或阅读,作文背3到5套模板。坚持每天30分钟单词复习。目标四级500分以上,一次通过;有余力者可以开始准备六级。课内成绩保持80分以上即可。

📖 推荐教材
大学英语四级真题(星火/华研)
🔗 在线资源
哔哩哔哩(搜索四级写作听力技巧,考前突击)

中国近现代史纲要

通识3学分/48学时
📌 课程定位

思想政治理论必修课之一,同样属于必须通过才能毕业的课程,时间产出比低,目标是稳妥拿分。

✅ 必须掌握
  • 重要历史事件时间线与意义(应试用)
✍️ 怎么学(含目标分数与刷题量)

正常出勤,考前一周背要点与时间线。期末卷面60到85分都正常,别额外投入。把时间省给课程设计和数据结构预习。

📖 推荐教材
—
🔗 在线资源
—

体育(二)

通识1学分/32学时
📌 课程定位

保持体能与健康,同时满足毕业学分要求。长期久坐编程更需要运动来保护颈椎与视力。

✅ 必须掌握
  • 体测达标项目
✍️ 怎么学(含目标分数与刷题量)

正常上课达标,每周保持2到3次运动,认真准备学期体测项目。

📖 推荐教材
—
🔗 在线资源
—

💪本学期必须练出的技能

🎯

数据结构预习(线性表、栈、队列)

目标:能用C手写顺序表、单链表、栈和队列的完整实现

跟着B站数据结构课程或《大话数据结构》前4章边看边写,每个结构都手敲一遍

🎯

调试与问题排查

目标:能使用断点、单步、打印变量定位常见的段错误与逻辑错误

故意在代码里制造空指针、数组越界,练习用GDB或IDE调试器定位

🎯

英语四级实战

目标:四级一次通过并达到500分以上

考前两个月每天一套真题,错题本记录高频词与错因

🛠️项目实战(写进简历的素材)

🛠️

图书借阅管理系统(课程设计)

时间:第14周到第17周(课程设计周)

需求包含图书信息的录入、查询(按书名/作者/ISBN)、借出与归还、读者管理、借阅记录查询,数据用文件持久化,重启后不丢失。要求用多文件模块化组织代码,图书和读者用链表或结构体数组管理,界面为菜单驱动。验收标准:功能完整可演示、异常输入有提示、代码有注释、附带一份设计文档与用户手册,并托管到Gitee仓库。这是你简历上第一个正式项目。

C
🛠️

基于链表的通讯录程序

时间:第8周到第12周

在C语言课程设计中段先行练手:用单链表实现通讯录的增删改查,支持按姓名排序、模糊查找,并把数据保存为txt。验收标准:链表操作无内存泄漏(可用valgrind检查)、排序与查找功能正确、有完整的交互菜单。它能让你在正式课程设计前把链表彻底吃透。

C

⏱️时间分配建议

高等数学下与离散数学33%
C语言课程设计与编程实践35%
英语与四级备考18%
通识与思政课8%
运动与休息6%

每周课外投入28到35小时。第1到8周:数学与离散占约35%,重点消化高数下册的偏导数与二重积分、离散数学的逻辑与集合关系;编程占约35%,完成通讯录项目并预习链表;英语每天30分钟四级。第9到17周:重心前移到C语言课程设计与四级冲刺,数学每周至少保持10小时避免掉队。建议每周固定三个晚上(每次3小时)做编程,两个晚上做题,周末整块时间给课程设计。课程设计周集中全力交付,务必留下设计文档与代码仓库。

💎本学期推荐资源

📖 书单

大话数据结构程杰

通俗易懂的数据结构入门,适合预习

离散数学及其应用Kenneth Rosen

离散数学经典教材,习题质量高

C和指针Kenneth Reek

攻克指针与内存,课程设计利器

🎬 视频课程

数据结构(陈越/王卓)中国大学MOOC / 哔哩哔哩
离散数学哔哩哔哩名校公开课
四级备考全程班哔哩哔哩

🌐 网站与文档

系统跟课好去处

把课程设计作品托管成仓库

用动画理解数据结构和算法执行过程

🐙 GitHub 仓库

算法与数据结构中文百科全书,长期查阅

各类算法的开源实现,学习参考

✅学期末检查清单

✔️ 做到了就算合格
  • 四级一次通过并达到500分以上
  • 独立完成图书管理系统课程设计并托管到Gitee
  • 能徒手写出单链表、栈、队列的完整C实现
  • 离散数学与高数下均达80分以上
  • 掌握GDB或IDE断点调试的基本方法
  • 整理出第一份作品集(项目+代码仓库+说明文档)
⚠️ 常见坑
  • {'坑': '课程设计直接在网上找代码交差', '破解': '必须自己重写,哪怕只有60%原创,也比抄来的100%更有价值,面试时会当场问细节'}
  • {'坑': '觉得离散数学抽象无用而摆烂', '破解': '把它当成数据结构与算法的数学语言,重点攻克图论与关系,它们会在大二反复出现'}
  • {'坑': '四级裸考或拖到大二', '破解': '大一下学期是四级最佳窗口,此时英语语感还在,越往后越退化'}
  • {'坑': '只顾做项目荒废高数下', '破解': '高数下是考研数学重点,也是保研绩点关键,项目再忙每周也要保证10小时数学'}