Skip to content
This repository was archived by the owner on Dec 1, 2022. It is now read-only.

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Course Calendar

Preseason

Module Start Date Overview
Module 0 TBD This Module introduces you to CS50x and gives you the foundation you’ll need before you start programming. You will be introduced to binary counting, algorithms, and additional concepts you’ll need to begin thinking like a computer programmer. By the end of the module, you will be familiar with pseudocode, and a graphical language called Scratch, which you'll use to complete Problem Set 0.

Unit 1: Fundamentals

Module Start Date Overview
Module 1 TBD You will write your first lines of code using a programming language called C. To do that, you'll be introduced to CS50's integrated development environment (or "IDE"), which is where you'll be writing code for remainder of the course. You will also dive more deeply into some of the concepts discussed in Module 0 such as loops, conditionals, variables, and functions - except using C instead of Scratch. In Problem Set 1 you will use loops to draw a picture made of '#' characters on the screen, and do some other problems involving basic arithmetic.
Module 2 TBD Module 2 continues our whirlwind tour through the fundamental constructs of programming in C. You'll be introduced to some new data types including chars and arrays, learn more about strings, and learn how to write programs that accept command-line arguments. In Problem Set 2, you will create programs to encrypt and decrypt secret messages!
Module 3 TBD Module 3 is all about analyzing and improving the performance of algorithms. You'll also be introduced to a beautiful and mind-bending concept called recursion. Additionally, we will go back and review some of the topics from Modules 1 and 2 to reinforce your comfort with those concepts. In Problem Set 3, you'll implement an algorithm to sort a very large list very efficiently, and another algorithm to search quickly through that list to find a "needle in the haystack".

Unit 2: C, Continued and Data Structures

Module Start Date Overview
Module 4 TBD This is the point when you will tackle more advanced concepts in the C programming language. In Module 4 you will learn much more about where and how data is stored in the computer's memory, and how to leverage and manage your program's use of that memory using pointers and dynamic memory allocation. Additionally you'll be introduced to structs, a high-level data structure to define groups of data, and file i/o, the process by which a program can read and write data to and from an external file. In Problem Set 4, you will perform "digital forensics", sifting through the raw data of a digital camera to recover its deleted (top-secret) images.
Module 5 TBD You will start off with a review of pointers and memory, and then learn about data structures that will allow you to develop more complex programs. There are some limitations to the arrays that you have already learned about, and these new data structures-- Linked Lists, Stacks, Queues, Trees, Tries and Hash Tables-- will help you to store and manage your data in novel ways. In Problem Set 5, you will leverage the power of these data structures to write a lightning-fast algorithm to search through a giant dictionary of words.

Spring Break!

Module Start Date Overview
Spring <br> TBD No class on Tuesday the 15th and Thursday the 17th.

Unit 3: Web Development

Module Start Date Overview
Module 6 TBD You are going to transition to Web Programming in this module. You will discover the inner-workings of HTTP and TCP/IP, internet protocols whose mysterious acronyms you are probably familar with. You will also be introduced to HTML, the markup language used to create web pages. Finally, you will learn about web servers (programs that serve up web pages). In Problem Set 6, you will write your own web server in C.
Module 7 TBD On the homestretch now! You begin your journey with an introduction to PHP, a programming language often used for back-end web programming, to create dynamically generated HTML content. You will also learn how to make your website store and retrieve data from a database using a language called SQL. Finally, you will learn how to use the MVC paradigm to write more eloquent and reusable code. In Problem Set 7, you will make a website that allows user to manage a finance portfolio, buying and selling (imaginary) stock in real companies.
Module 8 TBD In the last module you’ll learn yet another language, Javascript, which runs on the front-end in the user's browser, and allows you to manipulate your page’s HTML without talking to the server. You’ll also learn a technique called AJAX, which, using fancy work with functions, allows your page to communicate with the server and update itself without ever needing to refresh. Finally, you’ll learn about security on the web. In Problem Set 8, you will create a geographic news feed, a page on which local news headlines are overlayed on top of an interactive map of the US.

Postseason: Skill Tracks

Module Start Date Overview
Java Track
or
Web Track
TBD Coming Soon. Additional learning tracks on Object-Oriented programming and continued Web Development.