cs-self-learning/en/index.html

35 lines
77 KiB
HTML

<!doctype html><html lang=en class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content=CS自学指南><meta name=author content=PKUFlyingPig><link href=https://csdiy.wiki/en/ rel=canonical><link href=%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/ rel=next><link rel=icon href=../images/favicon.ico><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.5.2"><title>Foreword - csdiy.wiki</title><link rel=stylesheet href=../assets/stylesheets/main.50c56a3b.min.css><link rel=stylesheet href=../assets/stylesheets/palette.06af60db.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto+Slab:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto Slab";--md-code-font:"Roboto Mono"}</style><script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script><script id=__analytics>function __md_analytics(){function n(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],n("js",new Date),n("config","G-KJB4RXSKZG"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){this.value&&n("event","search",{search_term:this.value})}),document$.subscribe(function(){var a=document.forms.feedback;if(void 0!==a)for(var e of a.querySelectorAll("[type=submit]"))e.addEventListener("click",function(e){e.preventDefault();var t=document.location.pathname,e=this.getAttribute("data-md-value");n("event","feedback",{page:t,data:e}),a.firstElementChild.disabled=!0;e=a.querySelector(".md-feedback__note [data-md-value='"+e+"']");e&&(e.hidden=!1)}),a.hidden=!1}),location$.subscribe(function(e){n("config","G-KJB4RXSKZG",{page_path:e.pathname})})});var e=document.createElement("script");e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=G-KJB4RXSKZG",document.getElementById("__analytics").insertAdjacentElement("afterEnd",e)}</script><script>"undefined"!=typeof __md_analytics&&__md_analytics()</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=light-blue data-md-color-accent=deep-purple> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#foreword class=md-skip> Skip to content </a> </div> <div data-md-component=announce> </div> <header class="md-header md-header--shadow" data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Header> <a href=./ title=csdiy.wiki class="md-header__button md-logo" aria-label=csdiy.wiki data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> csdiy.wiki </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Foreword </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme=default data-md-color-primary=light-blue data-md-color-accent=deep-purple aria-label="Switch to dark mode" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Switch to dark mode" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg> </label> <input class=md-option data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme=slate data-md-color-primary=cyan data-md-color-accent=deep-purple aria-label="Switch to light mode" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Switch to light mode" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg> </label> </form> <script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <div class=md-header__option> <div class=md-select> <button class="md-header__button md-icon" aria-label="Select language"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="m12.87 15.07-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v2h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04M18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12m-2.62 7 1.62-4.33L19.12 17h-3.24Z"/></svg> </button> <div class=md-select__inner> <ul class=md-select__list> <li class=md-select__item> <a href=/ hreflang=zh class=md-select__link> 简体中文 </a> </li> <li class=md-select__item> <a href=/en/ hreflang=en class=md-select__link> English </a> </li> </ul> </div> </div> </div> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Search placeholder=Search autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg> </label> <nav class=md-search__options aria-label=Search> <a href=javascript:void(0) class="md-search__icon md-icon" title=Share aria-label=Share data-clipboard data-clipboard-text data-md-component=search-share tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7 0-.24-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91 1.61 0 2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08Z"/></svg> </a> <button type=reset class="md-search__icon md-icon" title=Clear aria-label=Clear tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Initializing search </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/pkuflyingpig/cs-self-learning/ title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </div> <div class=md-source__repository> cs-self-learning </div> </a> </div> </nav> </header> <div class=md-container data-md-component=container> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=./ title=csdiy.wiki class="md-nav__button md-logo" aria-label=csdiy.wiki data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg> </a> csdiy.wiki </label> <div class=md-nav__source> <a href=https://github.com/pkuflyingpig/cs-self-learning/ title="Go to repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </div> <div class=md-source__repository> cs-self-learning </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Foreword </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Foreword </span> </a> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#the-place-where-dreams-start-cs61a class=md-nav__link> <span class=md-ellipsis> The place where dreams start —— CS61A </span> </a> </li> <li class=md-nav__item> <a href=#why-write-this-book class=md-nav__link> <span class=md-ellipsis> Why write this book? </span> </a> </li> <li class=md-nav__item> <a href=#pros class=md-nav__link> <span class=md-ellipsis> Pros </span> </a> </li> <li class=md-nav__item> <a href=#cons class=md-nav__link> <span class=md-ellipsis> Cons </span> </a> </li> <li class=md-nav__item> <a href=#who-is-this-book-for class=md-nav__link> <span class=md-ellipsis> Who is this book for? </span> </a> </li> <li class=md-nav__item> <a href=#special-thanks class=md-nav__link> <span class=md-ellipsis> Special thanks </span> </a> </li> <li class=md-nav__item> <a href=#want-to-join-as-a-contributor class=md-nav__link> <span class=md-ellipsis> Want to join as a contributor? </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/ class=md-nav__link> <span class=md-ellipsis> How To Use The Book </span> </a> </li> <li class=md-nav__item> <a href=CS%E5%AD%A6%E4%B9%A0%E8%A7%84%E5%88%92/ class=md-nav__link> <span class=md-ellipsis> Guideline </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4> <label class=md-nav__link for=__nav_4 id=__nav_4_label tabindex=0> <span class=md-ellipsis> Productivity Toolkit </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=false> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Productivity Toolkit </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/%E7%BF%BB%E5%A2%99/ class=md-nav__link> <span class=md-ellipsis> GFW </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Vim/ class=md-nav__link> <span class=md-ellipsis> Vim </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Emacs/ class=md-nav__link> <span class=md-ellipsis> Emacs </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Git/ class=md-nav__link> <span class=md-ellipsis> Git </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/GitHub/ class=md-nav__link> <span class=md-ellipsis> GitHub </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/GNU_Make/ class=md-nav__link> <span class=md-ellipsis> GNU Make </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/CMake/ class=md-nav__link> <span class=md-ellipsis> CMake </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/LaTeX/ class=md-nav__link> <span class=md-ellipsis> LaTeX </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Docker/ class=md-nav__link> <span class=md-ellipsis> Docker </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Scoop/ class=md-nav__link> <span class=md-ellipsis> Scoop </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/workflow/ class=md-nav__link> <span class=md-ellipsis> Notes Workflow </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/tools/ class=md-nav__link> <span class=md-ellipsis> Useful Tools </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/thesis/ class=md-nav__link> <span class=md-ellipsis> Thesis Writing </span> </a> </li> <li class=md-nav__item> <a href=%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/%E4%BF%A1%E6%81%AF%E6%A3%80%E7%B4%A2/ class=md-nav__link> <span class=md-ellipsis> Information Retrieval </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=%E5%A5%BD%E4%B9%A6%E6%8E%A8%E8%8D%90/ class=md-nav__link> <span class=md-ellipsis> Book Recommendation </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_6> <label class=md-nav__link for=__nav_6 id=__nav_6_label tabindex=0> <span class=md-ellipsis> Fundamental Mathematics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> Fundamental Mathematics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/MITmaths/ class=md-nav__link> <span class=md-ellipsis> MIT18.01/18.02: Calculus </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/MITLA/ class=md-nav__link> <span class=md-ellipsis> MIT18.06: Linear Algebra </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E5%9F%BA%E7%A1%80/information/ class=md-nav__link> <span class=md-ellipsis> MIT6.050J: Information theory and Entropy </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_7> <label class=md-nav__link for=__nav_7 id=__nav_7_label tabindex=0> <span class=md-ellipsis> Advanced Mathematics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Advanced Mathematics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/CS70/ class=md-nav__link> <span class=md-ellipsis> UCB CS70: discrete Math and probability theory </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/CS126/ class=md-nav__link> <span class=md-ellipsis> UCB CS126: probability theory </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/6.042J/ class=md-nav__link> <span class=md-ellipsis> MIT 6.042J: Mathematics for Computer Science </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/numerical/ class=md-nav__link> <span class=md-ellipsis> MIT18.330: Introduction to numerical analysis </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/convex/ class=md-nav__link> <span class=md-ellipsis> Standford EE364A: Convex Optimization </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E5%AD%A6%E8%BF%9B%E9%98%B6/The_Information_Theory_Pattern_Recognition_and_Neural_Networks/ class=md-nav__link> <span class=md-ellipsis> The Information Theory, Pattern Recognition, and Neural Networks </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8> <label class=md-nav__link for=__nav_8 id=__nav_8_label tabindex=0> <span class=md-ellipsis> Fundamental Programming </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_8_label aria-expanded=false> <label class=md-nav__title for=__nav_8> <span class="md-nav__icon md-icon"></span> Fundamental Programming </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/MIT-Missing-Semester/ class=md-nav__link> <span class=md-ellipsis> MIT-Missing-Semester </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/DeCal/ class=md-nav__link> <span class=md-ellipsis> Sysadmin DeCal </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_3> <label class=md-nav__link for=__nav_8_3 id=__nav_8_3_label tabindex=0> <span class=md-ellipsis> Python Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_3_label aria-expanded=false> <label class=md-nav__title for=__nav_8_3> <span class="md-nav__icon md-icon"></span> Python Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Python/CS61A/ class=md-nav__link> <span class=md-ellipsis> UCB CS61A: Structure and Interpretation of Computer Programs </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Python/CS50P/ class=md-nav__link> <span class=md-ellipsis> CS50P: CS50's Introduction to Programming with Python </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Python/MIT6.100L/ class=md-nav__link> <span class=md-ellipsis> MIT6.100L: Introduction to CS and Programming using Python </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_4> <label class=md-nav__link for=__nav_8_4 id=__nav_8_4_label tabindex=0> <span class=md-ellipsis> C Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_4_label aria-expanded=false> <label class=md-nav__title for=__nav_8_4> <span class="md-nav__icon md-icon"></span> C Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/C/CS50/ class=md-nav__link> <span class=md-ellipsis> Harvard CS50: This is CS50x </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/C/Duke-Coursera-Intro-C/ class=md-nav__link> <span class=md-ellipsis> Duke University: Introductory C Programming Specialization </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_5> <label class=md-nav__link for=__nav_8_5 id=__nav_8_5_label tabindex=0> <span class=md-ellipsis> C++ Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_5_label aria-expanded=false> <label class=md-nav__title for=__nav_8_5> <span class="md-nav__icon md-icon"></span> C++ Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/cpp/AUT1400/ class=md-nav__link> <span class=md-ellipsis> AmirKabir University of Technology AP1400-2: Advanced Programming </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/cpp/CS106L/ class=md-nav__link> <span class=md-ellipsis> Stanford CS106L: Standard C++ Programming </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/cpp/CS106B_CS106X/ class=md-nav__link> <span class=md-ellipsis> Stanford CS106B/X </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_6> <label class=md-nav__link for=__nav_8_6 id=__nav_8_6_label tabindex=0> <span class=md-ellipsis> Java Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_6_label aria-expanded=false> <label class=md-nav__title for=__nav_8_6> <span class="md-nav__icon md-icon"></span> Java Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Java/MIT%206.092/ class=md-nav__link> <span class=md-ellipsis> MIT 6.092: Introduction To Programming In Java </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_7> <label class=md-nav__link for=__nav_8_7 id=__nav_8_7_label tabindex=0> <span class=md-ellipsis> Rust Language </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_7_label aria-expanded=false> <label class=md-nav__title for=__nav_8_7> <span class="md-nav__icon md-icon"></span> Rust Language </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Rust/CS110L/ class=md-nav__link> <span class=md-ellipsis> Stanford CS110L: Safety in Systems Programming </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Rust/cs220/ class=md-nav__link> <span class=md-ellipsis> KAIST CS220: Programming Principles </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Rust/cs431/ class=md-nav__link> <span class=md-ellipsis> KAIST CS431: Concurrent Programming </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_8_8> <label class=md-nav__link for=__nav_8_8 id=__nav_8_8_label tabindex=0> <span class=md-ellipsis> Functional Programming </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_8_8_label aria-expanded=false> <label class=md-nav__title for=__nav_8_8> <span class="md-nav__icon md-icon"></span> Functional Programming </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Functional/CS3110/ class=md-nav__link> <span class=md-ellipsis> Cornell CS3110: OCaml Programming Correct + Efficient + Beautiful </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Functional/Haskell-MOOC/ class=md-nav__link> <span class=md-ellipsis> Haskell MOOC </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_9> <label class=md-nav__link for=__nav_9 id=__nav_9_label tabindex=0> <span class=md-ellipsis> Fundamental Electronics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_9_label aria-expanded=false> <label class=md-nav__title for=__nav_9> <span class="md-nav__icon md-icon"></span> Fundamental Electronics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%94%B5%E5%AD%90%E5%9F%BA%E7%A1%80/EE16/ class=md-nav__link> <span class=md-ellipsis> EE16A&B: Designing Information Devices and Systems I&II </span> </a> </li> <li class=md-nav__item> <a href=%E7%94%B5%E5%AD%90%E5%9F%BA%E7%A1%80/signal/ class=md-nav__link> <span class=md-ellipsis> UCB EE120 : Signal and Systems </span> </a> </li> <li class=md-nav__item> <a href=%E7%94%B5%E5%AD%90%E5%9F%BA%E7%A1%80/Signals_and_Systems_AVO/ class=md-nav__link> <span class=md-ellipsis> MIT 6.007 Signals and Systems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_10> <label class=md-nav__link for=__nav_10 id=__nav_10_label tabindex=0> <span class=md-ellipsis> Data Structures and Algorithms </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_10_label aria-expanded=false> <label class=md-nav__title for=__nav_10> <span class="md-nav__icon md-icon"></span> Data Structures and Algorithms </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/CS61B/ class=md-nav__link> <span class=md-ellipsis> UCB CS61B: Data Structures and Algorithms </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/Algo/ class=md-nav__link> <span class=md-ellipsis> Coursera: Algorithms I & II </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/6.006/ class=md-nav__link> <span class=md-ellipsis> MIT 6.006: Introduction to Algorithms </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/6.046/ class=md-nav__link> <span class=md-ellipsis> MIT 6.046: Design and Analysis of Algorithms </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/CS170/ class=md-nav__link> <span class=md-ellipsis> UCB CS170: Efficient Algorithms and Intractable Problems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_11> <label class=md-nav__link for=__nav_11 id=__nav_11_label tabindex=0> <span class=md-ellipsis> Software Engineering </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_11_label aria-expanded=false> <label class=md-nav__title for=__nav_11> <span class="md-nav__icon md-icon"></span> Software Engineering </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/6031/ class=md-nav__link> <span class=md-ellipsis> MIT 6.031: Software Construction </span> </a> </li> <li class=md-nav__item> <a href=%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/CS169/ class=md-nav__link> <span class=md-ellipsis> UCB CS169: software engineering </span> </a> </li> <li class=md-nav__item> <a href=%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/17803/ class=md-nav__link> <span class=md-ellipsis> CMU 17-803: Empirical Methods </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_12> <label class=md-nav__link for=__nav_12 id=__nav_12_label tabindex=0> <span class=md-ellipsis> Computer Systems Principles </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_12_label aria-expanded=false> <label class=md-nav__title for=__nav_12> <span class="md-nav__icon md-icon"></span> Computer Systems Principles </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80/CSAPP/ class=md-nav__link> <span class=md-ellipsis> CMU 15-213: CSAPP </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80/CS110/ class=md-nav__link> <span class=md-ellipsis> Stanford CS110: Principles of Computer Systems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_13> <label class=md-nav__link for=__nav_13 id=__nav_13_label tabindex=0> <span class=md-ellipsis> Computer Architecture </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_13_label aria-expanded=false> <label class=md-nav__title for=__nav_13> <span class="md-nav__icon md-icon"></span> Computer Architecture </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/N2T/ class=md-nav__link> <span class=md-ellipsis> Coursera: Nand2Tetris </span> </a> </li> <li class=md-nav__item> <a href=%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/CS61C/ class=md-nav__link> <span class=md-ellipsis> UCB CS61C: Great Ideas in Computer Architecture </span> </a> </li> <li class=md-nav__item> <a href=%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/DDCA/ class=md-nav__link> <span class=md-ellipsis> ETHz: Digital Design and Computer Architecture </span> </a> </li> <li class=md-nav__item> <a href=%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/CA/ class=md-nav__link> <span class=md-ellipsis> ETHz: Computer Architecture </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_14> <label class=md-nav__link for=__nav_14 id=__nav_14_label tabindex=0> <span class=md-ellipsis> Operating Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_14_label aria-expanded=false> <label class=md-nav__title for=__nav_14> <span class="md-nav__icon md-icon"></span> Operating Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/MIT6.S081/ class=md-nav__link> <span class=md-ellipsis> MIT 6.S081: Operating System Engineering </span> </a> </li> <li class=md-nav__item> <a href=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/CS162/ class=md-nav__link> <span class=md-ellipsis> UCB CS162: Operating System </span> </a> </li> <li class=md-nav__item> <a href=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/NJUOS/ class=md-nav__link> <span class=md-ellipsis> NJU OS: Operating System Design and Implementation </span> </a> </li> <li class=md-nav__item> <a href=%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/HITOS/ class=md-nav__link> <span class=md-ellipsis> HIT OS: Operating System </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_15> <label class=md-nav__link for=__nav_15 id=__nav_15_label tabindex=0> <span class=md-ellipsis> Distributed Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_15_label aria-expanded=false> <label class=md-nav__title for=__nav_15> <span class="md-nav__icon md-icon"></span> Distributed Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E5%B9%B6%E8%A1%8C%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/CS149/ class=md-nav__link> <span class=md-ellipsis> CMU 15-418/Stanford CS149: Parallel Computing </span> </a> </li> <li class=md-nav__item> <a href=%E5%B9%B6%E8%A1%8C%E4%B8%8E%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/MIT6.824/ class=md-nav__link> <span class=md-ellipsis> MIT 6.824: Distributed System </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_16> <label class=md-nav__link for=__nav_16 id=__nav_16_label tabindex=0> <span class=md-ellipsis> Computer Security </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_16_label aria-expanded=false> <label class=md-nav__title for=__nav_16> <span class="md-nav__icon md-icon"></span> Computer Security </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/CS161/ class=md-nav__link> <span class=md-ellipsis> UCB CS161: Computer Security </span> </a> </li> <li class=md-nav__item> <a href=%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/MIT6.1600/ class=md-nav__link> <span class=md-ellipsis> MIT 6.1600: Foundations of Computer Security </span> </a> </li> <li class=md-nav__item> <a href=%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/MIT6.858/ class=md-nav__link> <span class=md-ellipsis> MIT 6.858: Computer System Security </span> </a> </li> <li class=md-nav__item> <a href=%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/CSE365/ class=md-nav__link> <span class=md-ellipsis> ASU CSE365: Introduction to Cybersecurity </span> </a> </li> <li class=md-nav__item> <a href=%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/CSE466/ class=md-nav__link> <span class=md-ellipsis> ASU CSE466: Computer Systems Security </span> </a> </li> <li class=md-nav__item> <a href=%E7%B3%BB%E7%BB%9F%E5%AE%89%E5%85%A8/SEEDLabs/ class=md-nav__link> <span class=md-ellipsis> SU SEED Labs </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_17> <label class=md-nav__link for=__nav_17 id=__nav_17_label tabindex=0> <span class=md-ellipsis> Computer Networking </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_17_label aria-expanded=false> <label class=md-nav__title for=__nav_17> <span class="md-nav__icon md-icon"></span> Computer Networking </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/CS168/ class=md-nav__link> <span class=md-ellipsis> UCB CS168: Introduction to the Internet: Architecture and Protocols </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/CS144/ class=md-nav__link> <span class=md-ellipsis> Stanford CS144: Computer Network </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/topdown_ustc/ class=md-nav__link> <span class=md-ellipsis> USTC Computer Networking:A Top-Down Approach </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/topdown/ class=md-nav__link> <span class=md-ellipsis> Computer Networking: A Top-Down Approach </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_18> <label class=md-nav__link for=__nav_18 id=__nav_18_label tabindex=0> <span class=md-ellipsis> Database Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_18_label aria-expanded=false> <label class=md-nav__title for=__nav_18> <span class="md-nav__icon md-icon"></span> Database Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/CS186/ class=md-nav__link> <span class=md-ellipsis> UCB CS186: Introduction to Database System </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/15445/ class=md-nav__link> <span class=md-ellipsis> CMU 15-445: Database Systems </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/CS122/ class=md-nav__link> <span class=md-ellipsis> Caltech CS122: Database System Implementation </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/CS346/ class=md-nav__link> <span class=md-ellipsis> Stanford CS346: Database System Implementation </span> </a> </li> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B3%BB%E7%BB%9F/15799/ class=md-nav__link> <span class=md-ellipsis> CMU 15-799: Special Topics in Database Systems </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_19> <label class=md-nav__link for=__nav_19 id=__nav_19_label tabindex=0> <span class=md-ellipsis> Compilers </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_19_label aria-expanded=false> <label class=md-nav__title for=__nav_19> <span class="md-nav__icon md-icon"></span> Compilers </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/PKU-Compilers/ class=md-nav__link> <span class=md-ellipsis> PKU 编译原理实践 </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/CS143/ class=md-nav__link> <span class=md-ellipsis> Stanford CS143: Compilers </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/NJU-Compilers/ class=md-nav__link> <span class=md-ellipsis> NJU 编译原理 </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/CS420/ class=md-nav__link> <span class=md-ellipsis> KAIST CS420: Compiler Design </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/USTC-Compilers/ class=md-nav__link> <span class=md-ellipsis> USTC 编译原理与技术 </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/SJTU-Compilers/ class=md-nav__link> <span class=md-ellipsis> SJTU 编译原理 </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_20> <label class=md-nav__link for=__nav_20 id=__nav_20_label tabindex=0> <span class=md-ellipsis> Programming Language Design and Analysis </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_20_label aria-expanded=false> <label class=md-nav__title for=__nav_20> <span class="md-nav__icon md-icon"></span> Programming Language Design and Analysis </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%88%86%E6%9E%90/CS242/ class=md-nav__link> <span class=md-ellipsis> Stanford CS242: Programming Languages </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%88%86%E6%9E%90/NJU-SoftwareAnalysis/ class=md-nav__link> <span class=md-ellipsis> NJU Software Analysis </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%88%86%E6%9E%90/PKU-SoftwareAnalysis/ class=md-nav__link> <span class=md-ellipsis> PKU Software Analysis </span> </a> </li> <li class=md-nav__item> <a href=%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%88%86%E6%9E%90/Cambridge-Semantics/ class=md-nav__link> <span class=md-ellipsis> Cambridge: Semantics of Programming Languages </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_21> <label class=md-nav__link for=__nav_21 id=__nav_21_label tabindex=0> <span class=md-ellipsis> Computer Graphics </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_21_label aria-expanded=false> <label class=md-nav__title for=__nav_21> <span class="md-nav__icon md-icon"></span> Computer Graphics </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/GAMES101/ class=md-nav__link> <span class=md-ellipsis> GAMES101 </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/GAMES202/ class=md-nav__link> <span class=md-ellipsis> GAMES202 </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/GAMES103/ class=md-nav__link> <span class=md-ellipsis> GAMES103 </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/CS148/ class=md-nav__link> <span class=md-ellipsis> Stanford CS148 </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/15462/ class=md-nav__link> <span class=md-ellipsis> CMU 15-462 </span> </a> </li> <li class=md-nav__item> <a href=%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9B%BE%E5%BD%A2%E5%AD%A6/USTC%20ComputerGraphics/ class=md-nav__link> <span class=md-ellipsis> USTC CG </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_22> <label class=md-nav__link for=__nav_22 id=__nav_22_label tabindex=0> <span class=md-ellipsis> Web Development </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_22_label aria-expanded=false> <label class=md-nav__title for=__nav_22> <span class="md-nav__icon md-icon"></span> Web Development </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=Web%E5%BC%80%E5%8F%91/mitweb/ class=md-nav__link> <span class=md-ellipsis> MIT web development course </span> </a> </li> <li class=md-nav__item> <a href=Web%E5%BC%80%E5%8F%91/CS142/ class=md-nav__link> <span class=md-ellipsis> Stanford CS142: Web Applications </span> </a> </li> <li class=md-nav__item> <a href=Web%E5%BC%80%E5%8F%91/fullstackopen/ class=md-nav__link> <span class=md-ellipsis> University of Helsinki: Full Stack open 2022 </span> </a> </li> <li class=md-nav__item> <a href=Web%E5%BC%80%E5%8F%91/CS571/ class=md-nav__link> <span class=md-ellipsis> CS571 Building UI (React & React Native) </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_23> <label class=md-nav__link for=__nav_23 id=__nav_23_label tabindex=0> <span class=md-ellipsis> Data Science </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_23_label aria-expanded=false> <label class=md-nav__title for=__nav_23> <span class="md-nav__icon md-icon"></span> Data Science </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%95%B0%E6%8D%AE%E7%A7%91%E5%AD%A6/Data100/ class=md-nav__link> <span class=md-ellipsis> UCB Data100: Principles and Techniques of Data Science </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_24> <label class=md-nav__link for=__nav_24 id=__nav_24_label tabindex=0> <span class=md-ellipsis> Artificial Intelligence </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_24_label aria-expanded=false> <label class=md-nav__title for=__nav_24> <span class="md-nav__icon md-icon"></span> Artificial Intelligence </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href="../人工智能/Neural Networks: Zero to Hero.md" class=md-nav__link> <span class=md-ellipsis> Neural Networks: Zero to Hero </span> </a> </li> <li class=md-nav__item> <a href=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/CS50/ class=md-nav__link> <span class=md-ellipsis> Harvard CS50's Introduction to AI with Python </span> </a> </li> <li class=md-nav__item> <a href=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/CS188/ class=md-nav__link> <span class=md-ellipsis> UCB CS188: Introduction to Artificial Intelligence </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_25> <label class=md-nav__link for=__nav_25 id=__nav_25_label tabindex=0> <span class=md-ellipsis> Machine Learning </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_25_label aria-expanded=false> <label class=md-nav__title for=__nav_25> <span class="md-nav__icon md-icon"></span> Machine Learning </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/ML/ class=md-nav__link> <span class=md-ellipsis> Coursera: Machine Learning </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/CS229/ class=md-nav__link> <span class=md-ellipsis> Stanford CS229: Machine Learning </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/CS189/ class=md-nav__link> <span class=md-ellipsis> UCB CS189: Introduction to Machine Learning </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_26> <label class=md-nav__link for=__nav_26 id=__nav_26_label tabindex=0> <span class=md-ellipsis> Machine Learning Systems </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_26_label aria-expanded=false> <label class=md-nav__title for=__nav_26> <span class="md-nav__icon md-icon"></span> Machine Learning Systems </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/AICS/ class=md-nav__link> <span class=md-ellipsis> Intelligent Computing Systems </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/CMU10-414/ class=md-nav__link> <span class=md-ellipsis> CMU 10-414/714: Deep Learning Systems </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/EML/ class=md-nav__link> <span class=md-ellipsis> MIT6.5940: TinyML and Efficient Deep Learning Computing </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%B3%BB%E7%BB%9F/MLC/ class=md-nav__link> <span class=md-ellipsis> Machine Learning Compilation </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_27> <label class=md-nav__link for=__nav_27 id=__nav_27_label tabindex=0> <span class=md-ellipsis> Deep Learning </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_27_label aria-expanded=false> <label class=md-nav__title for=__nav_27> <span class="md-nav__icon md-icon"></span> Deep Learning </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS230/ class=md-nav__link> <span class=md-ellipsis> Coursera: Deep Learning </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/LHY/ class=md-nav__link> <span class=md-ellipsis> NTU Machine Learning </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/EECS498-007/ class=md-nav__link> <span class=md-ellipsis> UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS231/ class=md-nav__link> <span class=md-ellipsis> Stanford CS231n: CNN for Visual Recognition </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS224n/ class=md-nav__link> <span class=md-ellipsis> Stanford CS224n: Natural Language Processing </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS224w/ class=md-nav__link> <span class=md-ellipsis> Stanford CS224w: Machine Learning with Graphs </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/CS285/ class=md-nav__link> <span class=md-ellipsis> UCB CS285: Deep Reinforcement Learning </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_28> <label class=md-nav__link for=__nav_28 id=__nav_28_label tabindex=0> <span class=md-ellipsis> Deep Generative Models </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_28_label aria-expanded=false> <label class=md-nav__title for=__nav_28> <span class="md-nav__icon md-icon"></span> Deep Generative Models </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/roadmap/ class=md-nav__link> <span class=md-ellipsis> Roadmap </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/MIT6.S184/ class=md-nav__link> <span class=md-ellipsis> MIT 6.S184: Generative AI with Stochastic Differential Equations </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_28_3> <label class=md-nav__link for=__nav_28_3 id=__nav_28_3_label tabindex=0> <span class=md-ellipsis> Large Language Models </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=2 aria-labelledby=__nav_28_3_label aria-expanded=false> <label class=md-nav__title for=__nav_28_3> <span class="md-nav__icon md-icon"></span> Large Language Models </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/CMU11-868/ class=md-nav__link> <span class=md-ellipsis> CMU 11-868: Large Language Model System </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/CMU11-667/ class=md-nav__link> <span class=md-ellipsis> CMU 11-667: Large Language Models: Methods and Applications </span> </a> </li> <li class=md-nav__item> <a href=%E6%B7%B1%E5%BA%A6%E7%94%9F%E6%88%90%E6%A8%A1%E5%9E%8B/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/CMU11-711/ class=md-nav__link> <span class=md-ellipsis> CMU 11-711: Advanced Natural Language Processing </span> </a> </li> </ul> </nav> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_29> <label class=md-nav__link for=__nav_29 id=__nav_29_label tabindex=0> <span class=md-ellipsis> Advanced Machine Learning </span> <span class="md-nav__icon md-icon"></span> </label> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_29_label aria-expanded=false> <label class=md-nav__title for=__nav_29> <span class="md-nav__icon md-icon"></span> Advanced Machine Learning </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/roadmap/ class=md-nav__link> <span class=md-ellipsis> Roadmap </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/CMU10-708/ class=md-nav__link> <span class=md-ellipsis> CMU 10-708: Probabilistic Graphical Models </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/STAT8201/ class=md-nav__link> <span class=md-ellipsis> Columbia STAT 8201: Deep Generative Models </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/STA4273/ class=md-nav__link> <span class=md-ellipsis> U Toronto STA 4273 Winter 2021: Minimizing Expectations </span> </a> </li> <li class=md-nav__item> <a href=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%9B%E9%98%B6/CS229M/ class=md-nav__link> <span class=md-ellipsis> Stanford STATS214 / CS229M: Machine Learning Theory </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=%E5%90%8E%E8%AE%B0/ class=md-nav__link> <span class=md-ellipsis> Postscript </span> </a> </li> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=sidebar data-md-type=toc> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--secondary" aria-label="Table of contents"> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Table of contents </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#the-place-where-dreams-start-cs61a class=md-nav__link> <span class=md-ellipsis> The place where dreams start —— CS61A </span> </a> </li> <li class=md-nav__item> <a href=#why-write-this-book class=md-nav__link> <span class=md-ellipsis> Why write this book? </span> </a> </li> <li class=md-nav__item> <a href=#pros class=md-nav__link> <span class=md-ellipsis> Pros </span> </a> </li> <li class=md-nav__item> <a href=#cons class=md-nav__link> <span class=md-ellipsis> Cons </span> </a> </li> <li class=md-nav__item> <a href=#who-is-this-book-for class=md-nav__link> <span class=md-ellipsis> Who is this book for? </span> </a> </li> <li class=md-nav__item> <a href=#special-thanks class=md-nav__link> <span class=md-ellipsis> Special thanks </span> </a> </li> <li class=md-nav__item> <a href=#want-to-join-as-a-contributor class=md-nav__link> <span class=md-ellipsis> Want to join as a contributor? </span> </a> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <figure> <p><img alt="Image title" src=../images/title.png width=600></p> </figure> <h1 id=foreword><strong>Foreword</strong></h1> <p>This is a self-learning guide to computer science, and a memento of my three years of self-learning at university.</p> <p>It is also a gift to the young students at Peking University. It would be a great encouragement and comfort to me if this book could be of even the slightest help to you in your college life.</p> <p>The book is currently organized to include the following sections (if you have other good suggestions, or would like to join the ranks of contributors, please feel free to email <a href=mailto:zhongyinmin@pku.edu.cn>zhongyinmin@pku.edu.cn</a> or ask questions in the issue).</p> <ul> <li>User guide for this book: Given the numerous resources covered in this book, I have developed corresponding usage guides based on different people's free time and learning objectives.</li> <li>A reference CS learning plan: This is a comprehensive and systematic CS self-learning plan that I have formulated based on my own self-study experience.</li> <li>Productivity Toolkit: IDE, VPN, StackOverflow, Git, Github, Vim, Latex, GNU Make and so on.</li> <li>Book recommendations: Those who have read the CSAPP must have realized the importance of good books. I will list links to books and resources in different areas of Computer Science that I find rewarding to read.</li> <li><strong>List of high quality CS courses</strong>: I will summarize all the high quality foreign CS courses I have taken and the community contributed into different categories and give relevant self-learning advice. Most of them will have a separate repository containing relevant resources as well as the homework/project implementations.</li> </ul> <h2 id=the-place-where-dreams-start-cs61a><strong>The place where dreams start —— CS61A</strong></h2> <p>In my freshman year, I was a novice who knew nothing about computers. I installed a giant IDE Visual Studio and fight with OJ every day. With my high school maths background, I did pretty well in maths courses, but I felt struggled to learn courses in my major. When it came to programming, all I could do was open up that clunky IDE, create a new project that I didn't know exactly what it was for, and then <code>cin</code>, <code>cout</code>, <code>for</code> loops, and then CE, RE, WA loops. I was in a state where I was desperately trying to learn well but I didn't know how to learn. I listened carefully in class but I couldn't solve the homework problems. I spent almost all my spare time doing the homework after class, but the results were disappointing. I still retain the source code of the project for Introduction to Computing course —— a single 1200-line C++ file with no header files, no class abstraction, no unit tests, no makefile, no version control. The only good thing is that it can run, the disadvantage is the complement of "can run". For a while I wondered if I wasn't cut out for computer science, as all my childhood imaginings of geekiness had been completely ruined by my first semester's experience.</p> <p>It all turned around during the winter break of my freshman year, when I had a hankering to learn Python. I overheard someone recommend CS61A, a freshman introductory course at UC Berkeley on Python. I'll never forget that day, when I opened the <a href=https://cs61a.org/ >CS61A</a> course website. It was like Columbus discovering a new continent, and I opened the door to a new world.</p> <p>I finished the course in 3 weeks and for the first time I felt that CS could be so fulfilling and interesting, and I was shocked that there existed such a great course in the world.</p> <p>To avoid any suspicion of pandering to foreign courses, I will tell you about my experience of studying CS61A from the perspective of a pure student.</p> <ul> <li> <p><strong><em>Course website developed by course staffs</em></strong>: The course website integrates all the course resources into one, with a well organised course schedule, links to all slides, recorded videos and homework, detailed and clear syllabus, list of exams and solutions from previous years. Aesthetics aside, this website is so convenient for students.</p> </li> <li> <p><strong><em>Textbook written by course instructor</em></strong>: The course instructor has adapted the classic MIT textbook <em>Structure and Interpretation of Computer Programs</em> (SICP) into Python (the original textbook was based on Scheme). This is a great way to ensure that the classroom content is consistent with the textbook, while adding more details. The entire book is open source and can be read directly online.</p> </li> <li> <p><strong><em>Various, comprehensive and interesting homework</em></strong>: There are 14 labs to reinforce the knowledge gained in class, 10 homework assignments to practice, and 4 projects each with thousands of lines of code, all with well-organized skeleton code and babysitting instructions. Unlike the old-school OJ and Word document assignments, each lab/homework/project has a detailed handout document, fully automated grading scripts, and CS61A staffs have even developed an <a href=https://okpy.org/ >automated assignment submission and grading system</a>. Of course, one might say "How much can you learn from a project where most of code are written by your teaching assistants?" . For someone who is new to CS and even stumbling over installing Python, this well-developed skeleton code allows students to focus on reinforcing the core knowledge they've learned in class, but also gives them a sense of achievement that they already can make a little game despite of learning Python only for a month. It also gives them the opportunity to read and learn from other people's high quality code so that they can reuse it later. I think in the freshman year, this kind of skeleton code is absolutely beneficial. The only bad thing perhaps is for the instructors and teaching assistants, as developing such assignments can conceivably require a considerable time commitment.</p> </li> <li> <p><strong><em>Weekly discussion sessions</em></strong>: The teaching assistants will explain the difficult knowledge in class and add some supplementary materials which may not be covered in class. Also, there will be exercises from exams of previous years. All the exercises are written in LaTeX with solutions.</p> </li> </ul> <p>In CS61A, You don't need any prerequesites about CS at all. You just need to pay attention, spend time and work hard. The feeling that you do not know what to do, that you are not getting anything in return for all the time you put in, is gone. It suited me so well that I fell in love with self-learning.</p> <p>Imagine that if someone could chew up the hard knowledge and present it to you in a vivid and straightforward way, with so many fancy and varied projects to reinforce your theoretical knowledge, you'd think they were really trying their best to make you fully grasp the course, and it was even an insult to the course builders not to learn it well.</p> <p>If you think I'm exaggerating, start with <a href=https://cs61a.org/ >CS61A</a>, because it's where my dreams began.</p> <h2 id=why-write-this-book><strong>Why write this book?</strong></h2> <p>In the 2020 Fall semester, I worked as a teaching assistant for the class "Introduction to Computer Systems" at Peking University. At that time, I had been studying totally on my own for over a year. I enjoyed this style of learning immensely. To share this joy, I have made a <a href=https://github.com/PKUFlyingPig/Self-learning-Computer-Science>CS Self-learning Materials List</a> for students in my seminar. It was purely on a whim at the time, as I wouldn't dare to encourage my students to skip classes and study on their own.</p> <p>But after another year of maintenance, the list has become quite comprehensive, covering most of the courses in Computer Science, Artificial Intelligence and Soft Engineering, and I have built separate repositories for each course, summarising the self-learning materials that I used.</p> <p>In my last college year, when I opened up my curriculum book, I realized that it was already a subset of my self-learning list. By then, it was only two and a half years after I had started my self-learning journey. Then, a bold idea came to my mind: perhaps I could create a self-learning book, write down the difficulty I encountered and the interest I found during these years of self-learning, hoping to make it easy for students who may also enjoy self-learning to start their wonderful self-learning journey.</p> <p>If you can build up the whole CS foundation in less than three years, have relatively solid mathematical skills and coding ability, experience dozens of projects with thousands of lines of code, master at least C/C++/Java/JS/Python/Go/Rust and other mainstream programming languages, have a good understanding of algorithms, circuits, architectures, networks, operating systems, compilers, artificial intelligence, machine learning, computer vision, natural language processing, reinforcement learning, cryptography, information theory, game theory, numerical analysis, statistics, distributed systems, parallel computing, database systems, computer graphics, web development, cloud computing, supercomputing etc. I think you will be confident enough to choose the area you are interested in, and you will be quite competitive in both industry and academia.</p> <p>I firmly believe that if you have read to this line, you do not lack the ability and commitment to learn CS well, you just need a good teacher to teach you a good course. And I will try my best to pick such courses for you, based on my three years of experience.</p> <h2 id=pros><strong>Pros</strong></h2> <p>For me, the biggest advantage of self-learning is that I can adjust the pace of learning entirely according to my own progress. For difficult parts, I can watch the videos over and over again, Google it online and ask questions on StackOverflow until I have it all figured out. For those that I mastered relatively quickly, I could skip them at twice or even three times the speed.</p> <p>Another great thing about self-learning is that you can learn from different perspectives. I have taken core courses such as architectures, networking, operating systems, and compilers from different universities. Different instructors may have different views on the same knowledge, which will broaden your horizon.</p> <p>A third advantage of self-learning is that you do not need to go to the class, listening to the boring lectures.</p> <h2 id=cons><strong>Cons</strong></h2> <p>Of course, as a big fan of self-learning, I have to admit that it has its disadvantages.</p> <p>The first is the difficulty of communication. I'm actually a very keen questioner, and I like to follow up all the points I don't understand. But when you're facing a screen and you hear a teacher talking about something you don't understand, you can't go to the other end of the network and ask him or her for clarification. I try to mitigate this by thinking independently and making good use of Google, but it would be great to have a few friends to study together. You can refer to <code>README</code> for more information on participating a community group.</p> <p>The second thing is that these courses are basically in English. From the videos to the slides to the assignments, all in English. You may struggle at first, but I think it's a challenge that if you overcome, it will be extremely rewarding. Because at the moment, as reluctant as I am, I have to admit that in computer science, a lot of high quality documentation, forums and websites are all in English.</p> <p>The third, and I think the most difficult one, is self-discipline. Because have no DDL can sometimes be a really scary thing, especially when you get deeper, many foreign courses are quite difficult. You have to be self-driven enough to force yourself to settle down, read dozens of pages of Project Handout, understand thousands of lines of skeleton code and endure hours of debugging time. With no credits, no grades, no teachers, no classmates, just one belief - that you are getting better.</p> <h2 id=who-is-this-book-for><strong>Who is this book for?</strong></h2> <p>As I said in the beginning, anyone who is interested in learning computer science on their own can refer to this book. If you already have some basic skills and are just interested in a particular area, you can selectively pick and choose what you are interested in to study. Of course, if you are a novice who knows nothing about computers like I did back then, and just begin your college journey, I hope this book will be your cheat sheet to get the knowledge and skills you need in the least amount of time. In a way, this book is more like a course search engine ordered according to my experience, helping you to learn high quality CS courses from the world's top universities without leaving home.</p> <p>Of course, as an undergraduate student who has not yet graduated, I feel that I am not in a position nor have the right to preach one way of learning. I just hope that this material will help those who are also self-motivated and persistent to gain a richer, more varied and satisfying college life.</p> <h2 id=special-thanks><strong>Special thanks</strong></h2> <p>I would like to express my sincere gratitude to all the professors who have made their courses public for free. These courses are the culmination of decades of their teaching careers, and they have chosen to selflessly make such a high quality CS education available to all. Without them, my university life would not have been as fulfilling and enjoyable. Many of the professors would even reply with hundreds of words in length after I had sent them a thank you email, which really touched me beyond words. They also inspired me all the time that if decide to do something, do it with all heart and soul.</p> <h2 id=want-to-join-as-a-contributor><strong>Want to join as a contributor?</strong></h2> <p>There is a limit to how much one person can do, and this book was written by me under a heavy research schedule, so there are inevitably imperfections. In addition, as I work in the area of systems, many of the courses focus on systems, and there is relatively little content related to advanced mathematics, computing theory, and advanced algorithms. If any of you would like to share your self-learning experience and resources in other areas, you can directly initiate a Pull Request in the project, or feel free to contact me by email (<a href=mailto:zhongyinmin@pku.edu.cn>zhongyinmin@pku.edu.cn</a>).</p> <aside class=md-source-file> <span class=md-source-file__fact> <span class=md-icon title="Last update"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg> </span> 2024-06-05 </span> </aside> <!-- Insert generated snippet here --> <script src=https://giscus.app/client.js data-repo=PKUFlyingPig/cs-self-learning data-repo-id=R_kgDOGP67ng data-category=Announcements data-category-id=DIC_kwDOGP67ns4COM9Q data-mapping=title data-reactions-enabled=1 data-emit-metadata=0 data-input-position=top data-theme=light_protanopia data-lang=zh-CN data-loading=lazy crossorigin=anonymous async>
</script> <!-- Synchronize Giscus theme with palette --> <script>
var giscus = document.querySelector("script[src*=giscus]")
// Set palette on initial load
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "dark_protanopia"
: "light_protanopia"
// Instruct Giscus to set theme
giscus.setAttribute("data-theme", theme)
}
// Register event handlers after documented loaded
document.addEventListener("DOMContentLoaded", function() {
var ref = document.querySelector("[data-md-component=palette]")
ref.addEventListener("change", function() {
var palette = __md_get("__palette")
if (palette && typeof palette.color === "object") {
var theme = palette.color.scheme === "slate"
? "dark_protanopia"
: "light_protanopia"
// Instruct Giscus to change theme
var frame = document.querySelector(".giscus-frame")
frame.contentWindow.postMessage(
{ giscus: { setConfig: { theme } } },
"https://giscus.app"
)
}
})
})
</script> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg> Back to top </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> <div class=md-copyright__highlight> Copyright &copy; 2021-present <a href=https://github.com/PKUFlyingPig target=_blank rel="noopener noreferrer">PKUFlyingPig</a> </div> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/pkuflyingpig/cs-self-learning/ target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 496 512"><!-- Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"base": "..", "features": ["header.autohide", "navigation.tracking", "navigation.top", "search.highlight", "search.share", "search.suggest", "content.code.annotate"], "search": "../assets/javascripts/workers/search.f886a092.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script src=../assets/javascripts/bundle.d7c377c4.min.js></script> <script src=../js/open_in_new_tab.js></script> <script src=../js/open_in_new_tab.js></script> </body> </html>