Coconote
AI notes
AI voice & video notes
Export note
Try for free
Introduction to Computer Science Course Overview
Aug 20, 2024
Introduction to Computer Science and Programming (600)
Lecture Overview
Instructors
: Eric Grimson and John Guttag
Course Focus
: Introduction to programming and computational thinking
Goals
: Help students learn how to think like computer scientists
Course Goals
Strategic Goals
Entry Preparation
: Support freshmen and sophomores interested in Course 6 without prior programming experience.
Confidence Building
: Equip non-majors with the ability to read and write small pieces of code.
Understanding Computation
: Teach students the role of computation in solving technical problems.
Competitiveness
: Prepare all students for opportunities like UROPs and summer jobs.
Tactical Goals (Skills to Acquire)
Basic Tools
: Use computational thinking to write small-scale programs.
Vocabulary
: Understand programs written by others.
Capabilities and Limitations
: Comprehend what can and cannot be computed.
Mapping Problems
: Translate scientific problems into a computational framework.
Course Structure
Format
: Two hours of lecture per week, one hour of recitation, and nine hours of outside work.
Programming Language
: Python will be used for programming assignments.
Assignments
: Problem sets will increase in complexity over the term. The initial problem sets will be easier to help students ramp up.
Quizzes
: Two quizzes scheduled for October 2nd and November 4th, plus a final exam; open book/notes format.
Grading
: 55% from problem sets, 45% from quizzes and the final exam.
Administrative Notes
First Problem Set
: Problem set zero is posted to help install Python.
Recitation Registration
: Sign up for recitations available on Fridays.
Textbook
: No required textbook; a suggested one is available.
Attendance
: Not mandatory, but material outside of readings will be covered in lectures.
Class Notes
: No class notes will be provided; students are encouraged to take their own notes.
Support
: Instructors and TAs are available for assistance, and it's important to seek help when needed.
Conceptual Framework
What is Computation?
Primary Knowledge
: Understanding computational problem solving and the tools required.
Types of Knowledge
:
Declarative Knowledge
: Statements of fact (e.g., definitions).
Imperative Knowledge
: Descriptions of how to perform a task or process (e.g., recipes for algorithms).
Historical Context
Early Computers
: Fixed program computers (specific tasks like calculators).
Stored Program Computers
: The evolution to machines that can execute any sequence of instructions provided (e.g., interpreters).
Programming Languages
Python
: High-level general-purpose interpreted language used in this course.
Language Characteristics
:
High-Level vs. Low-Level
: How close to machine language.
General vs. Targeted
: General-purpose languages can handle a broad range of tasks.
Interpreted vs. Compiled
: Interpreted languages run directly from source code, while compiled languages are converted to object code first.
Python Basics
Data Types and Operations
Primitive Data Types
: Numbers and strings.
Creating Expressions
: Using operators (addition, multiplication, etc.) to create expressions.
Variable Assignment
: Storing values in variables for later use.
Examples in Python
Basic Operations
: Arithmetic operations using numbers and string concatenation.
Common Errors
: Understanding static semantic errors and syntax errors.
Conclusion
Next Steps
: Further exploration of Python's syntax and capabilities in future lectures.
Action Items
: Sign up for recitation and familiarize with the Python shell.
📄
Full transcript