Samuel Wycklendt
Harvard's CS50P: Introduction to Programming with Python
Course Description:
An introduction to programming using a language called Python. Learn how to read and write code as well as how to test and “debug” it. Designed for students with or without prior programming experience who’d like to learn Python specifically. Learn about functions, arguments, and return values; variables and types; conditionals and Boolean expressions; and loops. Learn how to handle exceptions, find and fix bugs, and write unit tests; use third-party libraries; validate and extract data with regular expressions; model real-world entities with classes, objects, methods, and properties; and read and write files. Hands-on opportunities for lots of practice. Exercises inspired by real-world programming problems.
See Code: https://github.com/SamuelWyck/CS50P-Problemset-Code
Course Site: https://cs50.harvard.edu/python/2022/
Harvard's CS50X: Introduction to Computer Science
Course Description:
This is CS50, Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming, for concentrators and non-concentrators alike, with or without prior programming experience. This course teaches you how to solve problems, both with and without code, with an emphasis on correctness, design, and style. Topics include computational thinking, abstraction, algorithms, data structures, and computer science more generally. Problem sets inspired by the arts, humanities, social sciences, and sciences. More than teach you how to program in one language, this course teaches you how to program fundamentally and how to teach yourself new languages ultimately. The course starts with a traditional but omnipresent language called C that underlies today’s newer languages, via which you’ll learn not only about functions, variables, conditionals, loops, and more, but also about how computers themselves work underneath the hood, memory and all. (...)
See Code: https://github.com/SamuelWyck/CS50X-Problemset-Code
Course Site: https://cs50.harvard.edu/x/2024/
Harvard's CS50W: Web Programming with Python and Javascript
Course Description:
This course picks up where CS50x leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Django, React, and Bootstrap. Topics include database design, scalability, security, and user experience. Through hands-on projects, students learn to write and use APIs, create interactive UIs, and leverage cloud services like GitHub and Heroku. By semester’s end, students emerge with knowledge and experience in principles, languages, and tools that empower them to design and deploy applications on the Internet.
See Code: https://github.com/SamuelWyck/CS50W-Problemset-Code
Course Site: https://cs50.harvard.edu/web/2020/
Harvard's CS50SQL: Introduction to Databases with SQL
Course Description:
This is CS50's introduction to databases using a language called SQL. Learn how to create, read, update, and delete data with relational databases, which store data in rows and columns. Learn how to model real-world entities and relationships among them using tables with appropriate types, triggers, and constraints. Learn how to normalize data to eliminate redundancies and reduce potential for errors. Learn how to join tables together using primary and foreign keys. Learn how to automate searches with views and expedite searches with indexes. Learn how to connect SQL with other languages like Python and Java. Course begins with SQLite for portability’s sake and ends with introductions to PostgreSQL and MySQL for scalability’s sake as well. Assignments inspired by real-world datasets.
See Code: https://github.com/SamuelWyck/CS50SQL-Problemset-Code
Course Site: https://cs50.harvard.edu/sql/2024/
University of Colorado's Database Management Essentials
Course Description:
Database Management Essentials provides the foundation you need for a career in database development, data warehousing, or business intelligence, as well as for the entire Data Warehousing for Business Intelligence specialization. In this course, you will create relational databases, write SQL statements to extract information to satisfy business reporting requests, create entity relationship diagrams (ERDs) to design databases, and analyze table designs for excessive redundancy. As you develop these skills, you will use either Oracle, MySQL, or PostgreSQL to execute SQL statements and a database diagramming tool such as the ER Assistant or Visual Paradigm to create ERDs.
See Code: https://github.com/SamuelWyck/UC-DBME
Course Site: https://www.coursera.org/learn/database-management
Structy's Algorithms Course
Course Description:
Structy is a guided course that builds your algorithm knowledge efficiently. Develop the skill and confidence to pass your technical interviews with Structy. A course designed to teach you algorithms and not just throw you into the deep end with problems that you haven't been prepared for. Instead, we emphasize understanding of the concepts, because that is what will empower you to solve problems. This course is designed for anyone looking to gain understanding for data structures and algorithms. The most common topics in data structures and algorithms are covered in the curriculum, including but not limited to: arrays, strings, linked lists, trees, graphs, binary search trees, stacks, queues, hash tables, recursion, and dynamic programming.
See Code: https://github.com/SamuelWyck/Structy-Algorithms-Code
Course Site: https://structy.net/
University of Helsinki's Java Programming
Course Description:
During this course, you will learn the basics of computer programming, along with algorithms and object-oriented programming through the Java programming language. Unlike many programming courses found online, ours is completely unabridged; the course’s scope and material are identical to our CS1 Introduction to Programming and Advanced Programming courses. We use industry-grade tooling from day one. As such, the course is about programming in a real integrated development environment instead of a browser or an educational IDE.
See Code: https://github.com/SamuelWyck/Java-Programming
Course Site: https://java-programming.mooc.fi/