OML Search

Software Programming

Looking for software programming help?
We have free video lessons on software programming languages. The programming languages available are Java and Python.

Python Programming Language

A series of video lessons on the Python Programming Language given by Khan Academy.

Introduction to Programs Data Types and Variables Writing a basic program. Basics of data types, variables and conditional statements Python Lists Understanding the basics of lists in Python
For Loops in Python Basics of for loops in Python While Loops in Python Seeing that a while loop can do the same thing as a for loop
Fun with Strings Experimenting and seeing what we can do with strings Writing a Simple Factorial Program(Python 2) Writing a simple factorial program with a "for" loop
Stepping Through the Factorial Program Stepping through what happens when a user inputs a particular value into our factorial program Flowchart for the Factorial Program
Python 3 Not Backwards Compatible with Python 2 Understanding why the example program would not run in Python 3 and how to fix it.  



Defining a Factorial Function Diagramming What Happens with a Function Call Variable scope and function calls
Recursive Factorial Function Introduction to recursion. Comparing Iterative and Recursive Factorial Functions
Exercise - Write a Fibonacci Function Introduction to the Fibonacci Sequence and a programming challenge
Iterative Fibonacci Function Example One way to write a Fibonacci function iteratively Stepping Through Iterative Fibonacci Function Understanding how the iterative Fibonacci function works for a particular example
Recursive Fibonacci Example Using recursion to write a fibonacci function Stepping Through Recursive Fibonacci Function Understanding why and how the recursive Fibonacci function works
Exercise - Write a Sorting Function Challenge to write a Python function that can sort a list in-place Insertion Sort Algorithm Visual description of the insertion sort algorithm
Insertion Sort in Python Basic implementation of insertion sort algorithm Stepping Through Insertion Sort Function Clarifying what "break" does and stepping through the insertion sort implementation


MIT 6.00 Intro to Computer Science & Programming

This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Python programming language.

  • Introduction to Programming
    Lecture 1Goals of the course; what is computation; introduction to data types, operators, and variables
    Lecture 2Operators and operands; statements; branching, conditionals, and iteration

    Lecture 3Common code patterns: iterative programs
    Lecture 4Decomposition and abstraction through functions; introduction to recursion

    Lecture 5Floating point numbers, successive refinement, finding roots
    Lecture 6 Bisection methods, Newton/Raphson, introduction to lists

    Lecture 7Lists and mutability, dictionaries, pseudocode, introduction to efficiency
    Lecture 8Complexity; log, linear, quadratic, exponential algorithms

    Lecture 9: Binary search, bubble and selection sorts
    Lecture 10: Divide and conquer methods, merge sort, exceptions

    Lecture 11: Testing and debugging
    Lecture 12: More about debugging, knapsack problem, introduction to dynamic programming

    Lecture 13: Dynamic programming: overlapping subproblems, optimal substructure
    Lecture 14: Analysis of knapsack problem, introduction to object-oriented programming

    Lecture 15: Abstract data types, classes and methods
    Lecture 16: Encapsulation, inheritance, shadowing

    Lecture 17: Computational models: random walk simulation
    Lecture 18: Presenting simulation results, Pylab, plotting

    Lecture 19: Biased random walks, distributions
    Lecture 20: Monte Carlo simulations, estimating pi

    Lecture 21: Validating simulation results, curve fitting, linear regression
    Lecture 22: Normal, uniform, and exponential distributions; misuse of statistics

    Lecture 23: Stock market simulation
    Lecture 24: Course overview; what do computer scientists do?

Computer Programming Methodology (Java)

A Free Java Programming Course from Stanford.

Programming Methodology (CS106A) is an Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Uses the Java programming language. Emphasis is on good programming style and the built-in facilities of the Java language.

  • Java Programming Course
    Lecture 1 Course Overview & Computer Programming
    Lecture 2 Introducing Karel and the commands

    Lecture 3 Karel ֠Common errors, comments, and advanced instructions
    Lecture 4 History of computing and introduces programming in Java

    Lecture 5 Graphics, objects, classes, variables, and values pertaining to Java
    Lecture 6 Expressions, variables, and values, conditions, scopes, if statements, and different loops

    Lecture 7 Loops, function, methods, and returning
    Lecture 8 More details on methods and functions

    Lecture 9 Strings, Classes and how to combine the previous topics and lectures together
    Lecture 10 Classes, constructors, instance variables, setters, strings, extending, interface, labels, and GArcs

    Lecture 11 GObjects, GImage, Gcompound, and Gpolygons. How to incorporate the mouse and keyboard into the graphics
    Lecture 12 Enumeration

    Lecture 13 String processing and characters
    Lecture 14 Memory and what happens to a computer internally when programming

    Lecture 15 Pointers and memory, reading files, creating files, and over writing files
    Lecture 16 Arrays

    Lecture 17 Arrays and array lists
    Lecture 18 Arrays and Debugging

    Lecture 19 Interfaces
    Lecture 20 Graphical User Interface

    Lecture 21: Interactions
    Lecture 22: Programming Methodology (Stanford)

    Lecture 23: Searching and sorting
    Lecture 24 How online music companies sort and classify their music

    Lecture 25 Programming Methodology (Stanford)
    Lecture 26 Programming Methodology (Stanford)

    Lecture 27 Programming Methodology (Stanford)
    Lecture 28 Programming Methodology (Stanford)

Try the free Mathway calculator and problem solver below to practice various math topics. Try the given examples, or type in your own problem and check your answer with the step-by-step explanations.
Mathway Calculator Widget


OML Search


We welcome your feedback, comments and questions about this site or page. Please submit your feedback or enquiries via our Feedback page.