# CS571 Building UI (React & React Native)

## 课程简介

- 所属大学：威斯康星大学麦迪逊分校（University of Wisconsin, Madison）
- 先修要求：CS400（高级 Java，但个人觉得先修不必要，掌握至少一门编程语言即可）
- 编程语言：JavaScript/HTML/CSS
- 课程难度：🌟🌟🌟
- 预计学时：每周 2 小时（讲座）+ 每周 4–10 小时（作业），持续 12 周

该课程提供了 React 前端开发和 React Native 移动端开发的最佳实践介绍，完整的同时又提纲挈领。采用 React 和 React Native 的最新版本，课程网站每学期都会更新。对于各门工具迭出的前端开发难能可贵。

同时，该课程也提供了很好的训练机会。在整个学期中，需要为较大作业量做好准备。作业所涉及的技术和知识点会在课上讲解，但不会手把手写代码（个人认为手把手写代码效率非常低，而 Udemy 上多为此类型）。由于不是保姆级课程，如果写作业时对于 React 的某些功能不确定怎么写，建议在动手之前多花些时间仔细阅读 [react.dev](https://react.dev/reference/react) 上的相关章节。作业的 starter code 提供的训练起点也恰好合适，不用为配 Node.js 环境伤脑筋。

尽管这门课程不要求预先会 Javascript/HTML/CSS，课堂上对 syntax 的介绍比较有限，建议学习和写码遇到语法问题时勤查勤问。

此外，本课程还对 Google 旗下的 ChatBot 开发工具 Dialog Flow 有较为深入的介绍和练习。还对 UX Design 的实用原则和技术有所讲解。

所有课程资料和作业都是开源的，但你需要向授课教师 Cole Nelson (ctnelson2@wisc.edu) 发送电子邮件以获取 X-CS571-ID。该 ID 是向 API 发送 request 必需。在发送邮件时，建议附上自我介绍。目前还不清楚老师是否愿意给所有人提供ID，如果老师表示无法分享，请[在 GitHub repo 里提一个 issue](https://github.com/PKUFlyingPig/cs-self-learning/issues/new/choose)。

## 课程资源

- 课程网站：<https://cs571.org>
- 课程视频：请参考课程网站上标有“R”的链接
- 课程作业：请参考课程网站上的相关信息