哈佛 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
