📚

Introduction to ECS 6100 Course Overview

Aug 19, 2024

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

  1. Knowledge of Concepts: Understanding computer science fundamentals.
  2. Programming Skills: Hands-on coding experience.
  3. 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

  1. Creating Programs: Manipulating objects and combining them within expressions.
  2. Variable Binding: Naming variables for easier access and readability.
  3. Difference between Math and CS: Assignment vs. equality.
  4. 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.