编程 · 9/11

哈佛 CS50x:学习进度记录

我正在以在线旁听生的身份学习哈佛的 CS50x,一门计算机科学入门课程。这个页面记录我完成了哪些习题集,以及每一题让我收获了什么,完全不含任何解题代码,这符合 CS50 的学术诚信政策,该政策禁止在学习期间公开发布作业答案。

下面的记录会自动更新。每次构建网站时,它都会从一个单独的仓库 rubengariazzo-creator/cs50x-journey 中获取,那个仓库里只有我的进度和个人心得。心得原文为英文。

9/10 个习题集已完成 (90%)

  • Week 0: Scratch

    Learned foundational programming concepts (sequencing, loops, conditionals, variables, events) through visual block-based programming, before touching any text-based syntax.

  • Week 1: C

    Learned to compile and debug C programs, working with variables, types, conditionals, loops, functions, and command-line arguments.

  • Week 2: Arrays

    Learned to work with arrays and strings as sequences of characters, plus an introduction to cryptography concepts (basic ciphers) as a motivating application.

  • Week 3: Algorithms

    Learned algorithmic complexity (Big O notation), searching algorithms (linear and binary search), several sorting algorithms (bubble, selection, merge sort), and recursion.

  • Week 4: Memory

    Learned how memory actually works: pointers, memory addresses, dynamic allocation with malloc/free, the stack vs. the heap, and using Valgrind to catch memory leaks.

  • Week 5: Data Structures

    Learned to build dynamic data structures from pointers and structs: linked lists, trees, tries, and hash tables.

  • Week 6: Python

    Transitioned from C to Python: dynamic typing, exceptions, libraries, and how much the same algorithmic ideas look different in a higher-level language.

  • Week 7: SQL

    Learned relational database design and SQL: writing SELECT/INSERT/UPDATE/DELETE queries, joins, indexes, and why parameterized queries matter for avoiding SQL injection.

  • Week 8: HTML, CSS, JavaScript

    Learned how the web works under the hood: HTTP requests and responses, structuring pages with HTML, styling them with CSS and Bootstrap, and making them interactive with JavaScript and the DOM.

  • Week 9: Flask

查看全部项目