GithubHelp home page GithubHelp logo

education-cs50's Introduction

edX cs50

This is my work on Harvard's cs50 course via edX in 2017, taught by the delightful David J. Malan.

It is a copy of the "submit50" repository that is created by the course tools to automatically submit and unit test your code. For that reason, it has an unusual structure to it - each week's work is contained in a different branch. If the repo looks empty, make sure you're not looking at the master branch.

I completed the entire course except for the final project. The final project was effectively any personal project of your choosing, of which I have several, but I never felt the need to submit any for a pass/fail mark.

Course contents

I did this course a few years ago, so this is a broad overview only:

  1. Basic concepts: binary data, different ways of representing data, basic introduction to algorithms, example of binary search and starting to think about efficiency. Using Scratch to demonstrate basic concepts of algorithms and programming.
  2. Introduction to C: basic examples, compiling and dealing with compile-time errors, control structures, getting user input. Different data types, floating point imprecision and integer overflows.
  3. Arrays: more on compiling and debugging. Data types and sizes in memory. Arrays and strings, ASCII representation and zero-termination. Taking arguments from the command line.
  4. Algorithms: linear vs. binary search, different methods of sorting integers, and big O notation. Structs in C. Recursion and merge sort.
  5. Memory: introduction to hexadecimal. Pointer dereferencing and arithmetic in C. Using this to iterate over and copy strings, and open and traverse through files. Allocating and deallocating memory with malloc() and free(). Introduction to the heap and the stack.
  6. Data structures: creating, traversing and freeing linked lists, trees and hash tables in C.
  7. Python: introduction to Python syntax and comparing to C.
  8. SQL: introduction to databases, database design and SQL.
  9. Web development: using Flask (Python), HTML/CSS and an SQL database via SQLAlchemy.

education-cs50's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.