This free online computer science course is an introduction to the intellectual enterprises of computer science.
The Course topics include:
* algorithms (their design, implementation, and analysis);
* software development (abstraction, encapsulation, data structures, debugging, and testing);
* architecture of computers (low-level data representation and instruction processing);
* computer systems (programming languages, compilers, operating systems, and databases); and
* computers in the real world (networks, websites, security, forensics, and cryptography).
The course does not assume any prior CS or programming experience, however, the students with previous experience might benefit of such learning as well.
Students who earn a satisfactory score on 9 problem sets (i.e., programming assignments) and a final project are eligible for a certificate. This is a self-paced course–you may take CS50x on your own schedule.
What you'll learn:
* A broad and robust understanding of computer science and programming
* How to think algorithmically and solve programming problems efficiently
* Concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development
* How to engage with a vibrant community of like-minded learners from all levels of experience
* How to develop and present a final programming project to your peers.
Note that it is a pretty famous, as well the largest (aka most popular?), 101 course at Harvard. The class routinely has 800 students. Mark Zuckerberg and Steve Ballmer have given guest lectures. Can’t join Harvard classes in person for some reason? Get your video studies at home at your own convenient pace.
Content of the lectures by topic (week):
Binary. ASCII. Algorithms. Pseudocode. Source code. Compiler. Object code. Scratch. Statements. Boolean expressions. Conditions. Loops. Variables. Functions. Arrays. Threads. Events.
Linux. C. Compiling. Libraries. Types. Standard output.
Casting. Imprecision. Switches. Scope. Strings. Arrays. Cryptography.
Command-line arguments. Searching. Sorting. Bubble sort. Selection sort. Insertion sort. O. Ω .Θ. Recursion. Merge Sort.
Stack. Debugging. File I/O. Hexadecimal. Strings. Pointers. Dynamic memory allocation.
Heap. Buffer overflow. Linked lists. Hash tables. Tries. Trees. Stacks. Queues.
HTML. CSS. PHP.
Security. Artificial intelligence.
Artificial intelligence, continued.
The training course is highly recommended!
Sources and Additional Information: