Lecture 1 Notes - Introduction to ECS 6100
Instructor Introduction
- Name: Hannah Belle
- Tenure: Almost 10 years teaching in ECS department
- Teaching ECS 6100A for the full semester.
Course Overview
- Administrative Information: Review of course structure and expectations.
- Interactive Learning: Encouragement to download lecture slides for note-taking and coding practice during class.
- Utri Breaks: Scheduled breaks for hands-on coding practice.
- Participation Importance: Active engagement is vital for learning programming skills.
Key Learning Goals
- Knowledge of Concepts: Understanding computer science fundamentals.
- Programming Skills: Hands-on coding experience.
- Problem-Solving Skills: Translating problems into computational solutions.
Course Topics
- Core Focus: Computational Thinking
- Learning the Python Programming Language
- Structuring Code: Making it neat, readable, and modular.
- Understanding Algorithms: Basic algorithms and algorithmic complexity.
Understanding Knowledge Types
- Declarative Knowledge: Statements of fact (e.g., mathematical statements).
- Imperative Knowledge: Instructions or recipes for computers (e.g., algorithms).
- Example: Finding square roots using a step-by-step algorithm.
Key Concepts
- Algorithms: A sequence of steps to solve a problem.
- Importance of Efficiency: Understanding algorithmic complexity and optimization of programs.
Computers and Algorithms
- Computers follow instructions (algorithms) and execute them sequentially.
- History of Computers: Transition from fixed program computers to stored program computers in the 1940s.
- Interpreter: Executes instructions and performs operations.
Python Programming Essentials
- Data Types: Introduction to scalar objects - integers, floats, booleans, and none types.
- Object Creation: Creating and manipulating objects in Python.
- Variable Assignment: Binding values to variable names.
Variable Naming Rules
- Valid variable names: Must start with a letter, can include numbers, underscores.
- Invalid examples:
6 = x, x * y = 3 + 4
- Use descriptive names, avoid single-letter variables.*
Expressions and Operations
- Expressions: Python evaluates expressions to a single value, not storing the expression itself.
- Operator Precedence: Understand how operations are prioritized (e.g., exponentiation > multiplication > addition).
Debugging and Python Tutor
- Use Python Tutor for step-by-step debugging and understanding variable bindings.
- Value reassignment: Variables can be rebound to new values, previous values remain in memory until garbage collected.
Summary of Key Ideas
- Creating Programs: Manipulating objects and combining them within expressions.
- Variable Binding: Naming variables for easier access and readability.
- Difference between Math and CS: Assignment vs. equality.
- Execution Model: Computers follow instructions line by line.
Next Lecture
- Introduction to decision-making in programming.
Thank you for attending!
Next class will cover more on control flow in Python.