This lecture covers course expectations, introduces computer programming and its uses, and begins to familiarize you with concepts related to how programs work.
Core Tags:
declarative and imperative knowledge,flow of control,algorithms,fixed program and stored program computers,termination conditions,interpretation,compilation,syntax,static semantics,semantics,and types of errors
Lecture 2: Core Elements of a Program. This lecture covers the building blocks of straight line and branching programs: objects, types, operators, variables, execution, and conditional statements.
Core Tags:
variables,IDLE,types of objects,operators,overloading,commands,assignment,input,straight line and branching programs,looping constructs,Turing completeness,conditionals,nesting
Lecture 3: Problem Solving. This lecture covers the use of iteration to build programs whose execution time depends upon the size of inputs. It also introduces search problems and brute force and bise
.....
Lecture 4: Machine Interpretation of a Program. This lecture introduces the notion of decomposition and abstraction by specification. It also covers Python modules, functions, parameters, and scoping.
.....
Core Tags:
function,Decomposition,module,abstraction,formal parameter,actual parameter,argument,assert,scope,mapping,stack,last in first out,LIFO,strings,slicing
Lecture 5: Objects in Python. This lecture introduces Python tuples, lists, and dictionaries, as well as the concept of mutability and how to avoid problems relating to it.
Lecture 6: Recursion. This lecture finishes the discussion of dictionaries, then introduces inductive reasoning and recursion. Examples include generating the Fibonacci sequence and solving the Towers
.....
Core Tags:
dictionaries,modular abstraction,divide and conquer,recursion,tower of Hanoi,base case,Fibonacci sequence
Lecture 7: Debugging. This lecture starts with a brief explanation of why floating point numbers are only an approximation of the real numbers. Most of the lecture is about a systematic approach to de
.....
Lecture 8: Efficiency and Order of Growth. This lecture revolves around the topic of algorithmic efficiency. It introduces the random access model (RAM) of computation and "big O notation" as a way to
.....
Lecture 9: Memory and Search Methods. This lecture discusses how indirection is used to provide an efficient implementation of Python lists and other data structures. It also presents and analyzes the
.....
Lecture 10: Hashing and Classes. This lecture starts by showing how hashing can be used to achieve near constant time lookups and the concept of classes as understood by a computer. It then introduces
.....
Lecture 11: Object Oriented Programming (OOP) and Inheritance. In this lecture, we learn about object-oriented programming (OOP) and how classes are used to implement new types of objects in Python. A
.....
Core Tags:
specifications,Object-oriented programming (OOP),abstract data types,subclasses,inheritance
Lecture 12: Introduction to Simulation and Random Walks. This lecture completes the introduction of classes by showing a way to implement user-defined iterators. It then discusses simulation models, a
.....
Core Tags:
subclasses,inheritance,generator,analytic methods,simulation methods,simulations,models,random walk
Lecture 13: Some Basic Probability and Plotting Data. This lecture returns briefly to random walks, and moves on to discuss different views of non-determinism and an introduction to probability. It co
.....
Core Tags:
simulations,probability,plotting through programming
Lecture 14: Sampling and Monte Carlo Simulation. This lecture starts with some examples of how to use pylab's plotting mechanisms. It then returns to the topic of using probability and statistics to d
.....
Core Tags:
probability,Plotting,randomness,Pascal's algorithm,Monte Carlo simulation,inferential statistics,gambler's fallacy,law of large numbers
Lecture 15: Statistical Thinking. This lecture presents ways of ascertaining how dependable information extracted from samples is likely to be. It covers standard deviation, coefficient of variation,
.....
Lecture 16: Using Randomness to Solve Non-random Problems. This lecture starts by defining normal (Gaussian), uniform, and exponential distributions. It then shows how Monte Carlo simulations can be u
.....
Core Tags:
exponential growth,simulations,probability,Gaussian distributions,analytical models,distributions,Monty Hall problem
Lecture 17: Curve Fitting. This lecture is about how to use computation to help understand experimental data. It talks about using linear regression to fit a curve to data, and introduces the coeffici
.....
Lecture 18: Optimization Problems and Algorithms. This lecture continues the discussion of curve fitting, emphasizing the interplay among theory, experimentation, and computation and addressing the pr
.....
Core Tags:
Modeling,optimization,greedy algorithms,0-1 knapsack problem
Lecture 19: More Optimization and Clustering. This lecture continues to discuss optimization in the context of the knapsack problem, and talks about the difference between greedy approaches and optima
.....
Core Tags:
Knapsack problem,local and global optima,supervised and unsupervised machine learning,training error,clustering,linkage,feature vectors
Lecture 21: Using Graphs to Model Problems, Part 1. This lecture begins by finishing up k-means clustering. It then moves on to introduce the notion of modeling things using graphs (sets of nodes and
.....
Core Tags:
graphs,Pseudocode,nodes,edges,adjacency matrix,adjacency list
Lecture 22: Using Graphs to Model Problems, Part 2. This lecture returns to graph theory. It defines and gives examples of some classic graph problems: shortest path, shortest weighted path, cliques,
.....
Lecture 23: Dynamic Programming. This lecture introduces dynamic programming, and discusses the notions of optimal substructure and overlapping subproblems.
Lecture 24: Avoiding Statistical Fallacies. This lecture discusses some common ways that people use statistics to draw invalid or misleading conclusions.
Lecture 25: Queuing Network Models. This lecture introduces queuing network models and simulations. It also prepares students to read the code they are asked to study in preparation for the final exam
.....
Lecture 26: What Do Computer Scientists Do? This lecture provides some perspective on the material covered in the course. In addition to giving a high-level view of the topics covered, it provides a g
.....
Core Tags:
abstraction,Careers in computer science,computational thinking,automation
A request is being made for content based on the filters you have currently applied. Please add any extra information about what you are looking for in the box below.