大学新生研讨课报告

最后更新于

本文系笔者大学新生研讨课报告。六次新生研讨课分别讨论了人工智能、算法、大数据、信息素养等时下热门主题,结合笔者上课所学以及平日了解,写下这篇报告。

1.1 引言

笔者今年步入大一,参加了几场新生研讨课,分板块讲解了笔者所在专业需要学习深入的领域,特撰写此报告。本报告完全原创,如有雷同,纯属巧合。

2.1 人工智能

人工智能第一次走入笔者的视野,应该就是大名鼎鼎的棋手李世石与 Google Alpha Go 的较量,紧接着是柯洁、国际象棋大师等人的较量,这些都是笔者在初、高中时期看到的,当时笔者对人工智能的印象就是:人工智能是一个可以和人类进行较量的东西,而且人工智能的智能程度已经超过了人类。

2.1.1 前沿进展

目前,人工智能已在很多领域有了突破,根据笔者的了解,列举如下:

  • 可繁殖机器人
  • 可自主作画(Novel AI)
  • 可自主写作(GPT-3)
  • 可自主翻译(Google Translate)
  • 可自主驾驶(Tesla)
  • 可自主识别(Face++)
  • 可自主学习(AlphaGo)
  • 可自主游戏(Dota2)
  • 可自主创作(Deep Dream)

可以预见的是,几乎所有重复、有规律的工作都将被人工智能取代,这将会给人类带来很大的改变。

2.1.2 如何看待人工智能

笔者认为,一味的排挤,抑或是过度的依赖,都是偏激的做法。原因如下:

  • 人工智能并不会造成就业机会的减少,事实上,人工智能反而催生了更多职业。
  • 人工智能并非想象中的可靠。在最近热播的电视剧《爱,死亡与机器人》一集中,失控的机器人成为了女主人公的噩梦。这也是笔者认为,人工智能的发展应该是有监管的,而不是一味的放任自流的原因。
  • 人工智能还有很长的路要走。

正如电的出现到普及一样,必然会触动某些人的利益,但是,电的出现,也带来了很多的便利,比如:电视、电脑、电灯等等。同时创造了大量新的就业机会:电工、变电厂等等。

同样地,人工智能的出现,也会带来很多的便利,比如:智能家居、智能手机、智能汽车等等。人工智能的出现,也会带来很多的职业,比如:人工智能工程师、人工智能研究员、人工智能设计师等等。

2.2 算法

笔者三年多的编程经历中,用到算法的场景相当多。

例如,笔者开发本人的博客系统时,涉及到一个日期排序功能,其实就是冒泡算法。而一些初级前端程序员在开发时,可能会觉得算法并不是必修课,但其实业务中经常可以用到一些简单的算法,比如:二分查找、快速排序等等,只是开发人员没有意识到运用了某种算法,甚至可能造成不优雅的代码出现。

2.2.1 数据结构

课上谈到了数据与程序的关系。笔者认为,只有理清数据结构,才能洞悉问题本质,写出高效的算法。

  • 数组
  • 二叉树
  • 链表

说到算法,很多人会联想起数学。编程界有一句很出名的话:”数学不一定能让你成为更好的程序员,但是能让你多一个解决问题的办法。"

2.3 大数据

大数据是指,通过分析海量数据,从中发现有价值的信息,从而改善决策和业务的过程。而我们常说的数据分析,就是大数据的一种。

大数据的应用场景有很多,比如:电商、医疗、金融、教育等等。

大数据的发展,是一个漫长的过程。从最早的数据采集,到数据存储,再到数据分析,最后到数据挖掘,并服务于产品,其中涉及了很多人事、技术。

2.3.1 利弊

任何事物都有两面性。笔者个人十分反感成为大数据的“养料”,例如,让淘宝洞悉笔者的购买偏好,抑或是让知乎了解笔者最感兴趣的领域。并且,当一种技术可以带来利益时,往往就会偏离其本身的初衷。

当互联网的一切都被卷入大数据的洪流中时,再讲隐私,恐怕只能是天方夜谭。

2.4 信息素养

课上教授谈到了数据库检索。数据库从 Web 1.0 时代诞生伊始,至今依然广泛应用在科研、教学、医学领域中。广义的数据库可以指为网站、APP 或小程序等互联网服务存储数据的一种信息容器,狭义的数据库则是存储文献、论文、书籍等信息的虚拟媒介。

在课上教授重点谈了如何主动获取,包括一些常用数据库、电子图书馆使用等,但是未提及如何被动接受信息。笔者认为,信息素养不止包括如何检索信息。在当今滚滚的信息洪流中,我们便面临两个最重要的问题:

  • 如何主动获取信息
  • 如何被动接收信息
  • 如何利用、转化接收的信息

2.4.1 如何接受信息

事实上,从古到今,人类都一直在被动地接收信息,但是如今面对的信息量确却是空前地庞大。关于如何正确地被动接受信息,笔者曾在一篇博客文章中探讨了信息工作流,有兴趣的读者可以阅读,此处不赘述。

2.4.2 如何利用、转化接收的信息

关于这个话题,笔者也在另一篇博客文章中详细探讨了自己的信息处理工作流,摘录如下:

2.5 操作系统

要理解操作系统,一个核心理念是:计算机是由硬件和软件组成的

为了驱动、调度硬件,并提供一个易于人类操作的交互方式,我们研发了操作系统。常见的操作系统有 Linux、macOS、Windows 等,以及移动端的 Android、iOS 等。另外,电梯、智能家居等硬件内则安装了称为嵌入式系统的 OS。

关于操作系统,笔者联想起曾经折腾过的一块随身 Wi-Fi。那是一个外接了扩展电路板的随身 Wi-Fi。尽管没有显示器、没有键盘、没有"显卡",其实也搭载了 Linux 的发行版 Debian。这澄清了一个很常见的误区:即电脑一定要由显示器、机箱等等。

现代操作系统是一个复杂的大型软件。包括线程调度、磁盘管理、(针对移动设备的)电源调度等。

操作系统是人机交互的革命。

2.6 软件开发

软件开发的本质是什么?笔者认为其本质是设计一套解决问题的流程。很多初级开发者喜欢追求技术,但我们要站到更高的角度看整个流程,把精力集中到架构设计、利弊权衡等上去。这背后的理念其实就是"产品思维",把整个软件看作产品(凡是能解决问题的产物都可以叫"产品")。

另一个很重要的思想就是,把语言看作工具。

软件开发也与木工有很大的相似之处,开发者需要提前设计架构,准备材料,尝试不同的组装方式,测试其稳定性...有时又要坐的住冷板凳,学会把软件与自己分离,好投身到下一个项目中去。

2.6.1 软件开发的乐趣

《人月神话》对软件开发的乐趣有一段精彩的阐述:“这种快乐是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到快乐一样”。程序员多是喜欢自己动手创建事物的人,而软件开发赋予了他们最大的自由。

3.1 总结

新生研讨课作为笔者专业的“入门课”,对专业有了大致的了解,为以后的学习指明了方向,也了解到了计算机领域的前沿进展。

而新生研讨课带来的更深层意义在于,学习是永无止境的。任何领域都有学不完的知识,在不断地学习中,你会逐渐意识到自己的无知,而这种无知又反过来激励你不断学习。