📜 ⬆️ ⬇️

Training course CS50x

Good day.

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 :

Week 0 (Topics - bits, binary calculus, ASCII, algorithms, binary expressions, conditions, cycles, variables):
(Honestly, this task is the most ridiculous, since Scratch and BYOB are very limited in functionality, and nothing good comes of it).

Week 1 (Topics - C, source code, compilers, object code, functions, comments, standard output, arithmetic operations, variables, types, type conversion, libraries, conditions, loops):


Week 2 (Themes - functions, global variables, parameters, return values, stack, arrays, strings, command line arguments, cryptography):


Week 3 (Topics - linear search, binary search, bubble sort, select sort, merge sort, asymptotic notation):


Week 4 (Topics - recursion, debugging, input / output to files, structures, pointers, memory allocation, heap):


Rest


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.

Source: https://habr.com/ru/post/160817/


All Articles