Compare commits

...

4 Commits

Author SHA1 Message Date
YJMSTR af2d5a2fde
Merge c792ae7215 into d750f063e5 2024-05-08 13:51:40 +08:00
KEMU XU d750f063e5
[COURSE] Add MIT 6.092: Introduction To Programming In Java (#610)
* update the MIT 6.092: Introduction To Programming In Java course for Java programming in Programming Language section.

* update related information on docs/CS学习规划.en.md and docs/CS学习规划.md

* fixes are made based on suggestions
2024-05-08 11:47:55 +08:00
pyjmstr@gmail.com c792ae7215 add YSYX_en.md 2024-04-15 09:29:33 +08:00
pyjmstr@gmail.com f3ef96d85b [COURSE] add 体系结构/一生一芯 2024-03-05 14:06:01 +08:00
7 changed files with 133 additions and 0 deletions

View File

@ -146,6 +146,10 @@ As a computer science student, I often hear arguments about the uselessness of m
- [MIT-Missing-Semester](编程入门/MIT-Missing-Semester.md)
- [Harvard CS50: This is CS50x](编程入门/C/CS50.md)
#### Java
- [MIT 6.092: Introduction To Programming In Java](编程入门/Java/MIT%206.092.md)
#### Python
- [CS50P: CS50's Introduction to Programming with Python](编程入门/Python/CS50P.md)

View File

@ -146,6 +146,10 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
- [MIT-Missing-Semester](编程入门/MIT-Missing-Semester.md)
- [Harvard CS50: This is CS50x](编程入门/C/CS50.md)
#### Java
- [MIT 6.092: Introduction To Programming In Java](编程入门/Java/MIT%206.092.md)
#### Python
- [CS50P: CS50's Introduction to Programming with Python](编程入门/Python/CS50P.md)

22
docs/体系结构/YSYX.md Normal file
View File

@ -0,0 +1,22 @@
# 课程名称: 一生一芯
## 课程简介
- 所属大学:中国科学院大学/中国科学院计算技术研究所
- 先修要求:无
- 编程语言C、C++、以及 Verilog 或 Chisel 等 RTL
- 课程难度:🌟🌟🌟🌟🌟🌟
- 预计学时200+ 小时
这门课将从 C 语言基础和数字电路基础开始,一步步引导你先实现一个能够运行超级玛丽的 RISC-V 指令集模拟器 NEMU并在这个模拟器的辅助下完成你的处理器芯片设计在自己设计的 CPU 上运行 RT-Thread 甚至 Linux 系统。
无论你来自哪个学校,哪个专业,只需要在官网进行报名,你就可以免费加入这一项目;并且若你是在校生且达成了项目组要求的流片指标,项目组将会为你免费流片,让你带着自己设计的芯片毕业!
更多有关该项目的介绍可以见一生一芯项目官网的“项目概述”页面https://ysyx.oscc.cc/project/intro.html.
## 课程资源
- 课程网站ysyx.oscc.cc
- 课程视频B 站 “一生一芯-视频号”https://space.bilibili.com/2107852263
- 课程教材:见 ysyx.oscc.cc
- 课程作业:见 ysyx.oscc.cc

View File

@ -0,0 +1,33 @@
# Course Code: One Student One Chip
## Descriptions
- Offered by: UCAS/ISCAS
- Prerequisites: None
- Programming Languages: C, C++, Verilog, Chisel
- Difficulty: 🌟🌟🌟🌟🌟🌟
- Class Hour: 200+h
<!--
Introduce the course in a paragraph or two, including but not limited to:
(1) The technical knowledge covered in lectures
(2) Its differences and features compared to similar courses
(3) Your personal experiences and feelings after studying this course
(4) Caveats about studying this course on your own (pitfalls, difficulty warnings, etc.)
(5) ... ...
-->
This course will begin with the basics of the C programming language and digital circuit fundamentals, guiding you step-by-step to first implement a RISC-V instruction set simulator named NEMU that can run Super Mario, and then assist you in completing your processor chip design on this simulator, ultimately running the RT-Thread or even a Linux system on your custom-designed CPU.
Regardless of which school or major you come from, simply by registering on the official website, you can join this project for free; and if you are an undergraduate student who meets the project team's requirements for tape-out metrics, the team will provide free tape-out services for you, allowing you to graduate with a chip designed by yourself!
For more information about this project, please refer to the "Project Overview" page on the One-Chip Project official website: https://ysyx.oscc.cc/project/intro.html.
## Course Resources
- Course Website: ysyx.oscc.cc
- Recordings: https://space.bilibili.com/2107852263
- Textbooks: ysyx.oscc.cc
- Assignments: ysyx.oscc.cc

View File

@ -0,0 +1,33 @@
# MIT 6.092: Introduction To Programming In Java
## Descriptions
- Offered by: MIT
- Prerequisites: None
- Programming Languages: Java
- Difficulty: 🌟🌟
- Class Hour: less than 15 hours
MIT's Java introductory course is suitable for beginners with no programming background. Each session consists of one hour of lecture (knowledge explanation) and one hour of lab (code practice), with a total of seven sessions. Although it's a fourteen-hour course, the learning process is fast, and you can complete it in about a day. It feels quite manageable for beginners.
The course content includes:
1. Rapid introduction to fundamental concepts needed for Java: the Java compilation principle, the classic "Hello world" code, and the eight primitive types in the first session.
2. How to maintain good code style: emphasizing naming conventions, indentation, and proper use of spaces in the third session.
3. Debugging techniques: Using Eclipse warnings, assertions in the sixth session, and handling exceptions in the seventh session.
The assignments in the lab are not very difficult, and many of them are discussed in the following lecture after each lab session. The key point to note is that coding is a skill that requires practical experience. For beginners, the most important aspect of learning to code is to practice and write code regularly, whether in lectures or lab sessions.
For those who want to advance after completing this course, you can consider studying [MIT 6.005/6.031](../../软件工程/6031.en.md).
## Course Resources
- Course Website: [Winter 2010](https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/syllabus/)
- Textbooks: [How to Think Like a Computer Scientist](https://greenteapress.com/wp/think-java/)
- Assignments: <https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/assignments/>
## Personal Resources
All the resources and assignments used by @SinanTang are maintained in [SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets - GitHub](https://github.com/SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets).
All the resources and assignments used by @sirrice are maintained in [sirrice/6092 - GitHub](https://github.com/sirrice/6092).

View File

@ -0,0 +1,33 @@
# MIT 6.092: Introduction To Programming In Java
## 课程简介
- 所属大学MIT
- 先修要求:无
- 编程语言Java
- 课程难度:🌟🌟
- 预计学时:少于 15 小时
MIT 的 Java 入门课程,不需要有任何编程基础也可以开始学习。一节课是一小时 Lec (知识点讲解)+一小时 Lab (代码训练),整个课程是七节课。虽说是十四个小时的课时,真正学起来却很快,一天其实差不多就能结束。感觉是比较适合新手上手的强度。
课程内容包括了:
1. 快速入门 Java 所需的基础知识概念,如第一节课的 Java 编译原理、经典代码 "Hello world" 、八大基础类型等。
2. 如何拥有良好的代码风格,如第三节课强调的命名规范、缩进、空格使用等。
3. 如何 Debug :第六节课的使用 Eclipse warning, Assertion 和第七节课的 Exception 等。
Lab 的 Assignment 倒不是很难,很多前一节课的 Assignment 后一节课 Lec 上就会讲到。唯一需要注意的就是代码是一个很注重实践的技能,新手入门写代码最重要的就是多写多练,无论是 Lec 还是 Lab 上的代码都不要偷懒不写。
学完这门课想要进阶的可以学习 [MIT 6.005/6.031](../../软件工程/6031.md) 。
## 课程资源
- 课程网站:[Winter 2010](https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/syllabus/)
- 课程教材:[How to Think Like a Computer Scientist - 如何像计算机科学家一样思考](https://greenteapress.com/wp/think-java/)
- 课程作业:<https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/assignments/>
## 资源汇总
@SinanTang 在学习这门课中用到的所有资源和作业实现都汇总在 [SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets - GitHub](https://github.com/SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets) 中。
@sirrice 在学习这门课中用到的所有资源和作业实现都汇总在 [sirrice/6092 - GitHub](https://github.com/sirrice/6092) 中。

View File

@ -83,6 +83,7 @@ plugins:
数学进阶: Advanced Mathematics
编程入门: Fundamental Programming
Python 语言: Python Language
Java 语言Java Language
C 语言: C Language
C++ 语言: C++ Language
Rust 语言: Rust Language
@ -174,6 +175,8 @@ nav:
- "AmirKabir University of Technology AP1400-2: Advanced Programming": "编程入门/cpp/AUT1400.md"
- "Stanford CS106L: Standard C++ Programming": "编程入门/cpp/CS106L.md"
- "Stanford CS106B/X": "编程入门/cpp/CS106B_CS106X.md"
- Java 语言:
- "MIT 6.092: Introduction To Programming In Java": "编程入门/Java/MIT 6.092.md"
- Rust 语言:
- "Stanford CS110L: Safety in Systems Programming": "编程入门/Rust/CS110L.md"
- "KAIST CS431: Concurrent Programming": "编程入门/Rust/cs431.md"
@ -202,6 +205,7 @@ nav:
- "UCB CS61C: Great Ideas in Computer Architecture": "体系结构/CS61C.md"
- "ETHz: Digital Design and Computer Architecture": "体系结构/DDCA.md"
- "ETHz: Computer Architecture": "体系结构/CA.md"
- "UCAS: 一生一芯": "体系结构/YSYX.md"
- 操作系统:
- "MIT 6.S081: Operating System Engineering": "操作系统/MIT6.S081.md"
- "UCB CS162: Operating System": "操作系统/CS162.md"