This free online computer science course is an introduction to the intellectual enterprises of computer science.
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.
Introduction
Bits. Binary. ASCII. Programming. Algorithms. Scratch. Statements. Boolean expressions. Conditions. Loops. Variables. Threads. Events.
C. Source code
Compilers. Object code. SSH. SFTP. GCC. Functions. Comments. Standard output. Arithmetic operators. Precedence. Associativity. Local variables. Types. Casting. Standard input. Libraries. Boolean expressions, continued. Conditions, continued. Loops, continued.
Functions
Global variables. Parameters. Return values. Stack. Frames. Scope. Arrays. Strings. Command-line arguments. Cryptography.
Linear search
Binary search. Asymptotic notation. Recursion. Pseudorandomness. Bubble sort. Selection sort. Insertion sort. Merge sort. Debugging.
Structures
Dynamic memory allocation. Pointers.
Debugging
Pointers, continued. Heap. File I/O. Forensics.
Linked lists
Valgrind
Bitwise operators. Hash tables. Trees. Binary search trees. Tries. Heaps. Heapsort. Huffman coding.
DOM
Inheritance. JavaScript. Events, continued. OOP. Ajax.
Preprocessing
Compiling. Assembling. Linking. CPUs.
Enterprise architectures
Virtualization. Cloud computing. Sneak previews.
Exciting conclusion
Requirements: You will need to have Flash and Quicktime installed.
Instructor: David Malan
Price: Free