Before enrolling in the Harvard CS50x course, I first flipped through the search, looking for reviews about it. I was surprised to find that there are not so many results. I hope this brief information will help other sufferers understand whether they need it.
So, what does the edX website tell us about this course: It is a microscopic concept.Topics include abstraction, algorithms, data structures, encapsulation, resource management, software engineering, and web development.Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming.As of Fall 2012, the on-campus version of CS50x is Harvard's largest course . ')
Translated into Russian, this means the following: everyone can enroll in the course, even if you have 3 classes of a parochial school behind you. In the process of learning will be used C, PHP, JS, SQL, CSS and HTML. Unlike the MIT 6.00X course, where High School algebra is required, there are no requirements for math when entering the CS50x, which is good, because I haven't developed a relationship with a higher education.
A few words about the course teacher, David Malane
Since, as I wrote above, I went to college 3 times in my life, I enrolled in the course and expected that the course would be led by a battered man with a bald spot that would take a long time to explain the printf () operator, and then immediately how to build a third order matrix. As if not so. David is a young enough lecturer, while the energy from which he leads the course is enough to charge the sat down laptop. As an example - right at the first lecture, he showed the difference between linear and logarithmic function execution time, first counting 10 students over their heads, saying, “no, this is boring,” and then asked students in the hall to stand up, break up into pairs, and sit down each the second, calling his neighbor his number, until he was left alone with the total sum of all students in the audience. I explained it messy enough, so at the 17th minute of the video you can see how it looked. Well, the algorithm for finding socks right in the audience, of course, also made me laugh. Similarly, the rest of the lectures. Is it boring Not. Interesting? Yes!
Typical week in CS50
Usually a week consists of 4 parts: 1. Video lecture. It is divided into 2 parts (Monday and Wednesday, as it is conducted at Harvard), but we get it in one week. Each lecture can be downloaded in 4 resolutions (up to 1080p), there are subtitles in English and Russian (machine translation from google translate). Also for each lecture the source codes, slides, and additional files are being used. 2. Problem Set (also called p-set). This is our weekly assignment. It is divided into 2 parts - Standard edition and Hacker edition. Standard edition, you must decide on a mandatory basis, and send to the server cs50 to receive the assessment. Hacker edition is solved for your own pleasure, and send it is not necessary. 3. Sections. This is a video from the room where students gather to understand some subtleties, or, if they have problems, David’s helpers explain the problem-solving algorithm. 4. Shorts. Short videos explaining one particular topic. For example, what are arrays, how does Caesar’s cipher, bubble sort, etc. work? If you have problems with algorithms, I advise you to look at this particular part.
P-sets
Since the course started only in October, only 4 weeks have been aired, although the rest are on torrents and can be easily downloaded. However, assignments will be available only at the time of posting the video on the edX website. Below I will write what tasks you decide with your own head and hands :
SE: Write Hello World. Write the temperature conversion from degrees Celsius to degrees Fahrenheit Write a program that builds the ladder Mario with alignment on the right side Write the minimum number of coins with which you can give change (69 cents is 25 + 25 + 10 + 5 + 1 + 1 + 1 + 1 = 8 coins)
HE: Counting checksum of plastic cards. (Checked on my cards - it works, damn it!) Ladder from Mario, but in both directions
Week 2 (Themes - functions, global variables, parameters, return values, stack, arrays, strings, command line arguments, cryptography):
SE: Implement Caesar's cipher Implement the Vigenere cipher
HE: Write a DES password cracker (by dictionary and brute force)
SE: To complete the implementation of the game "Balda", which the lazy CS50-participants did not complete to the end. Namely, the display of characters on the screen, the search word in the dictionary, turning the matrix of letters 90 degrees
HE: same as SE, but additionally you need to implement hints, and the points are calculated on the basis of the "cost" of letters
The current rate is from October 15 to April 15. In total there will be 8 psets, 2 exams, and 1 project that you will need to do on your own, or with someone else. You need to sign up for the course right now at any time, the main thing is to complete all the tasks until April 15. On average, one week takes from 4 to 12 hours, including watching a video. Of course, if you, like me, do not like to use gdb, and instead use printf (), the time can grow significantly.
In general, I think this is an excellent course, if you want to tighten the basic knowledge in programming and algorithms, you have free time to spend it with benefit, or you want to hang a diploma with the Harvard logo in front of the monitor. I advise everyone interested to follow the link and register. You will not regret, I promise.