Introduction to Computer Science and Programming

61201
As tought for subject SM242013 - 2000

Lecture 1: Introduction to 6.00

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

Topics covered during this lecture:
Suggested reading materials available!

Lecturer suggest you to use these materials for this lecture. Reading material details are shown below

7.699

Pengenalan Teknologi Informasi
I. Abdul Kadir; II. Terra CH. Triwahyuni
ANDI , 2005

7.699

Pengenalan Teknologi Informasi

I. Abdul Kadir; II. Terra CH. Triwahyuni
ANDI , 2005

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.

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 bisection for solving them.

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. Finally, it uses the Python assert statement and type 'str'.

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 of Hanoi problem.

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 debugging.

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 talk about order of growth. It concludes with binary search.

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 efficiency of selection and merge sort.