From 70eb2d81ac89d4c97518dfad10bf91467a2ab847 Mon Sep 17 00:00:00 2001 From: <> Date: Fri, 15 Dec 2023 05:45:54 +0000 Subject: [PATCH] Deployed f5ef84aa with MkDocs version: 1.5.3 --- en/人工智能/CS188/index.html | 2 +- en/必学工具/Docker/index.html | 2 +- en/必学工具/GNU_Make/index.html | 2 +- search/search_index.json | 2 +- sitemap.xml.gz | Bin 4497 -> 4497 bytes 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/en/人工智能/CS188/index.html b/en/人工智能/CS188/index.html index ff1e8c18..2674ce23 100644 --- a/en/人工智能/CS188/index.html +++ b/en/人工智能/CS188/index.html @@ -1,4 +1,4 @@ - UCB CS188: Introduction to Artificial Intelligence - csdiy.wiki
Skip to content

CS188: Introduction to Artificial Intelligence

课程简介

  • 所属大学:UC Berkeley
  • 先修要求:CS70
  • 编程语言:Python
  • 课程难度:🌟🌟🌟
  • 预计学时:50 小时

伯克利的人工智能入门课,课程 notes 写得非常深入浅出,基本不需要观看课程视频。课程内容的安排基本按照人工智能的经典教材 Artificial intelligence: A Modern Approach 的章节顺序,覆盖了搜索剪枝、约束满足问题、马尔可夫决策过程、强化学习、贝叶斯网络、隐马尔可夫模型以及基础的机器学习和神经网络的相关内容。

2018年秋季学期的版本免费开放了 gradescope,大家可以在线完成书面作业并实时得到测评结果。同时课程的 6 个 Project 也是质量爆炸,复现了经典的 Packman(吃豆人)小游戏,会让你利用学到的 AI 知识,去实现相关算法,让你的吃豆人在迷宫里自由穿梭,躲避鬼怪,收集豆子。

课程资源

  • 课程网站:Fall 2022Fall 2018
  • 课程视频:Fall 2022Fall 2018,每节课的链接详见课程网站
  • 课程教材:Artificial intelligence: A Modern Approach
  • 课程作业:在线测评书面作业和 Projects,详见课程网站

CS188: Introduction to Artificial Intelligence

Course Overview

  • University:UC Berkeley
  • Prerequisites:CS70
  • Programming Language:Python
  • Course Difficulty:🌟🌟🌟
  • Estimated Hours:50 hours

This introductory artificial intelligence course at UC Berkeley provides in-depth and accessible course notes, making it possible to grasp the material without necessarily watching the lecture videos. The course follows the chapters of the classic AI textbook Artificial Intelligence: A Modern Approach, covering topics such as search pruning, constraint satisfaction problems, Markov decision processes, reinforcement learning, Bayesian networks, Hidden Markov Models, as well as fundamental concepts in machine learning and neural networks.

The Fall 2018 version of the course offered free access to gradescope, allowing students to complete written assignments online and receive real-time assessment results. The course also includes 6 projects of high quality, featuring the recreation of the classic Pac-Man game. These projects challenge students to apply their AI knowledge to implement various algorithms, enabling their Pac-Man to navigate mazes, evade ghosts, and collect pellets.

Course Resources

  • Course Websites:Fall 2022, Fall 2018
  • Course Videos:Fall 2022, Fall 2018, with links to each lecture on the course website
  • Course Textbook:Artificial intelligence: A Modern Approach
  • Course Assignments:Online assessments for written assignments and projects, details available on the course website

Docker

为什么使用 Docker

使用别人写好的软件/工具最大的障碍是什么——必然是配环境。配环境带来的折磨会极大地消解你对软件、编程本身的兴趣。虚拟机可以解决配环境的一部分问题,但它庞大笨重,且为了某个应用的环境配置好像也不值得模拟一个全新的操作系统。

Docker 的出现让环境配置变得(或许)不再折磨。简单来说 Docker 使用轻量级的“容器”(container)而不是整个操作系统去支持一个应用的配置。应用自身连同它的环境配置被打包为一个个 image 可以自由运行在不同平台的一个个 container 中,这极大地节省了所有人的时间成本。

如何学习 Docker

Docker 官方文档当然是最好的初学教材,但最好的导师一定是你自己——尝试去使用 Docker 才能享受它带来的便利。Docker 在工业界发展迅猛并已经非常成熟,你可以下载它的桌面端并使用图形界面。

当然,如果你像我一样,是一个疯狂的造轮子爱好者,那不妨自己亲手写一个迷你 Docker 来加深理解。

KodeKloud Docker for the Absolute Beginner 全面的介绍了 Docker 的基础功能,并且有大量的配套练习,同时提供免费的云环境来完成练习。其余的云相关的课程如 Kubernetes 需要付费,但个人强烈推荐:讲解非常仔细,适合从 0 开始的新手;有配套的 Kubernetes 的实验环境,不用被搭建环境劝退。

Docker

Why Docker

The main obstacle when using software/tools developed by others is often the hassle of setting up the environment. This configuration headache can significantly dampen your enthusiasm for software and programming. While virtual machines can solve some of these issues, they are cumbersome and might not be worth simulating an entire operating system for a single application's configuration.

Docker has changed the game by making environment configuration (potentially) less painful. In essence, Docker uses lightweight "containers" instead of an entire operating system to support an application's configuration. Applications, along with their environment configurations, are packaged into images that can freely run on different platforms in containers, saving considerable time and effort for everyone.

How to learn Docker

The official Docker documentation is the best starting point, but the best teacher is often yourself—try using Docker to experience its convenience. Docker has rapidly developed in the industry and is already quite mature. You can download its desktop version and use the graphical interface.

If you're like me, reinventing the wheel, consider building a Mini Docker yourself to deepen your understanding.

KodeKloud Docker for the Absolute Beginner offers a comprehensive introduction to Docker's basic functionalities with numerous hands-on exercises. It also provides a free cloud environment for practice. While other cloud-related courses, such as Kubernetes, may require payment, I highly recommend them. The explanations are detailed, suitable for beginners, and come with a corresponding Kubernetes lab environment, eliminating the need for complex setups.

GNU Make

为什么学 GNU Make

大家第一次写 hello world 程序的时候一定都记得,在编辑完 helloworld.c 之后,需要用 gcc 编译生成可执行文件,然后再执行(如果你不理解前面这段话,请先自行谷歌 gcc 编译 并理解相关内容)。但如果你的项目由成百上千个 C 源文件组成,并且星罗棋布在各个子目录下,你该如何将它们编译链接到一起呢?假如你的项目编译一次需要半个小时(大型项目相当常见),而你只修改了一个分号,是不是还需要再等半个小时呢?

这时候 GNU Make 就闪亮登场了,它能让你在一个脚本里(即所谓的 Makefile)定义整个编译流程以及各个目标文件与源文件之间的依赖关系,并且只重新编译你的修改会影响到的部分,从而降低编译的时间。

如何学习 GNU Make

这里有一篇写得深入浅出的文档供大家参考。

GNU Make 掌握起来相对容易,但用好它需要不断的练习。将它融入到自己的日常开发中,勤于学习和模仿其他优秀开源项目里的 Makefile 的写法,总结出适合自己的 template,久而久之,你对 GNU Make 的使用会愈加纯熟。

GNU Make

Why GNU Make

Everyone remembers their first "hello world" program. After editing helloworld.c, you needed to use gcc to compile and generate an executable file, and then execute it. (If you're not familiar with this, please Google gcc compilation and understand the related content first.) However, what if your project consists of hundreds of C source files scattered across various subdirectories? How do you compile and link them together? Imagine if your project takes half an hour to compile (quite common for large projects), and you only changed a semicolon—would you want to wait another half an hour?

This is where GNU Make comes to the rescue. It allows you to define the entire compilation process and the dependencies between target files and source files in a script (known as a Makefile). It only recompiles the parts affected by your changes, significantly reducing compilation time.

How to learn GNU Make

Here is a well-written [document] (https://seisman.github.io/how-to-write-makefile/overview.html) for in-depth and accessible understanding.

Mastering GNU Make is relatively easy, but using it effectively requires continuous practice. Integrate it into your daily development routine, be diligent in learning, and mimic the Makefile styles from other excellent open-source projects. Develop your own template that suits your needs, and over time, you will become more proficient in using GNU Make.