CSE20 Syllabus
Lecture 1 - Intro
- Syllabus
- Class Resources Online
- 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
- 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
- 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)