写在前面
由于本人目前是大三,所以目前课程只能更新到大三,能力有限哈哈~
本人水平也不是很高,只是个底层半奖罢了,学习ics纯属于喜欢计算机,喜欢编程,喜欢玩游戏罢了
我觉得无论是选专业还是如果你选好了专业也要再选择一个方向,这些选择都是以兴趣为主,兴趣是最好的老师,有兴趣你才有学习下去的动力,如果我遇到我感兴趣的问题或者平时遇到一些程序上的bug我一般都会熬夜把问题解决,这是我个人的习惯,这个时候的我是不会感到疲惫的,当然这不是说如果你遇到问题一定要立马解决,如果这个问题很大的话我也会分几次再解决。我只是想说在这些方面的选择中兴趣是最重要的,如果你对计算机之类的不感兴趣,我不建议你选择该专业,如果你只是觉得计算机就业好从而选择计算机但是个人其实很讨厌编程等东西那你学习计算机的过程会很痛苦。还有一点喜欢玩游戏不代表你就是适合读计算机,玩游戏和做游戏还是有很多区别,而做游戏和程序员也是有所区别的,了解自己真正喜欢的是什么很重要。喜欢玩游戏的你可能是喜欢游戏本身,也有可能是喜欢玩。
大一
大一本人上学期选择的是MTH013和MTH007,下学期选择的是MTH008。
大一个人感觉没有必要提前学习很多计算机知识,可以稍微看看有关计算机知识的科普。大学生活和过去的生活还是很不一样的,大一可以多去感受除了学习以外的生活,可以是在学校里通过社团认识更多的人,也可以是在学校周围多转转多看看,也可以是专门自己再学习一个新的爱好。
大一的任务可能只有两个,找到自己喜欢或者感兴趣的专业(或方向),然后就是为之努力。如果你无法完成第一个,你也可以努力去做好后者,那就是在准备工作中付出更多的努力。当然如果你发现自己无法完成,那么也会告诉你自己适合的方向是什么,当然和前文说的一样,兴趣我认为是最重要的。所以比如大一上学完专业,大二下可以选择更简单的数学当然也是可以的。
大一上
MTH013 微积分(含资料)
【免费】MTH013微积分个人笔记(知识点+例题)_MTH013资源-优快云文库
MTH013的内容其实前半程都不难,因为很多都是以前学习过的知识,只要认真完成作业,这门课很容易就能取得不错的成绩。这门课程主要是为下学期的多元微积分打基础,如果你这块知识学习的不好的话,你下学期的多元微积分就会比较痛苦。而且上学期的成绩决定你的选择专业,所以我建议你这门课可以作为你刷分的一个选择,如果能拿到90分,那很容易弥补EAP上的一些不足。
MTH007 线性代数
MTH007的知识点其实不难,每周的作业的练习量其实比较少,建议还是做一些额外的练习去熟练计算否则考试的时候可能计算速度会跟不上。矩阵的知识其实如果对于你想更深层次地理解计算机内部的知识很重要,但是如果你后面忘记了这些知识也不会很影响你未来的课程学习,但是如果你能完全掌握这门课程一定会对你未来的计算机学习提供帮助。认真学习拿一个80多分应该也是没有问题的。
大一下
MTH008 多元微积分(含资料)
【免费】MTH008多元微积分笔记(知识点+例题)资源-优快云文库
MTH008的内容有些难度了,里面的计算需要一定量的练习,否则解题的正确率和速度都会有问题,建议在认真做完每周作业的基础上再认真做一下书本的练习题,这样其实考试拿下一个90分也是有机会的。
大二
由于大一的时候我没有建议你提前接触太多的专业知识。所以你现在很可能对计算机领域来说是一张白纸。正好大二的课程其实都很基础,上学期的101对计算机做了一个系统的知识梳理,可以让你对计算机有一个较为全面的认识。111属于是你第一次接触编程语言,你知道如何进行编程,尤其是这个课难度不大,而且Lab的存在让这门课很容易学习,跟上每周的节奏会让你学会如何使用Java编程语言。这些都可以给你一个基础的知识框架。计算机知识其实涉及的内容还是很广的,而且网上学习资料多样,可能有的资料并不够基础或者全面,而这两个课程是非常好的入门,如果你学习了一些基础知识,很可能会觉得这部分过于简单而导致自己基础不牢,而学习好这两门课程可以让你有一个夯实的基础。
计算机下面有很多方面,这些方面之间又会有重叠,这些重叠部分将在后面的学习中不断体现,我们学习知识的时候我们可能发现这个知识点我们曾经在另一门课中学过,这个时候我更希望大家能够谦虚地再听一遍看看是否自己真的掌握了,或者复习一遍,而不是选择不停。虽然很多地方是重复,但其实有的时候是进阶。
当大二知识全部结束了,我们这时候其实对计算机的很多方面都有了了解,我们可以再去试着去学习一下自己感兴趣的方面的知识,在暑假尝试提升自己。
大二下有surf申请,这是一个为自己履历努力或者为自己认识更多资源的路径,但是我觉得做surf的前提还是有一个扎实的基础,如果你觉得平时的学习很吃力,那么如果你做surf的话,那你就会比平时更加疲惫和无助。当然如果你准备好接受挑战,surf或者实习之类的都欢迎你。
大二上
CPT101 计算机系统(含资料)
这门课程介绍了计算机的一些基础知识,虽然很多只是概念看似抽象,但其实计算机的逻辑严谨,所以我们只需要多加思考,这门课学习起来其实难度不高。最后的考试也很简单,所以不要太担心。
1.速通知识
一文带你速通CPT101计算机系统概念(含笔记下载链接)-优快云博客
2.汇编知识
CPT103 数据库
数据库可以说是上学期最难的一门功课了,这门功课的关键在于需要多实践,Lab的练习一定要认真练习,如果日后想成为一名全栈工程师数据库知识更是要好好学习。上课也有很多细节知识,比如mysql使用的是``而非''。当然学习这门功课不要忘记一些简单的概念知识,比如SQL的全称是Structured Query Language。使用的开发工具在运行代码后无法查看之前代码,可以考虑使用Jetbrains下的DataGrip或者使用记事本等方式记录之前运行过的代码,方便纠错和查看。
CPT107 离散数学
离散数学前半程的确有些新概念需要去理解,但是只要反复观看几遍ppt应该没有问题,而且题目很多都比较简单,但是在写作业和试卷的时候一定不要跳步,每一步都严谨详细阐述出来,这样一定可以取得优异的成绩。后半程的知识点更是我们之前高中接触过的,但是还是要注意考试的时候的写法以及解题步骤,只要足够细心认真,这门功课也一定没有问题。
CPT111 Java基础(含资料)
Java可能是很多同学第一次接触正式的编程,关键是要理解Class类和Object对象这两个概念,课程难度不大,而且每节Lecture都伴随有对应的Lab作为练习和实践,所以整个课程难度不高。
有的同学可能会抱怨Hidden tests,但其实这个的设置是为了让你更好地学会这个知识,培养学生能够严谨地思考问题。否则我们完全不需要用什么算法去解决这个问题直接sout对应的结果就好,甚至都不需要用scanner接受输入的信息了,在这种作业的时候可以先在自己本地的ide上跑一下结果,思考一下极端情况,再去lmo上提交结果。
最后的大作业属于锻炼学生的自学能力,如果第一次接触这种项目有些迷茫可以查看我后面附带链接中的大作业部分。
1.Java安装与使用
Java安装与环境配置以及使用全程详细教学(包含Windows和Mac版)_java home配置-优快云博客
IDEA等JetBrains产品(包含PyCharm、Rider等)该如何使用学生认证免费使用其全部功能_jetbrains 学生 激活-优快云博客
2.大作业
CPT111——用JavaFX制作桑基图(Sankey Diagram)的经验与感悟分享_java 桑基图-优快云博客
大二下
CPT102 数据结构和算法(含资料)
【免费】CPT102DataStructureandAlgorithm数据结构和算法学习大纲资源-优快云文库
这门课程虽然学习起来又比较抽象,但是里面会牵扯到算法而算法这学期会学习,所以这块没有问题,而Java我们上学期学习过,也很容易上手。由于一个程序是由数据结构和算法共同构成的,所以我们学习数据结构就会接触到算法,两者是相辅相成的,上面的链接是我将课程里的知识点的一些关系着重强调标明了,可以帮助大家更好的理解这门功课。最后的考试比较简单所以大家不要担心。
CPT104 操作系统
这门功课是下学期最难的一门,虽然是开卷考试,但是前面的概念题不是简简单单的书上原封不动的概念,而是需要你对该题目涉及到的一个或多个概念都有一定程度的理解才能将这道题目解答出来。
但是这门功课涉及到一些计算,这些在Tutorial上的计算题一定要好好做一遍,考试中将这些题目做出来就会有不错的分数。而前面的概念题争取做出3-4道,只要你好好阅读ppt,认真思考还是可以理解里面的一些概念,从而理解操作系统为什么要这么设计。最后一道C语言的题目有点难,建议好好研究前几年试卷的最后一题,这些题目的结果还是类似的。
INT102 算法基础和问题解决(含资料)
【免费】INT102AlgorithmicFoundationsandProblemSolving算法基础与问题解决资源-优快云文库
这门课程不难, 上课教的知识点伴随着Tutorial的练习题可以快速帮我们复习巩固,只要我们认真地完成并且掌握每周地Tutorial题目,这门功课还是可以很轻松地拿下的。上面的资料涵盖了这门功课的所有知识点,可以帮助你更快的复习或者快速的上手这门功课。
INT104 人工智能(含资料)
这门课程主要学习三个板块:数据处理,有监督学习,无监督学习。这三个部分正好对应三次Report作业,虽然人工智能很多底层细节的知识是复杂的数学计算,但是这门功课不要求我们掌握复杂的数学计算,我们只需要像编程语言一样,学会人工智能的基础概念而不需要知道这些概念下的底层到底是怎么计算的就能很轻松地通过这门功课。
建议使用Pycharm进行学习,相关的教程:
1.Python的安装和使用
Python安装与环境配置全程详细教学(包含Windows版和Mac版)_怎么安装之前版本的python-优快云博客
IDEA等JetBrains产品(包含PyCharm、Rider等)该如何使用学生认证免费使用其全部功能_jetbrains 学生 激活-优快云博客
2.Report作业
如何在GPT的帮助下利用Python实现数据可视化?(以INT104的Report1为例)-优快云博客
如何在GPT的帮助下利用Python进行监督学习?(以INT104的Report2为例)-优快云博客
如何在GPT的帮助下利用Python进行无监督学习?(以INT104的Report3为例)-优快云博客
大三
大三上
CPT203 软件工程(含资料)
这门功课很乏味,学起来会让你有一种高中语文或者政治的感觉,不像计算机想象中的那样偏实践。这门功课告诉你如何科学地开展软件开发。可以考虑看看中文书本,会让你更快地上手相关的知识。这里有关建模的部分是重点,可以重点学习,但是其实知识点并不难。而软件测试部分因为涉及到编程,所以学习起来也会比较简单。整体来说,这门功课认真学习,多加记忆,最后的考试题目难度不是很高,还是可以取得理想的成绩的。
CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)-优快云博客
CPT203 Software Engineering 软件工程 Pt.2 敏捷方法和需求工程(中英双语)-优快云博客
CPT203 Software Engineering 软件工程 Pt.3 系统建模(中英双语)-优快云博客
CPT203 Software Engineering 软件工程 Pt.4 软件设计(中英双语)-优快云博客
CPT203 Software Engineering 软件工程 Pt.5 软件测试(中英双语)-优快云博客
CPT203 Software Engineering 软件工程 Pt.6 软件管理(中英双语)-优快云博客
CPT205 图形学(含资料)
我一再强调基础的重要性,比如这门功课在我身上的例子。我之前大二暑假学习了Unity的相关知识,在Unity中改变物体的旋转和位置,当时我的教学视频告诉我,让我用三个不同的物体去控制三个轴的旋转,否则会出现值跳转的问题。这个只是经验分享,真正的原因我在这门功课中才找到答案,是因为这些其实是矩阵运算,所以可能会出现值值跳转的情况。所以说基础很重要。这门功课也都是稍微告诉你一些基础的图形学知识,涉及的并不深,虽然需要你进行两次实操,但是难度并不大,但是作业确实可以多花点心思,如何让自己的作业变得漂亮可能需要多花点时间。
1.学习资料
CPT205 Computer Graphics 计算机图形学 Pt.1(含OpenGL)-优快云博客
CPT205 Computer Graphics 计算机图形学 Pt.2(含OpenGL)-优快云博客
CPT205 Computer Graphics 计算机图形学 Pt.3(含OpenGL)-优快云博客
CPT205 Computer Graphics 计算机图形学 Pt.4(含OpenGL)-优快云博客
2.课程作业
CPT205 计算机图形学 OpenGL 2D实践(CW1)-优快云博客
CPT205 计算机图形学 OpenGL 3D实践(CW2)-优快云博客
INT201 决策计算和语言(含资料)
这门功课对于很多人来说非常抽象,觉得难度很大。这门功课其实可以理解成数学,由于整个上半学期都在学习正则语言,而下半学期一口气上完了后两个语言,而且后面的内容的确难度更大,所以会让很多学生在这里觉得困难。这里推荐阅读相关的书本,书本上的知识点讲得很详细,过一遍后你可能会发现这门功课可能是整个上半学期最简单的课程,也可以看我这里整理的笔记。最后考试的题目也不难,只要你能掌握这门功课的知识,这门功课很容易能让你取得好成绩。
INT201 Decision,Comuptation and Language / Theory of Computation 决策,计算和语言 / 计算理论 Pt.1 正则语言-优快云博客
CAN201 计算机网络(含资料)
这门功课的书说的是自上而下学习计算机网络,这里的自上而下意思其实是,从TCP/IP协议栈的应用层开始从上而下学习计算机网络的知识。每周都有实验课,而且自上而下,所以学习难度不是很大。但是实验课不会像之前CPT111那么细致,更是想INT104那样需要你自己去学习摸索。这门课知识点虽然很多,但是其实很多都很基础没有要求你必须全部细致掌握,考试题目难度也不高,所以不要太过担心。
CAN201 Introduction to Networking(计算机网络)Pt.1 导论和应用层-优快云博客
CAN201 Introduction to Networking(计算机网络)Pt.2 传输层-优快云博客
CAN201 Introduction to Networking(计算机网络)Pt.3 网络层-优快云博客
CAN201 Introduction to Networking(计算机网络)Pt.4 链路层-优快云博客
CAN201 Introduction to Networking(计算机网络)Pt.5 网络安全-优快云博客
大三下
CPT202 软件工程小组作业
这是你难得的第一次进行软件开发的过程,软件开发由四部分组成——前端、后端、数据库、计算机网络四个部分组成。除了前端我们没有学过,其余知识我们都学过,这一部分可能要额外学习。但是这个是一个小组作业,所以你要看你的职责做对应的事。虽然在Sprint中会有三个角色,但是我感觉这里只分成2个即可。
如果你是一个领导者,那么这个课程就是一个很好的机会,因为你可能未来很难再有这样的一个经历,你到时候当上领导者可能你在职场已经努力了好几年,然后你也不会像第一次那样迷茫。
如果你是一个代码编写者,我建议你去学习前端知识,这样你就有更多的技能去面对未来的编程工作,而这门作业会让你对整个软件开发有详细的实践。
只要你们团队的每个人能做好自己份内的事情,那么这门功课还是很简单的。
关于Git使用可以看这个:
CPT204 高级面向对象编程(含资料)
如果你前面CPT111以及其他的一些课程都认真学习了,那么这门功课对你来说没有任何的难点。它让你Java编程技术得到了更深层次的锻炼。当然这门功课你依然要足够细心,比如哪种数据结构的数据先入后出,这句话的动词使用的是store和are,所以是Stacks而不是Stack。
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.1 Arrays and Classes 数组和类-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.2 String类和类的设计-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.3 抽象类和接口-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.4 泛型-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.5 列表,栈,队列和优先队列-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.6 集合,映射-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.7 算法-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.8 排序算法-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.9 图-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.10 二叉搜索树-优快云博客
CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.11 AVL树-优快云博客
CPT208 人机交互(含资料)
课程资料:
CPT208 Human-Centric Computing 人机交互 Pt.1-优快云博客
CPT208 Human-Centric Computing 人机交互 Pt.2 Prototype(原型)-优快云博客
CPT208 Human-Centric Computing 人机交互 Pt.3 Design Principles and Design Alternatives(设计原则和设计预案)-优快云博客
CPT208 Human-Centric Computing 人机交互 Pt.4 启发式评估, 问卷调查和访谈-优快云博客
CPT208 Human-Centric Computing 人机交互 Pt.5 原型保真度和维度-优快云博客
CPT208 Human-Centric Computing 人机交互 Pt.6 Usability Testing & Experimental Design(可用性测试和实验设计)-优快云博客
CPT208 Human-Centric Computing 人机交互 Pt.7 交互和交互界面-优快云博客
CPT208 Human-Centric Computing 人机交互 Pt.8 Field Study and Analytics(实地研究和分析)-优快云博客
考试资料:
大学生自用99新:【免费】208Helpsheet.docx资源-优快云文库 (有的图打印出来字不够清晰,可以稍微补一下,有的地方有些拼写小错误,还有一些空白空间可以再根据自己情况添加一些想要的内容。)
INT202 算法的复杂度(含资料)
INT202 Complexity of Algroithms 算法的复杂度 Pt.1 前言_西浦int202最简单三个步骤-优快云博客
INT202 Complexity of Algroithms 算法的复杂度 Pt.2 Search Algorithm 搜索算法-优快云博客
INT202 Complexity of Algroithms 算法的复杂度 Pt.3 Sorting Algorithm & Divide and Conquer 排序算法和分治发-优快云博客
INT202 Complexity of Algroithms 算法的复杂度 Pt.5 Graphs 图-优快云博客
INT202 Complexity of Algroithms 算法的复杂度 Pt.6 Number Theory and Cryptography 数论与密码学-优快云博客
INT202 Complexity of Algroithms 算法的复杂度 Pt.7 NP-Completeness NP完全性-优快云博客