Skip to content

chasewonder/dsa2020

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

数据结构与算法B

谢正茂老师所授的13班在这里进行信息发布和课程讨论。

课程代码

代码行数多了,没有bug是不可能的。欢迎同学们批判的学习这里的课程代码,发现并解决其中的bug。对于代码可读性和效率的改进,讲出自己的道理,更是非常欢迎的。

上机作业

上机作业在openjudge子目录下,目前只收录两个来源的题目:

前者里面有200道题;后者随课程进度发布,共8次左右作业,每次5-7题。

请阅读该目录下的README文件,本学期针对先登荣誉,每登提供0.2分的加分;对夺旗荣誉,每旗提供0.8的加分。 为了让每个人都有参与的机会,限制每个github账户每天(GMT时间)只能发起一次pull_request; 同时在期末的加分表格中会列出每个人先登的题目和对应的时间,每人一天也只能获得一次先登加分,超出的加分顺延到本题的下一位提交者,但夺旗无此限制。

登录OJ账号之后请加入数算B谢正茂班,选择“数算B13班-2025春季”,把在班中的昵称改为“学号+姓名”,这样每次的作业和考试才会有成绩。

上机课时间为每周四5-6节,地点为计算中心7-8号机房

Markdown格式

一种很受欢迎的写文档的工具。如果要写一本很“漂亮”的书,那是比不上LaTex的。Markdown可以通过嵌入html来获得一些丰富的格式,但对于在线文档,最简单的格式和功能就足够了。Markdown最大的好处是简单高效,高端的食材往往只需要最简单的烹饪方法。VScode就可以很好的编辑、预览md。

参考:

如何协作--提交代码并参与讨论

利用github.com的pull request功能,进行线上协作与讨论。

我们用的是一种Crowdsource的松散协作方式,maintainer之外的contributor对主仓库并不具有直接的写权限,需要先fork主仓库到自己的github账户下进行工作,根据工作的主题新开一个branch,在该branch下面完成工作后向主仓库提出pull request(pr)申请,maintainer和其他contributor可以review该pr,contributor根据别人的review可以修改pr的内容,最终满意后由maintainer把pr的工作内容合并进主仓库。流程基本就是:
fork ==> branch ==> commit* ==> pull_request ==> (review, commit)* ==> merge,close
contributor下次开新的branch的时候,并不需要每次都fork主仓库,和主仓库多同步以获得最新的内容。

常见的问题:

  • contributor不要修改自己的main分支,而是新建branch上commit。为了避免版本冲突问题,main分支需要经常同步maintainer的仓库,尽可能每次branch前同步一次,在最新main上建新branch。
  • 新建branch的名字应该与准备提交的内容有关,而且不应包含中文字符,否则github会报警;在发起pull request时应该对工作内容有简单的描述,描述中可以使用中文。
  • 如果pr一个branch1有比较多的错误被退回,从main上新开一个branch2,比在branch1上作修改更方便。
  • git主要的优势在于管理文本内容,因此非文本的内容在git仓库中尽量避免。非必要也不要在文档中插入图片。
  • 对于一个pr,maintainer只能全部接受或全部拒绝,所以每次pr最好只有一个独立的工作。限制了一次pr频率,也即限制了工作的提交频率。

参考:
How to contribute to open source projects (our community project walkthrough)

国内镜像地址

由于在大陆地区访问github网站连接有不稳定的情况,这里另外提供了一个国内的镜像。需要注意的是,该镜像是只读的,前面的协作功能只在github上进行。

这里有一些上网的资源可供利用:Clash|验证PKU邮箱

课程进度、作业

时间 课程进度 作业 备注
第一周 引言及概论 自学git,熟悉github、OJ功能
第二周 Python入门 OJ作业Python入门
第三周 算法分析
第四周 线性表 OJ作业线性表
第五周 递归与动规 OJ作业递归与动规
第六周 递归与动规,KMP
第七周 排序与查找 OJ作业排序与查找
第八周 排序与查找
第九周 树及算法 OJ作业树及算法
第十周 期中模拟考试
第十一周 模拟题讲解,树及算法
第十二周 五一放假
第十三周 树及算法,图及算法 OJ作业图及算法
第十四周 图及算法
第十五周 图及算法,期末复习指导

重要通知

About

2025Spring Data Structure and AlgorithmsB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • C++ 0.1%