From d707416b7e52d91764353b76c0b2cbbf9d1ed0f6 Mon Sep 17 00:00:00 2001 From: focused_xy Date: Tue, 30 Jul 2024 14:29:34 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E2=9C=A8=20feat(=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E6=A8=A1=E5=9D=97):=20=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=A4=A7=E7=BA=B2=E5=92=8C=E6=95=99=E7=A7=91=E4=B9=A6=E4=BB=8B?= =?UTF-8?q?=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.编程模块/2.1.1.Introduction.md | 22 ++++++++ 2.编程模块/2.1.NekoBytes-TheMissing.md | 65 ++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 2.编程模块/2.1.1.Introduction.md create mode 100644 2.编程模块/2.1.NekoBytes-TheMissing.md diff --git a/2.编程模块/2.1.1.Introduction.md b/2.编程模块/2.1.1.Introduction.md new file mode 100644 index 0000000..70108c5 --- /dev/null +++ b/2.编程模块/2.1.1.Introduction.md @@ -0,0 +1,22 @@ +# Introduction to Computer Science +这是 NekoBytes 计算机科学与技术协会 [NekoBytes-CS-001: Introduction to CS](2.1.NekoBytes-TheMissing.md) 的教科书。它为想要通过编写计算机程序解决复杂问题的学习者奠定强大的编程基础,通过系统学习开发算法,并阅读和编写 C 代码来实现它们,将为从事软件开发或其他计算领域的工作做好准备,并对计算机科学与技术中的常见主题进行了简短的介绍,包括抽象、算法、体系结构、人工智能、嵌入式开发和计算机系统。 + +## 你将学到什么 + +- 对计算机科学和编程有广泛而深入的理解 +- 如何用算法思考并有效解决编程问题 +- 如何开发并向同行展示最终的编程项目 +- 熟悉 C 的基本语法和编写习惯 +- 入门 Unix 命令行操作 +- GNU Make 项目构建工具,编译和链接 +- 通过单元测试和调试工具,寻找和预防 bug +- 了解人工智能的基本思想 +- 了解嵌入式开发的基本逻辑 +- 编写基本的 Unix 系统软件 +- 截至最后一章,你将会有足够的工具来解决基本的系统软件、库和其它小项目。 + +## 更正 + +截至2024年夏季,本书仍在积极维护和更新中。 + +如果您发现任何需要更正的部分,请[在此处](https://github.com/camera-2018/hdu-cs-wiki/issues)打开 Github 提交 issue。 \ No newline at end of file diff --git a/2.编程模块/2.1.NekoBytes-TheMissing.md b/2.编程模块/2.1.NekoBytes-TheMissing.md new file mode 100644 index 0000000..8573f69 --- /dev/null +++ b/2.编程模块/2.1.NekoBytes-TheMissing.md @@ -0,0 +1,65 @@ +# NekoBytes-CS-001 Syllabus +## 课程概述 +您好👋,欢迎来到 计科协|NekoBytes-CS-001: 计算机入门导引!这是我们的编程入门系列中的第一门课程。NekoBytes-CS-001 将让您熟悉 C 编程语言,介绍计算机科学与技术中的常见主题,包括抽象、算法、体系结构、人工智能、嵌入式开发和计算机系统,并练习应用工具来解决复杂问题。 + +## 课程主题 + +我们计划的课程将按大致顺序涵盖以下主题: +- 提问的艺术 +- C 语言基本知识 +- Unix CLI 介绍 +- 计算机程序的硬件视角 +- 抽象 +- 算法概论 +- 指针、数组与内存动态分配 +- C 语言开发工具 +- 程序的预处理、编译、链接 +- 人工智能、机器学习与深度学习 +- 嵌入式开发 +- Unix 系统编程 + +### 学习目标 + +完成 NekoBytes-CS-001 后,我们希望你能够实现以下学习目标: +- 能够使用编程来解决在课外遇到的现实问题。 +- 认识并理解计算机科学中常见的抽象概念。 +- 可以识别日常技术中存在的编程概念,了解计算机如何处理和组织信息。 +- 可以使用类 Unix 操作系统完成日常任务。 + +## 选读 + +可供参考的学习材料: +- [【计算机科学速成课】[40集全/精校] - Crash Course Computer Science](https://www.bilibili.com/video/BV1EW411u7th?vd_source=699341ff80cb01917fb43665199a48dd) +- Stephen Prata. C Primer Plus.ISBN 9787115390592. +- [Linux C编程一站式学习](https://akaedu.github.io/book/) +- [The C programming language (2nd Edition)](http://cslabcms.nju.edu.cn/problem_solving/images/c/cc/The_C_Programming_Language_%282nd_Edition_Ritchie_Kernighan%29.pdf): 真正的C语言之父是这本书的作者[Dennis M. Ritchie](http://en.wikipedia.org/wiki/Dennis_Ritchie), 而不是谭浩强 +- [C Coding Standard](https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html) +- [SEI CERT C Coding Standard](https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard) +- [Learn C the hard way](https://wizardforcel.gitbooks.io/lcthw/content/preface.html)中文版 + +## 课程结构 + +### 讲座 + +讲座将于每周周末举行。讲座录制将发布在 Bilibili 上以供将来查看,但录制可能存在问题,因而我们希望你能够定期出席讲座。如果可行的话,所有学生都应亲自参加讲座,以便充分参与课堂讨论和其他同步活动,并掌握课程材料。我们知道这对每个学生来说都是不可能的,所以如果无法参加,我们要求你至少在下一堂课之前观看课程视频,以便您了解所有课程主题和重要公告。 + +关于同意记录的注意事项:摄像机位于教室后面,用于捕捉讲师的演示。这些录音可能会在互联网中被重复使用,被其他学生、教职员工查看,或用于其他教育和研究目的。虽然摄像机的放置目的是仅记录讲师,但有时可能会无意中捕获您的部分图像或声音。如有疑问,请联系教学团队成员。 + +### 阅读材料 + +阅读材料来自[课程教科书](2.1.1.Introduction.md),可在线免费获取。教科书是可选的,在有歧义的情况下,讲座是事实的主要来源。 + +### 作业 + +会有定期实验任务,大约每周一次。作业可能包括书面问题、工具实践练习、编码任务或更大的完整程序。作业必须单独完成。 + +## 荣誉守则 +请参考 [MIT对学术诚信的诠释](https://integrity.mit.edu/),尤其是[关于写代码的学术诚信](http://integrity.mit.edu/handbook/writing-code)。 + +## 课程工具 +NekoBytes-CS-001 资源的核心来源是课程网站 [hdu-cs-wiki](https://hdu-cs.wiki/2.%E7%BC%96%E7%A8%8B%E6%A8%A1%E5%9D%97/2.%E7%BC%96%E7%A8%8B%E6%A8%A1%E5%9D%97)。该网站是你获取课程材料(讲座、作业、部分、考试)以及课程信息的首选。 + +### Linux Setup Tools +正在开发中 + +TODO \ No newline at end of file From 82bc26b36ca4d13b694206252b1ed5bf9b50d9d5 Mon Sep 17 00:00:00 2001 From: focused_xy Date: Tue, 30 Jul 2024 14:56:00 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=90=9E=20fix(=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E6=A8=A1=E5=9D=97):=20=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.编程模块/{2.1.1.Introduction.md => 2.1.1Introduction.md} | 2 +- .../{2.1.NekoBytes-TheMissing.md => 2.1NekoBytes-TheMissing.md} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename 2.编程模块/{2.1.1.Introduction.md => 2.1.1Introduction.md} (64%) rename 2.编程模块/{2.1.NekoBytes-TheMissing.md => 2.1NekoBytes-TheMissing.md} (95%) diff --git a/2.编程模块/2.1.1.Introduction.md b/2.编程模块/2.1.1Introduction.md similarity index 64% rename from 2.编程模块/2.1.1.Introduction.md rename to 2.编程模块/2.1.1Introduction.md index 70108c5..72366d8 100644 --- a/2.编程模块/2.1.1.Introduction.md +++ b/2.编程模块/2.1.1Introduction.md @@ -1,5 +1,5 @@ # Introduction to Computer Science -这是 NekoBytes 计算机科学与技术协会 [NekoBytes-CS-001: Introduction to CS](2.1.NekoBytes-TheMissing.md) 的教科书。它为想要通过编写计算机程序解决复杂问题的学习者奠定强大的编程基础,通过系统学习开发算法,并阅读和编写 C 代码来实现它们,将为从事软件开发或其他计算领域的工作做好准备,并对计算机科学与技术中的常见主题进行了简短的介绍,包括抽象、算法、体系结构、人工智能、嵌入式开发和计算机系统。 +这是 NekoBytes 计算机科学与技术协会 [NekoBytes-CS-001: Introduction to CS](2.1NekoBytes-TheMissing.md) 的教科书。它为想要通过编写计算机程序解决复杂问题的学习者奠定强大的编程基础,通过系统学习开发算法,并阅读和编写 C 代码来实现它们,将为从事软件开发或其他计算领域的工作做好准备,并对计算机科学与技术中的常见主题进行了简短的介绍,包括抽象、算法、体系结构、人工智能、嵌入式开发和计算机系统。 ## 你将学到什么 diff --git a/2.编程模块/2.1.NekoBytes-TheMissing.md b/2.编程模块/2.1NekoBytes-TheMissing.md similarity index 95% rename from 2.编程模块/2.1.NekoBytes-TheMissing.md rename to 2.编程模块/2.1NekoBytes-TheMissing.md index 8573f69..a224aff 100644 --- a/2.编程模块/2.1.NekoBytes-TheMissing.md +++ b/2.编程模块/2.1NekoBytes-TheMissing.md @@ -47,7 +47,7 @@ ### 阅读材料 -阅读材料来自[课程教科书](2.1.1.Introduction.md),可在线免费获取。教科书是可选的,在有歧义的情况下,讲座是事实的主要来源。 +阅读材料来自[课程教科书](2.1.1Introduction.md),可在线免费获取。教科书是可选的,在有歧义的情况下,讲座是事实的主要来源。 ### 作业 From e02b326c7cef7c5219f0aed308d49000a3119201 Mon Sep 17 00:00:00 2001 From: focused_xy Date: Tue, 30 Jul 2024 15:10:13 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=90=9E=20fix(sidebar):=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=AF=BC=E8=88=AA=E6=A0=8F=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vitepress/sidebar.js | 6 ++++-- 2.编程模块/2.1.1Introduction.md | 2 +- 2.编程模块/2.1NekoBytes-TheMissing.md | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.vitepress/sidebar.js b/.vitepress/sidebar.js index fec8ad7..63a4a1f 100644 --- a/.vitepress/sidebar.js +++ b/.vitepress/sidebar.js @@ -37,6 +37,8 @@ export function main_sidebar() { collapsed: true, items: [ { text: '2.编程模块', link: '/2.编程模块/2.编程模块' }, + { text: '2.1NekoBytes-TheMissing', link: '/2.编程模块/2.1NekoBytes-TheMissing' }, + { text: '2.1.1Introduction', link: '/2.编程模块/2.1.1Introduction' }, ] }, { @@ -548,12 +550,12 @@ function compareNumericPrefixes(a, b) { export function generateSidebarBasic(dir, excludeDir = [], maxDepth, currentDepth = 0) { - if (currentDepth >= maxDepth) + if (currentDepth >= maxDepth) console.warn("the file depth is beyond the maxium depth that your sidebar can show!"); const files = fs.readdirSync(dir); const sortedFiles = files.sort(compareNumericPrefixes); - const sidebar = + const sidebar = sortedFiles.map((file) => { const fullPath = path.join(dir, file); const stats = fs.statSync(fullPath); diff --git a/2.编程模块/2.1.1Introduction.md b/2.编程模块/2.1.1Introduction.md index 72366d8..85df015 100644 --- a/2.编程模块/2.1.1Introduction.md +++ b/2.编程模块/2.1.1Introduction.md @@ -1,5 +1,5 @@ # Introduction to Computer Science -这是 NekoBytes 计算机科学与技术协会 [NekoBytes-CS-001: Introduction to CS](2.1NekoBytes-TheMissing.md) 的教科书。它为想要通过编写计算机程序解决复杂问题的学习者奠定强大的编程基础,通过系统学习开发算法,并阅读和编写 C 代码来实现它们,将为从事软件开发或其他计算领域的工作做好准备,并对计算机科学与技术中的常见主题进行了简短的介绍,包括抽象、算法、体系结构、人工智能、嵌入式开发和计算机系统。 +这是 NekoBytes 计算机科学与技术协会 [NekoBytes-CS-001: Introduction to CS](/2.编程模块/2.1NekoBytes-TheMissing) 的教科书。它为想要通过编写计算机程序解决复杂问题的学习者奠定强大的编程基础,通过系统学习开发算法,并阅读和编写 C 代码来实现它们,将为从事软件开发或其他计算领域的工作做好准备,并对计算机科学与技术中的常见主题进行了简短的介绍,包括抽象、算法、体系结构、人工智能、嵌入式开发和计算机系统。 ## 你将学到什么 diff --git a/2.编程模块/2.1NekoBytes-TheMissing.md b/2.编程模块/2.1NekoBytes-TheMissing.md index a224aff..e310c90 100644 --- a/2.编程模块/2.1NekoBytes-TheMissing.md +++ b/2.编程模块/2.1NekoBytes-TheMissing.md @@ -47,7 +47,7 @@ ### 阅读材料 -阅读材料来自[课程教科书](2.1.1Introduction.md),可在线免费获取。教科书是可选的,在有歧义的情况下,讲座是事实的主要来源。 +阅读材料来自[课程教科书](/2.编程模块/2.1.1Introduction),可在线免费获取。教科书是可选的,在有歧义的情况下,讲座是事实的主要来源。 ### 作业 @@ -57,7 +57,7 @@ 请参考 [MIT对学术诚信的诠释](https://integrity.mit.edu/),尤其是[关于写代码的学术诚信](http://integrity.mit.edu/handbook/writing-code)。 ## 课程工具 -NekoBytes-CS-001 资源的核心来源是课程网站 [hdu-cs-wiki](https://hdu-cs.wiki/2.%E7%BC%96%E7%A8%8B%E6%A8%A1%E5%9D%97/2.%E7%BC%96%E7%A8%8B%E6%A8%A1%E5%9D%97)。该网站是你获取课程材料(讲座、作业、部分、考试)以及课程信息的首选。 +NekoBytes-CS-001 资源的核心来源是课程网站 [hdu-cs-wiki](/2.编程模块/2.编程模块)。该网站是你获取课程材料(讲座、作业、部分、考试)以及课程信息的首选。 ### Linux Setup Tools 正在开发中 From 6679dcd7d084d71ecae511be25f8dde7343fc24f Mon Sep 17 00:00:00 2001 From: camera-2018 <40380042+camera-2018@users.noreply.github.com> Date: Tue, 30 Jul 2024 16:34:09 +0800 Subject: [PATCH 4/4] choresidebar.js --- .vitepress/sidebar.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/.vitepress/sidebar.js b/.vitepress/sidebar.js index 63a4a1f..3d3971c 100644 --- a/.vitepress/sidebar.js +++ b/.vitepress/sidebar.js @@ -37,8 +37,6 @@ export function main_sidebar() { collapsed: true, items: [ { text: '2.编程模块', link: '/2.编程模块/2.编程模块' }, - { text: '2.1NekoBytes-TheMissing', link: '/2.编程模块/2.1NekoBytes-TheMissing' }, - { text: '2.1.1Introduction', link: '/2.编程模块/2.1.1Introduction' }, ] }, {