我们先看计算机科学有哪些子领域。

学术领域有:

  • 计算理论
  • 信息和编码理论
  • 算法和数据结构
  • 形式化方法
  • 程序设计语言

实践领域有:

  • 计算机体系结构
  • 并行计算和分布式系统
  • 实时系统和嵌入式系统
  • 操作系统
  • 计算机网络
  • 科学计算
  • 安全性和密码学
  • 人工智能(模式识别、机器学习、数据挖掘、信息提取)
  • 计算机图形学、计算机视觉、多媒体
  • 数据库和大规模数据处理
  • 万维网
  • 自然语言处理和语音
  • 人机交互
  • 软件工程

现在要讨论的是,有没有一个项目,其中要用到所有领域的知识。

首先是所有项目都要用到的,编程语言、算法与数据结构、软件工程。没有编程语言不能写代码,稍微上档次的项目都会用到各种专用或通用算法与各种简单或复杂的数据结构,而实现一个大项目总会用到软件工程的知识。

然后从CS的实践领域中挑选出本科生应该掌握的课程:操作系统、计算机网络、Web、编译原理、计算机图形学、编译原理、数据库、汇编、密码学,附赠一个数据挖掘。

把课程与项目联想起来:

操作系统    ---- 写一个操作系统

编译原理    ---- 写一个语言

计算机网络 ---- 写一个web服务器

Web         ---- 写一个网站

图形学       ---- 一个跟图像处理有关的项目

数据库       ---- 写一个数据库

汇编          ---- 用汇编写点东西

密码学       ---- 写一个加密系统

可见除了汇编与图形学不好找项目外,其他科目都可以找到一个最终任务。

现在问题就来了,数据挖掘哪家强?

不对,问题是怎样用一个项目去覆盖这些科目。

当我们要实现一个数据库系统时,我们要设计SQL语言,这与编译原理的知识可以互动。

而我们实现web服务器时,也需要设计一个网站,而这个网站如果能用自己设计的语言来写就更好了。

在实现操作系统的时候,用到汇编。

关于图形学,我能想到的最好的项目时开发一个游戏。而且是网络游戏,这样会用到计算机网络的知识,而客户端与服务器之间的通信要用到密码学,玩家的游戏数据又可以用来玩数据挖掘。

综合以上,覆盖所有科目的项目就是:自己用汇编知识以及C语言写一个操作系统,然后为这个系统开发一门专用的语言,并用图形学与计算机网络的知识制作一个该操作系统上的网络游戏,游戏客户端与服务器之间的通信要用密码学知识加密,玩家的数据储存在自己实现的数据库系统上,实现一个web服务器并用自己开发的语言编写一个网站作为游戏的官网,最后把游戏玩家的数据用来数据挖掘。

一个项目覆盖CS所有课程的可行性探究的更多相关文章

  1. 一个项目涉及到的50个Sql语句(整理版)

    /* 标题:一个项目涉及到的50个Sql语句(整理版) 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句. */ --1.学生表Student(S,Sname,Sage,Sse ...

  2. eclipse中将一个项目作为library导入另一个项目中

    1. github上搜索viewpagerIndicator: https://github.com/JakeWharton/ViewPagerIndicator2. 下载zip包,解压,eclips ...

  3. kraken-ejs创建一个项目【学习札记】

    Keep in Touch. 保持联络. Who’s calling? 是哪一位? You did right. 你做得对. You set me up! 你出卖我! kraken-express-e ...

  4. [Asp.Net]最近一个项目的总结

    引言 项目到目前告一段落,目前进入测试阶段,下周就要去部署了.虽然项目不大,但是从头到尾都是自己一个人负责,在完成编码之后,对代码进行走查,命名规范,业务逻辑,代码优化等,能负责一个项目的整个编码,非 ...

  5. vs2010 C# 如何将类做成DLL 再从另一个项目中使用这个类

    vs2010 C# 如何将类做成DLL 再从另一个项目中使用这个类 2011-10-20 12:00 486人阅读 评论(0) 收藏 举报 一.将类做成DLL 方法一: 你可以通过在命令行下用命令将以 ...

  6. Android之通过配置Flavor实现一个项目打包成多个apk

    最近我老大问我一个问题,说Android可不可以像iOS那样,通过target对项目进行管理啊.老大提这个问题也是正常的,我公司的主要是帮别的公司做硬件定制的,每定制一个硬件就要定制一个APP,但是很 ...

  7. 今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的解决了这个问题。

    今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的 ...

  8. .Net·如何快速上手一个项目?

    阅文时长 | 0.61分钟 字数统计 | 1029.6字符 主要内容 | 1.引言&背景 2.步入正题,如何快速上手一个项目? 3.声明与参考资料 『.Net·如何快速上手一个项目?』 编写人 ...

  9. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(下)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(下) 上篇 我们已经成功引入 element-ui.axios.mock.iconfont.nprogress,本篇继续 ...

随机推荐

  1. eclipse代码格式化

    今天想要改变Eclipse的代码颜色和背景等等,如果一项一项来,太麻烦了,于是从网上找了个epf文件,但是一开始不知道怎么弄,因为自己是个新手, 对于编译环境不太熟悉,后来找到方法,就是打开Eclip ...

  2. Oracle.ManagedDataAccess.Client注意事项

    OracleConnection m_DbConnection = new OracleConnection(connectionString); if (m_DbConnection.State = ...

  3. [HDU 1565+1569] 方格取数

    HDU 1565 方格取数(1) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  4. FZU 2092 收集水晶 dp+bfs

    定义dp[t][x1][y1][x2][y2]为在t时刻,人走到x1,y1,影子走到x2,y2所获得最大价值 最终就是所有的dp[max][..][..][..][..]的最大值 然后递推也很自然,枚 ...

  5. LightOJ 1074 Extended Traffic SPFA 消负环

    分析:一看就是求最短路,然后用dij,果断错了一发,发现是3次方,有可能会出现负环 然后用spfa判负环,然后标记负环所有可达的点,被标记的点答案都是“?” #include<cstdio> ...

  6. [Tommas] Web测试中,各类web控件测试点总结

    一 .界面检查 进入一个页面测试,首先是检查title,页面排版,字段等,而不是马上进入文本框校验 1.页面名称title是否正确 2.当前位置是否可见  您的位置:xxx>xxxx 3.文字格 ...

  7. 【libsvm学习】

    参考: http://www.cnblogs.com/bigshuai/articles/2883256.html http://www.cnblogs.com/tornadomeet/archive ...

  8. win7下的vxworks总结

    在visualbox下运行vxworks 先来看一张效果图: 在tornado端 成功运行第一个程序,输出了visualbox can run the vxworks ! 在vmware下的速度快多了 ...

  9. NOIP2002 字串变换

    题二 字串变换 (存盘名: NOIPG2) [问题描述]: 已知有两个字串 A$, B$ 及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ -> B2$ 规则的含义为: ...

  10. 使用yum和iso镜像离线升级RedHat系统

    创建一个用于挂载iso镜像的目录.由于这个目录不能在挂载时自动创建,所以需要以root身份先创建一个目录.命令: mkdir mount_dir 以root身份把iso镜像挂载到上一步创建的目录上.命 ...