CS50x Helpers provide you with all the resources you will require to excel at CS50x.

Anyone who’s read Programming Pearls or any other Computer Science books and doesn’t have a grounding in Mathematics will have hit a wall when they reached chapters that mention O(N log N) or other seemingly crazy syntax. Hopefully this article will help you gain an understanding of the basics of Big O and Logarithms.

A nice guide to Big O nottion is provided by Rob Bell in his paper at A beginner's guide to Big O nottion

The result of the analysis of an algorithm is usually a formula giving the amount of time, in terms of seconds, number of memory accesses, number of comparisons or some other metric, that the algorithm takes.

In its simplest form, a logarithm answers the question: "How many of one number do we multiply to get another number?"

Example: How many 2s do we multiply to get 8?

Answer: 2 × 2 × 2 = 8, so we needed to multiply 3 of the 2s to get 8

So the logarithm is 3

We write "the number of 2s we need to multiply to get 8 is 3" as:

log_{2}(8) = 3

The number we are multiplying is called the "base", so we can say:

"the logarithm of 8 with base 2 is 3"

or "log base 2 of 8 is 3"

or "the base-2 log of 8 is 3"

Notice we are dealing with three numbers:

the base: the number we are multiplying (a "2" in the example above)

how many times to use it in a multiplication (3 times, which is the logarithm)

The number we want to get (an "8")

A basic explaination can be found here

A more detailed and strict description is here

These are words. Can you show me a table where these values are compared?

Sure! Note that the natural logarithm has been used for the example.

n = | log(n) | n | nlog(n) | n^2 | n^2log(n) | n^3 | e^n | n^n | n! |
---|---|---|---|---|---|---|---|---|---|

1 | 0.0 | 1 | 0 | 1 | 0 | 1 | 2.7 | 1 | 1 |

5 | 1.6 | 5 | 8 | 25 | 40 | 125 | 148.4 | 3125 | 120 |

10 | 2.3 | 10 | 23 | 100 | 2300 | 10000 | 22026.5 | 1.0x10^20 | 3.6x10^6 |

50 | 3.9 | 50 | 195 | 2500 | 9750 | 125000 | 5,2×10^21 | 8.9x10^84 | 3.0x10^64 |

100 | 4.6 | 100 | 460 | 10000 | 46000 | 1000000 | 2.7x10^43 | 1.0x10^200 | 9.3x10^157 |

200 | 5.3 | 200 | 1060 | 40000 | 212000 | 8000000 | 7.2x10^86 | 1.6x10^460 | 7.9x10^374 |

500 | 6.2 | 500 | 3100 | 250000 | 1550000 | 125000000 | 1.4x10^217 | 3.0x10^1349 | 1.2x10^1134 |

1000 | 6.9 | 1000 | 6900 | 1000000 | 6900000 | 1000000000 | 2.0x10^434 | 1.0x10^3000 | 4.0x10^2567 |

We are working tirelessly to gather the most learned members in the community to help CS50 students having difficulty live, online. The service will be arranged very soon. We will be looking forward to your feedback in this regard.

You may take CS50x at your own pace, starting and finishing anytime in 2015.

Visit edx.org/faq and/or CS50 faq page

No. Simply follow the instructions above to download and install the new appliance.

Yes, but be aware that some problem sets are different this year.

Request form for subscription to Newsletter coming soon.

Coming Soon.

“Demanding, but definitely doable. Social, but educational. A focused topic, but broadly applicable skills. CS50 is the quintessential Harvard course.”

From the CS50 website

“CS50 is exceptional for its size, its resources and the cult of personality around its charismatic leader. It is more than just a class at Harvard; it is a cultural touchstone, a lifestyle, a spectacle. This is CS50, and it’s here to stay.”

From the Harvard Crimson