REKCARC-TSC-UHT: Tsinghua CS Course Material as a Git Repository
清华大学计算机系课程攻略 Guidance for courses in Department of Computer Science and Technology, Tsinghua University
At a glance
- What is it?
- A community-maintained archive of past exams, assignments and course notes for Tsinghua University's Department of Computer Science and Technology, published as a static site and a plain Git tree. It is useful for enrolled students and for anyone trying to read the department's actual syllabus, and it carries real constraints: no git-lfs, a 100 MB per-file ceiling, and a licence that only covers contributor-written parts.
- Who is it for?
- Adopt it if you are taking or about to take a Tsinghua CS course and want the department's past material in one tree, or if you are studying how a large Chinese CS curriculum is actually taught. Do not adopt it if you need a maintained library with versioned releases, or if you intend to redistribute the contents under your own terms.
- Can I use it commercially?
- Yes, with credit. CC-BY-SA-4.0 allows commercial use as long as you credit the authors and indicate what you changed. It is written for creative content, so check how it applies to any code.
- Is it still maintained?
- Yes. The repository last received commits 24 days ago.
- What is it written in?
- Mainly HTML, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Problem the Repository Solves, and for Whom
Course material at Tsinghua's Department of Computer Science and Technology is scattered. Slides live on a course page that may be taken down, past exams circulate in chat groups, and lab write-ups get passed between cohorts as archives with no provenance. REKCARC-TSC-UHT collects that material into one Git tree and serves it as a documentation site at rekcarc-tsc-uht.readthedocs.io. The README states the project was inspired by a related Zhejiang University project (QSCTech/zju-icicles), and that it descends from Trinkle23897/thu-cst-cracker with infringing content removed.
The audience is narrow and specific. The primary one is a Tsinghua CS student deciding which elective to take, or looking for the past papers of a course they are already enrolled in. The README addresses that reader directly, pointing Tsinghua students at a mirror on git.tsinghua.edu.cn that it says saves a considerable amount of traffic. The secondary audience is anyone outside the university who wants to see what the curriculum contains: the topic list (computer-science, course, course-assignment, course-project, tsinghua-university) and the two index files, 收录内容.md and 参考书目.md, are the entry points for that.
It is not a tutorial series and not a textbook. It is an archive with an index, and its value depends on whether the specific course you care about has been contributed to.
How the Archive Is Structured: Index Files, Git Tree and Read the Docs
The visible architecture is three layers. The Git tree on the master branch holds the raw files, organised by course. Two Markdown files act as the catalogue: 收录内容.md lists what the project covers, and 参考书目.md lists the reference books for most of the courses. The readthedocs site renders that content as browsable pages, and the README carries a Documentation Status badge pointing at the latest build, so the site is generated from the repository rather than maintained separately.
The primary language reported for the repository is HTML, which is consistent with a documentation site being the main artefact and with course pages and exported notes being stored as HTML. That matters for anyone who wants to script against the tree: you will be parsing a mix of formats rather than a uniform set of Markdown files.
The README gives one concrete retrieval path for people who do not want the whole tree: copy the URL of a single folder, paste it into DownGit, and choose download. That is the intended way to pull one course without cloning everything. There is no release artefact to fetch, and no release was retrieved for this review, so the master branch is the distribution channel.
Getting the Material: Clone, Sparse Checkout or DownGit
The README does not give a clone command, but the repository is a standard Git repository on the master branch, so the ordinary route applies: git clone https://github.com/PKUanonym/REKCARC-TSC-UHT.git. Because the tree is large and has no git-lfs, a full clone pulls every binary that has ever been committed.
For a single course, the README's documented route is DownGit: copy the folder URL from the GitHub interface, paste it into the DownGit page, and download. Git's own sparse checkout is an alternative the README does not mention, and it is the one I would reach for if you want a subset that changes over time, because it keeps the working tree connected to the remote for later pulls.
The contribution path is documented in 贡献方法.md, with issues and pull requests explicitly invited for corrections and material. Anonymous contributions are accepted by email to the address in the README, with the subject line REKCARC-TSC-UHT. There is no build step to run and no configuration file to edit; the readthedocs build is triggered from the repository, not from your machine.
The 100 MB Ceiling and the Missing git-lfs
The README is explicit that the repository does not enable git-lfs, and that a single file larger than 100 MB should not be uploaded because the commit will be invalid. This is not a style preference, it is a hard constraint on what the archive can hold. A course that ships a multi-gigabyte virtual machine image, a large dataset, or a recorded lecture video cannot be stored here in one piece. Contributors have to split the file, link out to it, or leave it out.
For a consumer of the archive, the practical consequence is that some courses will look incomplete, and the gap will not always be explained in the index. You may find a lab handout without the dataset it references. The README's warning is aimed at contributors, but it is the single most useful thing for a reader to know before concluding that a course folder is thin because the course is thin.
The second constraint is maintenance. There are no releases, so there is no version to pin. Content changes arrive as commits on master, and a folder you downloaded through DownGit is a snapshot with no upgrade path. If you need the current version, you re-download it or clone.
Licence Scope: What CC-BY-SA-4.0 Actually Covers Here
The licence section is careful in a way that is easy to skim past. It states that the licence, Creative Commons BY-SA 4.0, applies to the parts written by contributors. Other parts remain the copyright of their respective authors. The README also notes that the project inherited from an earlier repository after removing infringing content, and asks that any remaining infringement be reported in the issues.
So the repository is not uniformly licensed. A past exam paper, a slide deck, or a figure reproduced from a textbook may sit in the same folder as contributor-written notes, and the CC-BY-SA-4.0 grant does not automatically extend to it. The README's own disclaimer says the material is for reference and that you should judge its applicability yourself. If you plan to reuse anything beyond personal study, the safe move is to identify the specific file's origin rather than relying on the repository-level licence. The README also links to a deed URL whose path reads by-nc-sa while the surrounding text says BY-SA; that mismatch is worth resolving with the maintainers before you depend on either reading. This is a description of what the documents say, not legal advice.
One more thing sits in the appendix: an excerpt from Tsinghua's student disciplinary regulations, covering academic misconduct including serious plagiarism of coursework, lab reports and term papers. Its presence is a statement about intended use. The archive is meant to be read as reference, not copied into submitted work.
Where It Is the Wrong Tool, and What to Use Instead
The repository is the wrong tool if you want a course. It contains no lectures, no grading, no schedule and no instructor feedback. It is also the wrong tool if you need a stable, versioned dependency for a project: with no releases and content that shifts on master, anything you build on top of a specific file can break without a version number changing.
A real alternative is the project the README names as its inspiration, QSCTech/zju-icicles, which serves the same function for Zhejiang University. The difference is not quality but scope: the two archives cover different institutions and different curricula, so the choice is decided by which university's courses you are actually taking. If your course is at Zhejiang, the Tsinghua tree will not help, and the reverse is equally true. For a Tsinghua student, the README's own alternative is the git.tsinghua.edu.cn mirror, which serves the same content with less traffic cost.
A second alternative, for the general case, is the course's own page on the department's teaching system. That source is authoritative and current; the archive is neither. It is a convenience layer over material that originates elsewhere.
Who Should Clone It, and What to Check First
Clone it if you are enrolled in, or about to choose, a Tsinghua CS course and want past papers and notes in one place, or if you are outside the university and want to read the shape of the curriculum. Use the Tsinghua mirror if you have access to it, and use DownGit for a single course rather than pulling the whole tree.
Do not clone it if you need versioned releases, if you need the material to be uniformly licensed for redistribution, or if the file you need is likely to exceed 100 MB, because the no-git-lfs rule means it will not be there.
Before you rely on a folder, open 收录内容.md and confirm the course is listed, then check the last commit date on that folder to see whether the material predates a syllabus change. If you are reusing anything beyond personal study, trace the individual file's origin rather than trusting the repository-level licence, and read the disciplinary excerpt in the README's appendix as the boundary the maintainers have drawn around intended use.
Editorial conclusion
Adopt it if you are taking or about to take a Tsinghua CS course and want the department's past material in one tree, or if you are studying how a large Chinese CS curriculum is actually taught. Do not adopt it if you need a maintained library with versioned releases, or if you intend to redistribute the contents under your own terms. Before relying on anything, open 收录内容.md to confirm the folder you need is listed, and check whether the course has changed since the material was committed.
Community notes