Course Outline

CSE20 Syllabus


Lecture 1 - Intro

  • Syllabus
  • Class Resources Online
    • Canvas
    • Zoom Meetings
  • Assignments and Quizzes
  • Discussion and Tutoring Sections
  • Getting Help: Office Hours, MSI Tutoring, Discussions on Canvas

Lecture 2 - Setting Up Programming Environment

  • IDEs
  • Python 2 vs Python 3
  • Python 3 and IDLE Installation
  • Intro to UNIX
  • Using sftp and ssh
  • Bash Shell Scripts

Lecture 3 - Intro to Python

  • Software Development
  • Programming Languages
  • What is a Program?
  • Interpreted vs. Compiled Languages
  • Machine Code
  • Python IDEs, APIs, and Libraries
  • Language Basics
    • Statements
    • Expressions
    • Keywords, Variables, Values, Delimiters
    • Data Types
    • Comments, Blocks, Indentations

Lecture 4 - Variables and Operators

  • Identifiers
  • Values and Variables
  • Operators
    • Assignment Operators
    • Arithmetic Operators
    • Comparison Operators
    • Logical Operators
    • Bitwise Operators
    • Membership Operators
  • Precedence and Associativity

Lecture 5 - Data Types

  • Overview of Python Built-in Data Types
    • Basic Data Types
    • Data Collections
  • Basic Data Types
    • Integer
    • Float
    • Boolean
    • Complex
    • String
    • None
  • Standard Input and Output
  • String Formatting
    • f-Strings
    • format Method
    • String Concatenation

Lecture 6 - Conditional Statements

  • Control Flow and Branching
  • Conditional Statements
    • If Statements
    • If-Else Statements
    • Elif Statements
    • Nested Conditional Statements

Lecture 7 - Loops

  • Repetitive Statements
    • For Loops and Range Function
    • While Loops
    • Break Statement
    • Continue Statement
    • Pass Statement
    • Nested Repetitive Statements
  • Loop Comparison and Conversion

Lecture 8 - Functions

  • Built-in Functions vs User-Defined Functions
  • Function Definitions and Function Calls
  • Function Parameters and Arguments
  • Scope of Variables
  • Void Functions and Return Statement
  • String Methods and Functions (slicing, join, split)

Lecture 9 - Strings

  • String Methods:
    • Methods vs Functions
    • Common String Methods
  • String Formatting
  • Working with Strings
    • Raw Strings
    • Escape Sequences
    • Regular Expressions

Lecture 10 - Lists

  • List Definition
  • List Traversal
  • List Slicing
  • List Functions
  • List Methods
  • Nested Lists

Lecture 11 - Dictionaries

  • Dictionary Definition
  • Dictionary Traversal
  • Dictionary Methods and Functions
  • Nested Data Collections
  • Comparison between Dictionary and List

Lecture 12 - Tuples, Arrays, and Sets

  • Data Collections:
    • Mutable and Immutable Collections
    • Arrays and Tuples vs Lists
    • Lists vs Dictionaries
  • Tuples
    • Tuple Definition
    • Tuple Functions and Methods
    • Casting, Packing, and Zipping
  • Arrays
    • Array Definition
    • Array Functions and Methods
  • Sets
    • Set Definition
    • Set Functions and Methods
    • Difference, Union, and Intersection
  • Frozensets
    • Frozenset Definition
    • Frozenset Applications
  • Comparison of Data Collections

Lecture 13 - Exceptions

  • Programming Errors
    • Runtime and Syntax Errors
  • Exceptions
    • Try-Except Statement
    • Exception Types
  • Logical Errors
    • Infinite Loops
    • Off-by-1
    • Logical Fallacies
    • Misconceptions: Birthday Paradox
    • Typo-Like Errors
  • Debugging and Call Stack

Lecture 14 - Files

  • Input and Output Devices
  • Memory
    • RAM
    • ROM
    • Storage Memory
  • Files
    • OS and File Management
    • Root, Directories, Subdirectories, and Files
    • File Types
  • Text Files
    • File Encoding: ASCII and Unicode
    • File Attributes
    • Opening Files
    • Reading Files
    • Writing Files
    • with Statement
    • File Methods
  • Binary Files
    • Image Files
    • Audio Files
    • File Encoding, Codecs, Compression
    • Binary File Types
    • Reading Files
    • Writing Files

Lecture 15 - Introduction to OOP

  • Classes and Objects
  • OOP Tenets
    • Data Encapsulation
    • Inheritance
    • Polymorphism
  • Class Definition, Constructor Method (init) and Instantiation
  • Data Attributes
  • Instance Methods and Dot Notation
  • Getters and Setters
  • str Method

Lecture 16 - Data Encapsulation

  • Classes
    • Comparison between Functions and Methods
    • Instance Methods vs Static Methods
    • Scope of Variables and Methods
  • Encapsulation and Information Hiding
    • Data and Procedural Abstraction
    • Private Variables and Methods

Lecture 17 - Inheritance

  • Inheritance
  • Superclass and Subclasses
  • Multiple Inheritance
  • Method Overriding
  • Method Resolution Order

Lecture 18 - Polymorphism

  • Polymorphism
  • Interfaces and Abstract Classes
  • Operator Overloading
  • Magic Methods

Lecture 19 - Modules (Optional)

  • Programming Approaches: Top-Down and Bottom-Up Approaches
  • Modular Programming
  • Modules, Packages, and Libraries
  • Creating and Importing Modules
  • Standard Python Library and Packages
  • Creating Own Packages
  • External Libraries

Lecture 20 - Advanced Topics (Optional)

  • Functional Programming (Brief Overview)
    • Anonymous Functions (Lambda Functions)
    • List and Dictionary Comprehensions
    • Iterators
    • Generators
    • Higher Order Functions: Map, Filter, Reduce, and Decorator
  • Recursion and Memoization (Brief Overview)