当前工作: 补全课程清单;快速访问链接
上海交通大学计算机系的本科课程质量高低不齐,学校也长期处于放养的培养方式,同辈们不少人在大学的前两年会迷失方向,一方面不知道自己要干什么,另一方面不知道具体内容怎么学更好,最终需要完全地通过自己动手在互联网的海洋中寻找到如何学习/做某件事有什么意义的线索才能进步;同时我们也不难发现,一些同学会因为诸如环境配置等非核心内容上踩坑,从此失去对计算机科学的兴趣,即使他/她尚未接触到知识的核心;一些同学会因为在计算机科学的A方向上失败而误以为自己根本不适合学习任何计算机专业的方向; 一些同学;一些同学因为跟随了科研或道德水平有限的老师参与科研,而误以为自己根本不适合科研;...
项目的主要目的就是为计算机专业的学生在本科的各个阶段都能提供一个Overview性质的信息共享,避免无意义的“内卷”(例如花费大量时间做低效率的事情),避免因为信息不足而做一些与自己发展不适配的努力,更好地选择未来的方向/适配自己已选择的路线;重点面向本科课程,也视情况考虑搜集整理关于就业出国考研保研等传统艺能的信息,如果不和已有的开源项目冲突 (目前已有上海交大生存指南更新计划、ieee试点班的ieee.icu网站);
同时考虑到无法回避的全民转专业狂潮,也希望本项目能够对任何外专业的、希望学习一些计算机系课程的同学对CS培养情况有大致的了解
另一方面,也希望愿意坦然面对学生批评的老师从中得到学生真实的想法, 开启这个项目的最终目的是让这个项目不再有意义
为每一门课程建立文件夹:
- 编辑一份文档提供课程概览和修读建议
- 一个子文件夹编辑评教文档,每位授课老师一份
进度
-
课程
课程概览 课程评价 学习指导文档 程序设计 数据结构 离散数学 操作系统(含课设) 计算机系统结构 计算机组成 算法 计算机数学基础 -
工具
搜集以下内容 [以SJTU计算机系专业课为主,但不限于此, 同时还可加入高数大物等公共课,考虑回避所有政治课]:
- 课程学习指南/避坑指南、经典教材阅读、大一到大四的教务事件以及影响...
课程:
-
全民可见评教:对每门专业课(同内容即算作同一门)的每一个任课老师授课方式合理但有理有据、严格文明用语的评教
- 课程设计的好的某老师,老师的哪些一片苦心不应当被浪费
- 课程设计一般的某老师,哪些地方急需改进
- 例如:上课表达不清、PPT制作混乱、作业与课程所学脱节、给分制度不合理、评分制度存在不公...
- 课程设计糟糕的某老师,是否存在严重阻碍学生发展的可能、在这种情况如何保全自身?
- 针对课程对学习的帮助评价,不允许直接针对给分高低进行正/负面评价(出现违反学校规定或明显不公的除外)
-
学习建议:对每门专业课
- 脱离于成绩而言学好这门课的经验总结
- 这门课的意义是什么/对哪些方向有直接意义、间接意义、零意义 [应当由已毕业、在计算机工程或学术领域有一定]
- 最基本的必须学到什么
- 每一章节/版块有哪些必读 / 值得一读的PPT、教材、文档、论文,注意:
- 避免诸如"推荐阅读《CSapp》"、"可以去看看《计算理论导引》"这样的整本书的推荐,务必具体到一个章节,甚至一道具体的例题,包括这个文档的价值何在]
- 推荐论文也尽量给出简介和其价值所在
- 不同基础 / 水平的同学建议如何学习?不同发展方向的同学建议如何学习?
- *基于不同老师评分方式而言提高分数的经验总结 [是否加入或者不加入待定]
- 脱离于成绩而言学好这门课的经验总结
-
课程总结: 针对一门专业课:
- 提供一篇总结性质的文章,用于理清这门课的逻辑线索
-
自救指南:SJTU计算机系无法提供/质量公认不高的专业课的课外材料补充
- SJTU其它院系高质量课程指南 (例如:ACM班/IEEE试点班/软件学院/网安学院/密西根学院)
- 海外名校高质量课程学习指南[例如: Stanford的机器学习 / ...]
-
方向介绍: 对每个专业方向
- 学习路线、经典教材
-
特殊建议:针对来自工科平台、致远工科荣誉计划、转专业等背景同学的建议
-
其它: 任何与课程相关的有用信息
经典教材阅读指南/总结
最终需要包括:
- 这本书正确的阅读方式是什么
- 对一些难懂部分的总结
- ...
各类学习过程中遇到的工具和环境配置的入门级指南
Part 0 ~ Part 2 面向大一新生
-
Part 0: 连什么是编程都不知道的时候,首先需要知道/学会/去看什么
- TBD
-
Part 1: 计算机原理初探
我写的程序跑起来大致发生了什么?编译和解释是什么意思?
-
Part 2: 常用工具的使用 [不建议只引用官方或第三方文档,需要一些学生层面的解释——这个工具对学习本身]
- 命令行
- Git和Github
- Markdown和Latex
- Makefile
- ...
-
Part 3: TBD
教务事件
- 入学
- 第1学期电院大平台分流
- 第1学期工科平台分流
- 第2学期(电院大平台)自主转专业
- 第3学期工科平台转专业
- 第4学期AI方向选拔
- 第5学期非AI方向选课
- 大三暑期专业实习
- 大三暑期暑期保研夏令营
- 第7学期9月推免
- 第7学期留学申请
- 第8学期毕业设计
额外目标 [待定]:
民间计算机科学导论
计算机系没有计科导的修业要求,但是这门课对专业的重要性不可轻视,
目标:
- 用简介通俗的方式为各个方向编写一些文档,把整个计科的逻辑结构理清楚
- 读者可以在很短时间了解某方向是怎么回事,
各个方向的科研情况以及本科生科研体验
最终需要包括:
- 哪些老师/哪些实验室做这个方向的研究
- 本科生科研状况如何 [我参与科研具体干了什么风格的工作]
- 这个领域科研的难点在哪
[TBD] 如何划分?
-
大数据人工智能类
- 机器学习
- 计算机视觉
- 自然语言处理
- 强化学习
- 数据挖掘
- ...
-
信息安全
-
计算机网络
-
系统
- 操作系统
- 数据库
-
理论类
-
Track A
- 计算复杂性理论
- 算法理论
- ...
-
Track B
-
程序语言理论
-
程序验证
-
静态分析
-
-
-
计算机图形学
各专业方向对应的企业岗位、具体实习/工作体验
以下内容是否和生存指南冲突待考证:
-
上海交大计算机系的考研
-
计算机系的本科推免情况、研究生院保研情况
-
计算机专业的出国经验
- 文明用语原则: 任何出现诸如问候长辈/身体器官等的低素质内容评价不予采纳,不论所提供信息有多么真实可靠
- 不保证实名,但应当有依据让人相信观点来自SJTU的学生
- 对某门课的贡献者一定要确确实实认真上过这门课,而不是依据道听途说来供稿
- 实时更新原则: 依照培养计划的变更即时更新必要的内容
- 提供的经验尽量具体,避免抽象(比如: “xx老师上课念ppt的方式不好,建议更生动”就不是一个良好的建议)
- 重点在学习方法分享和信息共享,而非生存指南
- 维护者应当尽可能合理地合并相似观点以避免冗余、保留不同观点以减少受个人利益冲突的影响
- 维护者应当注意修改不清晰的表达
- *(是否应当)为避免利益冲突,维护者应当为若干已完成前三年课程的学生?
- 如何保证项目搜集确实仅过滤掉不文明用语、人身攻击等,而非受项目维护者主观意志的影响
- 是否可以邀请一些授课老师本人也参与到其中? 如果可能将会很有意义