返回首页

计算机专业的学生要学好哪些课程?

61 2024-03-18 01:42 admin

一、计算机专业的学生要学好哪些课程?

如果单纯看计算机专业课的话,本科其实主要掌握好下面这些课程就可以了:

  1. 计算机导论 + 1-2门编程入门语言(推荐C语言必学)
  2. 算法与数据结构
  3. 操作系统
  4. 计算机网络原理
  5. 数据库系统原理
  6. 深入理解计算机系统(我们教材是CSAPP,这是我本科上过最值的课!System Programing
  7. 特定领域,如:计算机图形学、信息安全、System方向、分布式

当然,高数、概率论、离散数学等还是需要跟着学校学习。

至于这些专业课之间先后关系给大家看个图:

专业选修课,想做游戏引擎等图形学,不过我猜大部分都是搞AI:

至于非常完整的教学规划,可以参考Github上「清华大学计算机系课程攻略

img

里面包含了清华CS专业,大一到大四的课程以及推荐书籍资源等,链接如下:

https://github.com/PKUanonym/REKCARC-TSC-UHTgithub.com

截取一些课程目录:

大一上:

img

大一下:

Å 大二上:

img

大二下:

img

大三,专业课明显多起来了:

img
img

大四主要是实践、实习、毕设,课不多:

img

不过说实话,这份攻略对于我们大部分同学来说都只能参考,课程量有点大,时间不充足的话,很难完全跟下来。

但是我觉得这里面大三下的课程非常棒:

  • 操作系统
  • 计算机系统
  • 数值分析
  • 数字图像
  • 存储技术
  • 搜索引擎技术
  • 模式识别
  • 机器学习

可以说大三下的这些课程铺垫非常不错,不管以后走分布式存储、搜索引擎等基础架构方向还是机器学习等算法方向,亦或是游戏引擎、图形处理等方向,都算是入门了。

但是说实话,清华这份攻略好是好,就是太多了,对于时间没有那么充裕的同学,想要一个更加精简的 List,可以参考网易云课堂上的计算机课程图:

我把几门我觉得基本必学的课程用红线框起来了,大家可以作为参考。

另外,学习这些课程的时候,一定要多写代码、做一些Lab,建议把操作系统、计网、csapp这些课程 lab做完(国内有些学校可能没有),可以去国外找计算机四大名校的Lab。

国内部分学校最大的问题就是 OS、网络、数据库等 CS 核心课程上成了文科!

缺乏一些动手实践 Lab,大部分都是写实验报告,就是不写代码。

为什么美帝在数据库、操作系统、各种工业软件工程能力如此强悍?

我觉得和他们 CS 强校的教育模式有关,国外,尤其是美国,很多高校 CS 教育极其注重实践,国内也就少数不错的高校有实践教学,其它都是念 PPT,课后作业就是做 Word 项目。。。。

就拿 MIT 来说,6.830 [Database Systems](知乎 - 安全中心): 这是一门数据库系统的一门核心课程。前半部分比较基础的数据库的知识,后半段主要在讲Distributed Databases 的东西

它们的实验是什么?

是写个小型关系型数据库,比如 lab1实现数据库基本的存储逻辑结构,具体包括:Tuple,TupleDesc,HeapPage,HeapFile,SeqScan,BufferPool等。

我们数据库教什么?

教 SQL 怎么写,教数据库原理(这个还算好的)

大多数高校实验是什么?

用 Java 使用 JDBC 连接 MySQL 写个应用。。。

国外是如何教计算机网络的?

实现 TCP 协议栈~

比如斯坦福 CS 144,CS144 Lab Assignments - 手写TCP - LAB4

我们是怎么学习的?

记住 TCP 三次握手、四次挥手、记住 DNS 使用 UDP 协议....

我们大作业是什么?

有些是 Word 写作业。。。有些是让你用一下 socket api 写个网络程序。。。 这是计算机网络原理吗?

操作系统比较典型的是 MIT 6.828,现在改名了。

直接让你基于一个 xv6 去实现一些模块,比如文件系统、多线程。

我们呢?

记住进程和线程区别、记住虚拟内存的各种组关联....

当然也有一些学校会有实验,比如清华 ucore、哈工大 linux0.11。

这就是为什么美国高校有很强的编码能力、造轮子的能力,因为他们的 CS 学生成长环境就是这样的。

CS 专业区别于其它专业一个很大特点就是:

  • 工作后的内容是和专业所学的内容强相关的。

比如你学了数据结构、编译原理、操作系统、计算机网络,如果你从事的是研发岗,那一定离不开这些知识。

  • 主要靠自学

不管是科班还是非科班,想要快速持续的提高技术水平,就得靠自己去钻,尤其离不开自学。

知乎上其实很多问科班和非科班的差别在哪,其实我一直想说,你给自己充足时间去把科班的内容学习一遍,到底还能差在哪呢?

可能唯一差别就是少了一个 计算机学士学位。

也有人把这种自学出家的叫做民科,当然没有任何的讽刺意思哈。

那么计算机专业同学该如何自学呢?

其实看着很多,概况起来就是(下面只涉及CS专业课):

  1. 计算机导论 + 一门编程入门语言
  2. 算法与数据结构
  3. 操作系统
  4. 计算机网络
  5. 数据库系统
  6. 特定领域,如:计算机图形学、信息安全、System方向、分布式

学习的途径就是:

多看国内外 CS 名校的一些开放课程 + 看经典的书 + 多写代码!!!

毕竟现在MOOC、Udemy、B站上学习的资源都是很丰富的。

比如这篇文章介绍的:

这几门CS经典课程,起飞!计算机必看经典书单

简单列举几个学科:

一、计算机导论

首先建议从计算机导论课程开始,推荐下面这些课程:

二、C 语言

随后建议学习一门语言,可以是 C、Java、或 Python,我推荐 C语言(当然,也可以是Python!这不是重点,重点是要多去写,入门时提高对编程的兴趣),提到C语言,我这里推荐国内浙大翁凯老师的课,看过的都说好~

分为两门,第一门是面向高考结束想提前自学一点编程的,叫大学先修课:

虽然叫先修课,但是覆盖了C语言的主要知识点,也适合大一新生~

第二门是

会带你用C语言完成一些有趣的项目,比如一些图形界面小游戏,先修课学习 C 语言语法基础,进阶课带你项目实操,搭配使用,你就是同学中的大神!

有了语言基础之后建议学数据结构与算法:

三、数据结构推荐:

四、算法推荐:

五、操作系统推荐:

  • CMU的15-213
  • Berkeley的CS162,

这两个都是有视频有lab的好课

还有一个非常经典的 MIT 6.828,附带一个xv6 lab

课程: 6.828: Operating System Engineering

六、 组成原理、体系结构:

  1. MIT的6.004,
  2. CMU的15-213
  3. Berkeley的CS61C

七、计算机网络:

  • Stanford的CS144,lab 很有意思

最后,学编程一定要多练习哦,看书和编码的时间至少一半一半吧~

二、计算机自学课程顺序?

如果您是计算机自学初学者,可以按照以下顺序来学习:

1. 计算机基础知识:包括操作系统、计算机网络、数据结构和算法等;

2. 编程语言基础:选择一门流行的编程语言(如Python或Java)学习其语法、数据类型、变量、运算符、流程控制等基本概念;

3. 编程范式:了解不同的编程范式,如面向过程、面向对象、函数式编程等,并学会应用它们来解决问题;

4. 软件开发工具和环境:学习使用代码编辑器、IDE、版本控制系统等软件开发工具和环境,以提高程序员在团队协作中的效率和效果;

5. Web开发基础:HTML、CSS和JavaScript等前端技术栈以及Http、RESTful API、Web框架等后台技术栈;

6. 数据库和数据存储:了解各种数据库,学习SQL查询语句以及NoSQL数据库的使用;

7. 机器学习和人工智能:大规模的数据处理、数据挖掘与分析、深度学习算法等。

需要注意的是,这些主题的学习并非线性的,可以根据兴趣和实际需求随时调整顺序,同时还需要不断的实践与项目实战经验。

三、计算机有什么课程?

主干学科:计算机科学

主要课程:电路原理、模拟电子技术、数字逻辑、数值分析、计算机原理、微型计算机技术、计算机系统结构、计算机网络、高级语言、汇编语言、数据结构、

操作系统、数据库原理、编译原理、图形学、人工智能、计算方法、离散数学、概率统计、线性代数以及算法设计与分析、人机交互、面向对象方法、计算机英语等。  

 主要实践性教学环节:包括电子工艺实习、硬件部件设计及调试、计算机基础训练、课程设计、计算机工程实践、生产实习、毕业设计(论文)。   修业年限:四年   

授予学位:工学或理学学士   相近专业:微电子学、自动化、电子信息工程、地理信息系统、通信工程、电子科学与技术、生物医学工程、

电气工程与自动化、信息工程、信息科学技术、软件工程、影视艺术技术、网络工程、信息显示与光电技术、

集成电路设计与集成系统、光电信息工程、广播电视工程、电气信息工程、计算机软件、电力工程与管理、智能科学与技术、数字媒体艺术、

探测制导与控制技术、数字媒体技术、信息与通信工程、建筑电气与智能化、电磁场与无线技术。

四、计算机通信主要课程?

各个学校的具体情况不太一样,计算机系具体分为很多专业,每个专业课程会有一些侧重,可以看一下招生简章的专业介绍,大致有计算机程序设计,算法数据结构,操作系统,网络技术,数据库原理,电路与电子,嵌入式系统,汇编语言,JAVA,编译,软件工程,高等数学等等

五、计算机最难的课程?

数据结构与算法 

这门课程,小编认为,是整个计算机专业,乃至本科四年最为重要的一门课程。甚至到了工作岗位,这也是一门必修课。不仅面试会考,工作里也会大量地用到。而且,这门课程,是区分计算机专业培训班和科班的一个重要考证方法

六、a level课程适合哪些学生?

A Level课程适合那些希望深入学习特定学科并准备进入大学的学生。它提供了高水平的学术挑战,培养学生的分析思维和独立研究能力。A Level课程适合有较强学习动力和自我管理能力的学生,因为它要求学生进行大量的阅读、研究和写作。

此外,A Level课程也适合那些有明确职业目标的学生,因为它可以为他们提供相关学科的深入知识和技能,为他们未来的职业发展打下坚实基础。

七、大学生课程评语?

有关大学生的课程评语如下,请参考:

1、教学重难点突出,板书条理清晰。教学步骤设计合理,由浅入深,循序渐进。

2、教师基本功扎实,知识讲解准确,教学设计合理,始终以学生为主体,自主学习,小组交流讨论,上台交流展示等形式,师生配合默契,取得了较好的学习效果

八、学生课程思政内容?

思想政治教育的主要课程方向:马克思主义哲学、马克思主义政治经济学、科学社会主义、中国共产党历史、马克思主义中国化研究、马克思主义发展史、政治学、中国政治思想史;大学思政课包括《马克思主义基本原理概论》、《中国近现代史纲要》以及《思想道德修养和法律基础》。大学思政课是大学教育的基础,还是精神文明建设的重要组成部分,能提高学生的思想觉悟,还能转变学生的思想。

九、计算机编程课程有哪些?

计算机编程的课程有C语言C加加语言

C语言编程主要是利用数学的函数关系,对某一个事件写设计出一个计算的方法或者逻辑关系的公式,然后用计算机的语言按照一定的方法变成一定的程序,这样可以验证一下是否能得出一个正确的结果。

如果你努力的学习,考上一个好的大学,可以系统的学习编程的语言。

十、大专计算机有那些课程?

大专计算机专业通常包括以下一些核心课程:

1. 计算机组成原理:介绍计算机的硬件组成,包括CPU、内存、硬盘、显卡等,以及它们之间的交互关系。

2. 数据结构与算法:讲解数据结构的概念、分类及其应用,并讲解常用的算法设计和分析方法。

3. 操作系统:介绍计算机操作系统的概念、功能和分类,以及操作系统的内核、进程管理、内存管理、文件系统等方面的内容。

4. 计算机网络:讲解计算机网络的基本概念、协议、拓扑结构和通信原理,以及网络设备、传输介质和网络安全等方面的内容。

5. 数据库原理与应用:介绍数据库的基本概念、分类及其应用,以及关系型数据库的设计和实现、SQL语言、数据库管理系统等方面的内容。

6. 网络安全:介绍计算机网络中的安全威胁和攻击方式,以及网络安全技术和策略,包括防火墙、入侵检测、加密技术等方面的内容。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片

请选择遇到的问题

观点错误
内容与标题不符
内容陈旧
内容质量差
内容不够全面
已收到你的问题反馈