{"id":19433901,"url":"https://github.com/tangruize/programming-tutorial-2019","last_synced_at":"2026-03-01T07:32:35.532Z","repository":{"id":112447317,"uuid":"209993955","full_name":"tangruize/programming-tutorial-2019","owner":"tangruize","description":"Programming Tutorial for the Problem Solving Class at NJU (Nanjing University)-CS 2019.","archived":false,"fork":false,"pushed_at":"2019-11-22T13:18:17.000Z","size":2563,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-25T06:26:01.493Z","etag":null,"topics":["c-programming","cpp-programming","nju","nju-cs","problem-solving","programming-tutorial"],"latest_commit_sha":null,"homepage":"https://github.com/hengxin/problem-solving-class-programming-tutorial","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tangruize.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-21T13:54:26.000Z","updated_at":"2019-11-22T13:18:19.000Z","dependencies_parsed_at":"2023-05-15T01:15:08.811Z","dependency_job_id":null,"html_url":"https://github.com/tangruize/programming-tutorial-2019","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/tangruize/programming-tutorial-2019","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangruize%2Fprogramming-tutorial-2019","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangruize%2Fprogramming-tutorial-2019/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangruize%2Fprogramming-tutorial-2019/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangruize%2Fprogramming-tutorial-2019/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tangruize","download_url":"https://codeload.github.com/tangruize/programming-tutorial-2019/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangruize%2Fprogramming-tutorial-2019/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29963883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T06:55:38.174Z","status":"ssl_error","status_checked_at":"2026-03-01T06:53:04.810Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-programming","cpp-programming","nju","nju-cs","problem-solving","programming-tutorial"],"created_at":"2024-11-10T14:41:36.420Z","updated_at":"2026-03-01T07:32:35.507Z","avatar_url":"https://github.com/tangruize.png","language":"TeX","readme":"# programming-tutorial-2019\n\n本项目是一个简易的C/C++编程指南，为南京大学计算机系问题求解课程2019级学生准备。往届的编程指南见[problem-solving-class-programming-tutorial](https://github.com/hengxin/problem-solving-class-programming-tutorial)。\n\n项目分为3个子项目：[Code](Code)、[Slides](Slides) 和 [Tutorial](Tutorial)，使用cmake管理，可以用CLion打开查看。\n\n## [Code](Code)\n\n教程所用到的示例代码。\n\n[oj](Code/oj): 提供了一个管理 OJ 的 [CMakeLists.txt](Code/oj/CMakeLists.txt) 模板。也可以下载这个[压缩包](http://problemoverflow.top/download/OJ.zip)。\n\n[redirect](Code/redirect): 方便调试的[输入输出重定向](Code/redirect/redirect.h)函数，使用样例 [example_c](Code/oj/example.c)。\n\n[pointer](Code/pointer): [第三次线下辅导](Slides/2019-11-08_Pointer_Memory) 用到的源代码，参考了 [Pointers - C++ Tutorials](http://www.cplusplus.com/doc/tutorial/pointers/)。\n\n[struct](Code/struct): [第四次线下辅导](Slides/2019-11-16_Struct_Malloc) 用到的源代码。\n\n[my_malloc](Code/my_malloc): [第四次线下辅导](Slides/2019-11-16_Struct_Malloc) 的链表小实验, 实现malloc。\n\n[io](Code/io): [第五次线下辅导](Slides/2019-11-22_IO) 用到的源代码。\n\n## [Slides](Slides)\n\n线下讲解程序设计的PPT源代码，使用了 beamer 的 [mtheme](https://github.com/matze/mtheme) 主题。目录内只有源代码没有pdf，pdf下载见下面的表格：\n\n| 日期 | 主题 | 文件 |\n|------------|---------------------|-----------------------------------------------------------------------------------------------------------------------|\n| 2019-10-25 | 环境搭建和C语言入门 | [introduction.pdf](https://github.com/tangruize/programming-tutorial-2019/releases/download/slide_1/introduction.pdf) |\n| 2019-11-01 | 调试技巧, 函数和数组 | [function_array.pdf](https://github.com/tangruize/programming-tutorial-2019/releases/download/slide_2/function_array.pdf) |\n| 2019-11-08 | 指针和动态内存 | [pointer_memory.pdf](https://github.com/tangruize/programming-tutorial-2019/releases/download/slide_3/pointer_memory.pdf) |\n| 2019-11-16 | 结构体和malloc实现 | [struct_malloc.pdf](https://github.com/tangruize/programming-tutorial-2019/releases/download/slide_4/struct_malloc.pdf) |\n| 2019-11-22 | 文件输入输出 | [io.pdf](https://github.com/tangruize/programming-tutorial-2019/releases/download/slide_5/io.pdf) |\n\n## [Tutorial](Tutorial)\n\n使用markdown编写，可以用 [gitbook-cli](https://github.com/GitbookIO/gitbook) 生成 html。目录内只有 markdown 没有 html，可以直接在Github上浏览（[目录](Tutorial/SUMMARY.md)），也可以打开 [problemoverflow.top/c](http://problemoverflow.top/c/)。\n\n## 编译\n\n本工程使用了cmake，很方便编译 exe, pdf 和 html。\n```bash\ngit clone https://github.com/tangruize/programming-tutorial-2019  # 需安装git\ncmake -S . -B build  # 初始化cmake，需安装cmake和make\ncd build\nmake  # 编译OJ的例子，需安装cc和c++编译器，比如gcc和g++\nmake -j4  # 同上，但同时使用4个线程编译 \nmake -j4 slides  # 编译latex，需安装texlive、latexmk 和 xelatex\nmake gitbook  # 生成gitbook的html并在本地打开4000端口服务器，需安装gitbook-cli\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangruize%2Fprogramming-tutorial-2019","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftangruize%2Fprogramming-tutorial-2019","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangruize%2Fprogramming-tutorial-2019/lists"}