💻

Lecture 1 Summary - ECS 6100

Jul 30, 2024

Lecture 1 Notes: ECS 6100

Instructor Introduction

  • Name: Anna Belle (Pronounced "Hannah Belle")
  • Teaching for almost 10 years in the ECS department
  • Excited to teach the full semester version of ECS 6100a

Lecture Overview

  • Course administrative information
  • Introduction to how computers work at a high level
  • Basics of Python programming
  • Encouraged to download lecture slides and take notes

Class Participation and Structure

  • Utri Breaks: Interactive breaks for coding practice
  • Encouragement of questions during lectures
  • Coding practice is essential for learning
  • Key outcomes:
    • Knowledge of computer science concepts
    • Programming skills
    • Problem-solving skills

Course Topics

  • Computational Thinking: Approach problems mathematically or algorithmically
  • Learning Python programming language
  • Code structuring for readability and organization
  • Basic algorithms and their complexities

Knowledge Types

  • Declarative Knowledge: Statements of fact (not used in CS)
  • Imperative Knowledge: Instructions/recipes for programming
    • E.g. Finding square roots with a specific algorithm
    • Algorithm Example: Steps to find the square root of a number

Computer Functions

  • Computers execute algorithms
  • They follow sequences of instructions
  • Computers are good at:
    • Storing large data
    • Performing operations quickly
  • Conclusion: Computers only do what you instruct them

Computing History Overview

  • Pre-1940s: Fixed program computers (e.g., calculators)
  • Post-1940s: Stored program computers that can execute instructions
    • Introduced interpreters for instruction execution

High-Level Computer Operations

  • Computer has:
    • Memory (stores data)
    • Arithmetic Logic Unit (ALU) (does computations)
    • Control Unit (executes instructions in order)
  • Example of a simple program illustrating memory and instruction flow

Programming Primitives

  • Anything computable in one language is computable in another
  • Python Primitives:
    • Include numbers, strings, operators, etc.

Syntax and Semantics in Programming

  • Syntax: Correct structure (e.g., variable assignments)
  • Static Semantics: Meaning of constructions
  • Semantics: Intended meaning vs. actual execution result

Creating and Manipulating Objects in Python

  • Objects have types (e.g., integers, strings) which dictate allowable operations
  • Scalar Objects: Types include integers, floats, booleans, none
  • Example of casting between types

Expressions and Variable Assignments

  • Expressions evaluate to a single value, stored in memory
  • Variable Assignment: Binding a name to a value (use =)
  • Variables can be reassigned to new values

Naming Variables in Python

  • Good naming makes code readable and maintainable
  • Variable Naming Rules:
    • Must follow syntax rules, cannot start with a number, etc.

Summary of Key Concepts

  • Programs create and manipulate objects in Python
  • Understanding object types is crucial for correct operations
  • Variables serve as named references to values, aiding code clarity
  • Python executes instructions line by line; decisions are introduced later

Homework / Practice

  • Explore Python Tutor for debugging

Next Steps

  • Continue exploring decision points in programming next lecture