Intensive Introduction to Computer Science Open Learning Course from Harvard
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 teaches students how to think more carefully
and how to solve problems more effectively. Problem sets involve extensive
programming in C as well as PHP and JavaScript.
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
* Familiarity in a number of languages, including C, PHP,
and JavaScript plus SQL, CSS, and HTML
* 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.
Lectures
Content of the lectures by topic (week):
Week 0
Binary. ASCII. Algorithms. Pseudocode. Source code.
Compiler. Object code. Scratch. Statements. Boolean expressions. Conditions.
Loops. Variables. Functions. Arrays. Threads. Events.
Week 1
Linux. C. Compiling. Libraries. Types. Standard output.
Week 2
Casting. Imprecision. Switches. Scope. Strings. Arrays.
Cryptography.
Week 3
Command-line arguments. Searching. Sorting. Bubble sort.
Selection sort. Insertion sort. O. Ω .Θ. Recursion. Merge Sort.
Week 4
Stack. Debugging. File I/O. Hexadecimal. Strings. Pointers.
Dynamic memory allocation.
Week 5
Heap. Buffer overflow. Linked lists. Hash tables. Tries.
Trees. Stacks. Queues.
Week 6
TCP/IP. HTTP.
Week 7
HTML. CSS. PHP.
Week 8
MVC. SQL.
Week 9
JavaScript. Ajax.
Week 10
Security. Artificial intelligence.
Week 11
Artificial intelligence, continued.
Week 12
Exciting conclusion.
The training course is highly recommended!
Sources and
Additional Information: