雷锋网 AI 科技评论按,计算机专业的小伙伴们看过来,github 上 4000 多个 star,800 多个 fork 的计算机课程资源来啦:中国科学技术大学计算机学院课程资源。
感兴趣的同学可以访问 github 页面: https://github.com/mbinary/USTC-CS-Courses-Resource。
本仓库收录中国科学技术大学众多课程资源,包括电子版教材、参考书、讲义、试卷、学习心得、习题解答等。以计算机学院课程为主,也包含公选课、自由选修等其他课程。
其目录如下:
资料下载
FTP
1.FTP/FTPS:
地址:ftp.ustclug.org;
路径:/ebook/USTC-CS-Courses-Resource;
用户名:ftp;
密码:ftp;
2.SFTP (Secure File Transfer Protocol):
地址:ftp.ustclug.org;
路径:/ebook/USTC-CS-Courses-Resource;
用户名:ftp;
密码:ftp;
3.AFP (Apple Filing Protocol)
地址:afp://ftp.ustclug.org/;
路径:/ebook/USTC-CS-Courses-Resource;
Connect As Guest
HTTPS
FTP 快速,可以下载整个目录,是最好的选择,gitzip 可以打包下载(方法是输入 github repo 中的文件夹地址), 脚本生成的网页浏览起来更快,会有更多信息,比如文件大小等。
课程结构
每门课程大致结构如下,有些栏目可能没有,也可以自己添加认为合理的栏目。
教材,答案在课程目录下
参考书,参考资料在 reference 下
复习试卷,习题课,作业解答 在 review 下
建立文件夹 homework-teacher1, homework-teacher2 ..., lab-teacher1, 每个文件夹中如果有不同年份的,就再建立不同年份的文件夹
课程主页及其他链接资源记在 README.md 中
slides: 主要是 ppt 文件类型,将所有 slides 打包成 zip, 放在 课程目录下(若有多个老师,则在课程目录建立 slides-teacherName1.zip, slides-teacherName2.zip...)
students(同学们上传的自己的一些资料,作品,每个同学新建一个目录)
如「编译原理和技术」课程:
课程目录
根据拼音字母排序,可以通过在此页面搜索课程名快速定位。原网页可以点击课程名称,定位到具体内容,课程搜索页面的如下:
贡献投稿
欢迎大家的参与与贡献,投稿的时候注意版权说明。
投稿方式
帮忙上传
可以发给我或者其他同学帮忙上传,或者提 issue。
网页操作
用网页或者桌面版 直接操作,fork and pull request, 操作方式可以参考 这里 和这里 ,介绍 pr 操作。
用命令行
对于用命令行的同学,提醒一下这个仓库很大(2019-1-25 时已有 7G 左右) 所以如果直接 clone 很慢。 可以使用 sparse-checkout, 只下载你指定的目录。
首先用网页操作,创建你想要的目录(已有的可以直接用), 如在公选课目录下创建「人工智障」, 然后在 cli 执行。
mkdir ustc-courses #文件夹名可以自己取
cd ustc-courses
git init
git remote add -f origin git@github.com:mbinary/USTC-CS-Courses-Resource.git
git config core.sparsecheckout trueecho "计算机与信息类/软件工程" >> .git/info/sparse-checkout #这里工作目录就是在那个 repo 主页下
#如果还有其他目录,都像上面一样加入即可,如 `echo "计算机与信息类/图论/slides" >> .git/info/sparse-checkout`
#只需记住的是 加入的目录应该在远程仓库存在,否则报错“error: Sparse checkout leaves no entry on the working directory”
git pull origin master
git remote add upstream git@github.com:mbinary/USTC-CS-Courses-Resource.git
建议:如果没有较大的改动,或者在改动之前,可以删除掉以前 fork 的仓库 重新 fork
更新内容后
git fetch upstream/master
git merge upstream/master
投稿建议
github 上不能直接上传大于 100mb 的文件。对于超过 100 mb 的文件,可以存在网盘,然后在 README 文件中贴上链接。
文件内容的改动会使 git 重新上传, 在没有必要的情况下, 不要对二进制文件做任何更改。