OCW Scholar: Introduction to Computer Science and Programming

OCW Scholar: Introduction to Computer Science and Programming

Follow OCW Scholar: Introduction to Computer Science and Programming
Share on
Copy link to clipboard

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…

Prof. John Guttag


    • Jun 17, 2015 LATEST EPISODE
    • infrequent NEW EPISODES
    • 51m AVG DURATION
    • 38 EPISODES


    Search for episodes from OCW Scholar: Introduction to Computer Science and Programming with a specific topic:

    Latest episodes from OCW Scholar: Introduction to Computer Science and Programming

    Recitation 10: Introduction to Dynamic Programming

    Play Episode Listen Later Jun 17, 2015 38:30


    In this recitation, the class wraps up with dynamic programming and specifically the technique of memoization. Many code examples are presented to show all the applications of this technique.

    Optional Recitation: Algorithm Complexity and Class Review

    Play Episode Listen Later Jun 17, 2015 42:12


    This optional recitation reviews algorithm complexity and object-oriented programming in great detail with a focus on big O notation.

    Quiz 2 Review Session

    Play Episode Listen Later Jun 17, 2015 124:44


    In this review session the solution to practice quiz 2 are presented in detail, and the main topics of unit 2 (on the quiz 2 topics sheet) as well as some technical topics are explained with some code examples.

    Recitation 9: Directed and Undirected Node Graphs

    Play Episode Listen Later Jun 17, 2015 49:57


    This recitation reviews the details of directed and undirected node graphs as well as explaining the difference between depth-first search and breath-first search with an extensive explanation of the code involved in graph creation and the search methods

    Recitation 8: Hierarchical and k-means Clustering

    Play Episode Listen Later Jun 17, 2015 50:49


    This recitation reviews hierarchical and kmeans clustering in great detail with many different code examples. It also discusses the merits and disadvantages of both clustering and how to calculate error.

    Recitation 6: Probability and Statistics

    Play Episode Listen Later Jun 17, 2015 53:28


    This recitation video covers some basic probability and statistics, as well as simulation methods for estimating unknown probabilites. Includes worked examples, probability distributions, mean and standard deviation, and plotting graphs in Python.

    Recitation 7: Distributions, Monte Carlo, and Regressions

    Play Episode Listen Later Jun 17, 2015 47:26


    This recitation discusses different types of data distributions, Monte Carlo simulations and data curve regressions in great detail and is heavy in code examples and explanations.

    Recitation 5: Quiz 1 Answers and Object-Oriented Programming

    Play Episode Listen Later Jun 17, 2015 53:38


    This recitation goes over the answers to Quiz 1 and introduces object-oriented programming (classes) in comparison to types.

    Recitation 3: Lists and their Elements, Sorting, and Recursion

    Play Episode Listen Later Jun 17, 2015 50:22


    This recitation covers lists, list elements, and a discussion of sorting techniques. Introduces recursion, base cases, and simplifying problems.

    Recitation 4: Recursion, Pseudo code, and Debugging

    Play Episode Listen Later Jun 17, 2015 50:23


    This recitation further explains recursion, pseudo code and debugging with several examples. The recitation also talks about optional parameters and floating point comparisons and float's representation in python.

    Recitation 2: Loops, Tuples, Strings, and Functions

    Play Episode Listen Later Jun 17, 2015 57:41


    This recitation reviews the basics and the specifics of loops, tuples, strings, and functions in detail.

    Recitation 1: Introduction to Coding Concepts

    Play Episode Listen Later Jun 17, 2015 52:28


    This recitation covers an introduction to what coding is, how the computer executes code, and to simple coding constructs, including syntax, semantics, object types, if statements, and loops.

    Lecture 23: Dynamic Programming

    Play Episode Listen Later Jun 17, 2015 53:40


    This lecture covers dynamic programming, optimal path, overlapping subproblems, specifications, restrictions, efficiency, and pseudo-polynomials.

    Lecture 21: Using Graphs to Model Problems, Part 1

    Play Episode Listen Later Jun 17, 2015 50:51


    This lecture covers graphs and graphing techniques in Python. Includes: pseudocode, nodes, edges, adjacency matrices, and adjacency lists.

    Lecture 20: More Clustering

    Play Episode Listen Later Jun 17, 2015 49:08


    This lecture covers clustering, include feature vectors, scaling, and k-means clustering.

    Lecture 26: What Do Computer Scientists Do?

    Play Episode Listen Later Jun 17, 2015 50:04


    In the final lecture we will discuss careers in computer science, computational thinking, abstraction, and automation.

    Lecture 25: Queuing Network Models

    Play Episode Listen Later Jun 17, 2015 52:38


    This lecture covers queuing networks and simulations, Poisson distributions, wait time, queue length, server utilization, FIFO, LIFO, and SRPT.

    Lecture 24: Avoiding Statistical Fallacies

    Play Episode Listen Later Jun 17, 2015 49:35


    This lecture discusses common statistical fallacies and how to avoid them. Topics include: statistics, plotting, correlation, causation, bias, logical fallacies, data enhancement, and the Texas sharpshooter fallacy.

    Lecture 16: Using Randomness to Solve Non-random Problems

    Play Episode Listen Later Jun 17, 2015 49:43


    This lecture continues discussion on analytical vs. simulation models for problem solving. Topics include Gaussian distributions, analytical models, simulations, exponential growth, probability, distributions, Monty Hall problem

    Lecture 14: Sampling and Monte Carlo Simulation

    Play Episode Listen Later Jun 17, 2015 50:51


    In this lecture we continue working with simulations, covering the Monte Carlo simulation, Pascal's algorithm, inferential statistics, the gambler's fallacy, and the law of large numbers.

    Lecture 22: Using Graphs to Model Problems, Part 2

    Play Episode Listen Later Jun 17, 2015 48:54


    In this lecture we will continue our discussion of graphs and optimization. Examples include disease spread, degrees of separation, and shortest path problems.

    Lecture 13: Some Basic Probability and Plotting Data

    Play Episode Listen Later Jun 17, 2015 42:49


    This lecture relies heavily on probability as we continue working with simulations. We will cover stochastic methods, randomness, probability, data visualization, and plotting graphs using Python.

    Lecture 19: More Optimization and Clustering

    Play Episode Listen Later Jun 17, 2015 49:42


    This lecture covers optimization techniques and clustering. Topics include: the knapsack problem, local and global optima, machine learning, training error, hierarchical clustering, k-means clustering, linkage criteria, and single vs. complete linkage.

    Lecture 18: Optimization Problems and Algorithms

    Play Episode Listen Later Jun 17, 2015 49:41


    This lecture covers optimization and algorithms, including the so-called greedy algorithms, modeling, and the 0-1 knapsack problem.

    Lecture 17: Curve Fitting

    Play Episode Listen Later Jun 17, 2015 50:59


    This lecture covers curve fitting, as well as arrays, the numpy function, pylab, least squares fit, and model predictions.

    Lecture 4: Machine Interpretation of a Program

    Play Episode Listen Later Jun 17, 2015 50:18


    This lecture explains how a machine will interpret your written programs. Covers: decomposition, modules, functions, abstraction, formal and actual parameters, argument, scope, mapping, stacks, last in first out, strings, slicing.

    Lecture 15: Statistical Thinking

    Play Episode Listen Later Jun 17, 2015 51:30


    In this lecture we will discuss statistical certainty. What are variance, standard deviation, and standard error? How can we determine the statistical significance of a result?

    Lecture 8: Efficiency and Order of Growth

    Play Episode Listen Later Jun 17, 2015 50:10


    This lecture covers programming efficiency, problem reduction, RAM, as well as exponential growth, polynomial growth, logarithmic growth, and global variables.

    Lecture 7: Debugging

    Play Episode Listen Later Jun 17, 2015 49:57


    This lecture covers some basics of debugging programs, including approximations and runtime errors.

    Lecture 9: Memory and Search Methods

    Play Episode Listen Later Jun 17, 2015 48:07


    This lecture discusses memory and search methods, including storage, indirection, sorting, merges.

    Lecture 12: Introduction to Simulation and Random Walks

    Play Episode Listen Later Jun 17, 2015 50:24


    In this lecture we will begin looking at simulations as a method of problem solving. This includes the use of the random walk model, and other analytic methods for problem solving.

    Lecture 11: Object Oriented Programming (OOP) and Inheritance

    Play Episode Listen Later Jun 17, 2015 49:36


    This lecture covers object oriented programming, as well as abstract data types, specifications, subclasses, and inheritance.

    Lecture 10: Hashing and Classes

    Play Episode Listen Later Jun 17, 2015 44:56


    This lecture covers the following topics: hashing, bucket, collision, linear rehash, exception, class, module, built-in class.

    Lecture 5: Objects in Python

    Play Episode Listen Later Jun 17, 2015 50:58


    This lecture covers objects in python, including: tuples, lists, dictionaries, methods, identifiers, modifying objects, aliasing, mutability.

    Lecture 6: Recursion

    Play Episode Listen Later Jun 17, 2015 49:24


    This lecture covers the following topics: dictionaries, modular abstraction, divide and conquer, recursion, tower of Hanoi, base case, Fibonacci sequence.

    Lecture 2: Core Elements of a Program

    Play Episode Listen Later Jun 17, 2015 49:49


    This lecture covers the building blocks of a program: objects, operators, variables, execution, and conditional statements. It also discusses common errors related to the topics covered.

    Lecture 3: Problem Solving

    Play Episode Listen Later Jun 17, 2015 47:56


    This lecture covers problem solving in programming, including: termination, decrementing functions, exhaustive enumeration, brute force, while and for loops, approximation, specifications, bisection search.

    Lecture 1: Introduction to 6.00

    Play Episode Listen Later Jun 17, 2015 41:28


    This lecture covers course expectations, introduces computer programming and its uses, and begins to familiarize the student with concepts related to how programs work.

    Claim OCW Scholar: Introduction to Computer Science and Programming

    In order to claim this podcast we'll send an email to with a verification link. Simply click the link and you will be able to edit tags, request a refresh, and other features to take control of your podcast page!

    Claim Cancel