NekoBytes-CS-001: CStart
课程概述
您好 👋,欢迎来到 计科协 | NekoBytes-CS-001: 计算机入门导引!这是我们的编程入门系列中的第一门课程。NekoBytes-CS-001 将让您熟悉 C 编程语言,介绍计算机科学与技术中的常见主题,包括抽象、算法、体系结构、人工智能、嵌入式开发和计算机系统,并练习应用工具来解决复杂问题。
日程表
周次 | 日期 | 讲座 | 实验 | 项目 |
---|---|---|---|---|
0 | 09/21 | 0. 编程环境搭建 Slide / Recording / Note | No lab | No Project |
1 | 09/28 | 1. Unix 与 C Slide / Recording / Note / Code | Lab1: Unix 与 C | No Project |
2 | 10/05 | 假期休息 | No lab | No Project |
3 | 10/12 | 2. C 语言基础语法 Slide / Recording / Note / Code | Lab2: C 语言基础语法 | No Project |
4 | 10/19 | 3. 计算机的硬件视角 Slide / Recording / Note / Code | Lab3: 体验嵌入式 | No Project |
5 | 10/26 | 4. 算法导论 Slide / Recording / Note / Code | Lab4: 算法入门 | No Project |
6 | 11/02 | 5. 指针与动态分配 Slide / Recording / Note / Code | Lab5: 祖玛 | Proj1: MyMalloc |
7 | 11/09 | 6. C 语言项目实现 Slide / Recording / Note / Code | Lab6: 使用工具 | Proj2: Snake |
8 | 11/16 | 7. C 语言与 Unix 系统编程 | No lab | No Project |
9 | 11/23 | 8. 人工智能导论 | No lab | No Project |
10 | 11/30 | 9. 嵌入式编程导论 | No lab | No Project |
11 | 12/07 | 10. 函数式编程与解释器 | No lab | No Project |
12 | 12/14 | 11. 总结 | No lab | No Project |
课程主题
我们计划的课程将按大致顺序涵盖以下主题:
- 提问的艺术
- C 语言基本知识
- Unix CLI 介绍
- 计算机程序的硬件视角
- 抽象
- 算法概论
- 指针、数组与内存动态分配
- C 语言开发工具
- 程序的预处理、编译、链接
- 人工智能、机器学习与深度学习
- 嵌入式开发
- Unix 系统编程
学习目标
完成 NekoBytes-CS-001 后,我们希望你能够实现以下学习目标:
- 能够使用编程来解决在课外遇到的现实问题。
- 认识并理解计算机科学中常见的抽象概念。
- 可以识别日常技术中存在的编程概念,了解计算机如何处理和组织信息。
- 可以使用类 Unix 操作系统完成日常任务。
选读
可供参考的学习材料:
- 【计算机科学速成课】[40 集全 / 精校] - Crash Course Computer Science
- Stephen Prata. C Primer Plus.ISBN 9787115390592.
- Linux C 编程一站式学习
- The C programming language (2nd Edition): 真正的 C 语言之父是这本书的作者 Dennis M. Ritchie, 而不是谭浩强
- C Coding Standard
- SEI CERT C Coding Standard
- Learn C the hard way 中文版
课程结构
讲座
讲座将于每周周末举行。讲座录制将发布在 Bilibili 上以供将来查看,但录制可能存在问题,因而我们希望你能够定期出席讲座。如果可行的话,所有学生都应亲自参加讲座,以便充分参与课堂讨论和其他同步活动,并掌握课程材料。我们知道这对每个学生来说都是不可能的,所以如果无法参加,我们要求你至少在下一堂课之前观看课程视频,以便您了解所有课程主题和重要公告。
关于同意记录的注意事项:摄像机位于教室后面,用于捕捉讲师的演示。这些录音可能会在互联网中被重复使用,被其他学生、教职员工查看,或用于其他教育和研究目的。虽然摄像机的放置目的是仅记录讲师,但有时可能会无意中捕获您的部分图像或声音。如有疑问,请联系教学团队成员。
阅读材料
阅读材料来自课程教科书,可在线免费获取。教科书是可选的,在有歧义的情况下,讲座是事实的主要来源。
作业
会有定期实验任务,大约每周一次。作业可能包括书面问题、工具实践练习、编码任务或更大的完整程序。作业必须单独完成。
课程工具
NekoBytes-CS-001 资源的核心来源是课程网站 hdu-cs-wiki。该网站是你获取课程材料(讲座、作业、部分、考试)以及课程信息的首选。
VSCode Config
用于 C/C++ 的 VSCode 配置文件。
📥
配置文件下载
🚧 注意
本配置会默认启用 Vim 键位,如果不需要,可以在 VSCode 插件页面找到 Vim 插件手动禁用。
Linux Setup Tools
这是一个用于初始化 Ubuntu 系统的 Bash 脚本,能够自动完成开发环境的安装与配置。脚本支持静默模式、卸载模式,并通过日志记录操作。
特性
- 自动更新系统及更换镜像源
- 支持安装常用编程工具和开发环境
- 安装并配置
oh-my-zsh
、tmux
和LunarVim
- 支持
unsnap
并安装flatpak
并配置Firefox
浏览器 - 支持静默模式和卸载功能
📥
工具下载
荣誉守则
请参考 MIT 对学术诚信的诠释,尤其是关于写代码的学术诚信。