Introduction to Computing with Python

Boğaziçi University

Department of Computer Engineering

Murat Özyurt

Fall 2022

CHAPTER 1: Introduction to Computing


Agenda

Section 01: Computing

ComputingHistory
ComputingUsage
ComputingLimitedResources
ComputingPerformance
ComputingBenchmark

Section 02: Python Source Code Development

ProgrammingLanguages
Python
PythonExecutionInTerminal
PythonCodingInTextEditor
PyCharm
Comments
MultilineStatements

Section 03: Turtle Graphics

DrawingASquare
DrawingTwoSquares
DrawingSquaresInTheCenter
PythonFoundations
Functions
MoreFunctions
EvenMoreFunctions
TurtleWithVariables
AssignmentStatements
AssignmentOperators
FunctionReturnValue
AdditionalPractice

Summary

CHAPTER 2: BASIC MATHS AND IO


Agenda

Section 01: Basic Maths

MathOperators
CelsiusToFahrenheit
FahrenheitToCelsius
PrecedenceInMathOperations

Section 02: Text IO

TextOutputAndStringLiteral
TextInput
SimpleMathsWithInput
IntAndInputFunctions
FileProcessing

Section 03: Drawing With Input

DrawingCircles
DrawingCirclesWithInitialRadius
AdditionalPractice

Summary

CHAPTER 3: CONTROL FLOW - IF ELSE STATEMENTS


Agenda

Section 01: if elif else

if-else
NumericComparison
if-elif-else
if-elif-else-multiple

Section 02: Logic

Logic
Logic_CalculateFare
Logic_TruthTable

Section 03: Recursive Functions

RecursiveFunctions
RecursiveFactorial
RecursiveFibonacci
RecursiveFibonacciImproved

Summary

CHAPTER 4: CONTROL FLOW - FOR LOOPS


Agenda

Section 01: Repeating Instructions

DrawingSquares
DrawingN-Gons
ChainOfRings
DrawingADashedCircle

Section 02: for Loops In Detail

forLoopStatement
BlockScope
forLoopFactorialFunction
forElse

Section 03: Printing Console Shapes With for Loops

NestedForLoops
Exercise-DashedShapes
RectangleOffsetting
Triangle
IsoscelesTriangle
OffsetIsoscelesTriangle
DrawingATree

Section 04: Random Numbers and Tuples

RandomNumbers
Tuples
Lists
IsOperator
MoreRandomNumbers
AdditionalPractice

Summary

CHAPTER 5: CONTROL FLOW - CONDITIONAL LOOP AND DATA STRUCTURES


Agenda

Section 01: Algorithms

Algorithms
RoboticArm
ServerClientCommunication

Section 02: Data Structures

FindMinMax
Dictionary
LenListTupleSet
Sort
MultidimensionalLists
AdditionalPractice

Section 03: Conditional Loop

WhileLoop
RandomShapes
NumberGuessing
AdditionalPractice

Summary

CHAPTER 6: CONTAINER DATA STRUCTURES


Agenda

Section 01: Strings in Detail

Strings
StringSlicing
StringMethods
StringFormatting

Section 02: Lists in Detail

ListsAndTuples
Slicing
Methods
Sorting
Operations

Section 03: Dictionaries in Detail

Dictionaries
DictionaryMethods
DictionaryOperations

Summary

CHAPTER 7: ANIMATIONS


Agenda

Section 01: Animating Shapes

PrimeNumbers
SingleSpiral
SpiralPairs
Animation
BouncingBalls
AnimatingSpiralWeb
AdditionalPractice

Section 02: Interactive Programming

InteractiveProgramming
InteractiveProgrammingClickColors
InteractiveProgrammingClickCircles
InteractiveProgrammingClickKeys

Summary

CHAPTER 8: OBJECT ORIENTED PROGRAMMING


Agenda

Section 01: OOP Workshop

OOP_class
OOP_constructor
OOP_baseDrawButtonShapeMethod
OOP_baseDrawButtonMethod
OOP_baseDrawShapeMethod
OOP_baseButtonSelectMethod
OOP_baseGetColorMethod
OOP_initButton
OOP_updateButtonsMethod
OOP_checkButtonClicks
OOP_updatedScreenClickMethod
OOP_Version1_singleShape
OOP_rectangleButton
OOP_Version2_rectangleButton
OOP_triangleButton
OOP_circleButton
OOP_Version3_triangleAndCircleButtons
OOP_randomColorButton
OOP_redButtonBoundary
OOP_Version4_colorButtons
OOP_keyboardInteraction
OOP_Version5_final
AdditionalPractice

Summary