free online education websites
» Program Design – an introductory course tutorial for leaning how to start computer programming.
Program Design will teach you step-by step how to properly begin programming in a language that you choose. As you complete and document your tasks, your finshed program will be less difficult to you and others to update and fix later on. This course covers three main things you will accomplish:
* Understanding the Program
* Using Design Tools to Create a Model
* Develop Test Data”
» Data Structures – learn programming principals and methods via these course webcasts.
These video course lectures explain how to use and code in Java the following: fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures, arrays strings, abstract data types, hash tables, and storage management. Also taught are software engineering principles and algorithms for sorting and searching. Here is the Data Structures course online with lectures notes.
These lecture videos and notes teach programming and how to use abstraction. Important topics covered are: building abstractions, computational processes, higher-order procedures, compound data, data abstractions, controlling interactions, generic operations, self-describing data, message passing, streams and infinite data structures, meta-linguistic abstraction, interpretation of programming languages, machine model, compilation, and embedded languages.
This computer science and programming course focuses on two activities: 1) showing you why and how computation is used with solving problems, and 2) write programs using Python that accomplish useful goals and outcomes.
Learn how to program and code using the Python programming language. This course teaches how to plan, layout and organize your programs, and goes over how Python is coded and also covers its grammar.
This course book is directed mainly towards beginning programmers, and it is also useful for experienced programmers who want to brush up on their Java programming and software engineering skills.
This course teaches software engineering and programming in Java. It will give you an understanding of how to produce and write high quality applications that accomplish real world solutions while learning Java using utility libraries that help you become a more efficient programmer.
» Introduction to Algorithms – teaches the usage of algorithms in programming and application development.
Learn how to do mathematical modeling of computational problems. This course teaches many common algorithms, algorithmic paradigms, and data structures used to solve these problems. It focuses on the association between algorithms and programming, and teaches performance measures and analysis techniques for the computational problems presented.
» Modularization and C++ Program Layout – how to layout and code a program in the C++ programming language
This course discusses and covers what modular programming is all about, and reviews a C++ coding example that demonstrates control and specific task functions. You’ll also learn about the layout of C++ programs and how they are structured.
» Object Oriented Programming in C++ – learn C++ development using object-oriented programming
Apply your procedural design and programming knowledge to learn object-oriented software engineering concepts and techniques. You will learn how to use and apply the following object-oriented programming principles: abstraction, inheritance and polymorphism, decomposition, and component re-use, in the context of the C++ programming language.
Begin coding simple C programs, and then dive into how C memory manipulation works, and learn how to code using basic and more advanced C++ classes while using the C++ Standard Template Libraries. This course also will provide you with several technical interview tips.
This course gets you started with learning how to program with shared and distributed memory, and teaches you how to code using openMP and MPI. I will give you some great hands-on experience with parallel computing focusing on numerical type applications.