💻

Introductory Programming Course Overview

Aug 18, 2024

CS 106A Lecture Notes

Introduction to CS 106A

  • Presented by: Stanford Center for Professional Development
  • Course Title: CS 106A (Introductory Programming)
  • Logistics: Handouts available in the back

Course Overview

  • Course Goal: Introductory programming course focusing on programming methodology
  • Prior Experience: No prior programming experience required
    • Only requirement: Ability to recognize and use a computer

Familiarity Check

  • Hands Up Questions:
    • Who can recognize a computer?
    • Who has used a computer for word processing?
    • Who has done web browsing?
    • Who has created a web page?
    • Who has programmed before?
    • Programming languages discussed: Java, C, C++ and Basic

Course Structure

  • Course Context: Part of free course initiative at Stanford's School of Engineering
    • Classes are recorded and may be broadcasted
    • Students must use microphones for questions
  • Instructor: Marin Sahami (preferred name)
  • Head TA: Ben Newman
  • Section Leaders: Help students with assignments
  • Contact Method: Email for communication

Learning Objectives

  • Programming Methodology: Focus on software engineering principles beyond just syntax of a programming language
    • Programming compared to essay writing in terms of structure and creativity
    • Learning Java as the programming language for the course

Student Success and Competition

  • Philosophy: Aim for all students to succeed, no cut-off or curve grades
  • Class Environment: Collaborative learning encouraged, competition only with oneself
  • Different Tracks:
    • CS 106A: No prior programming required
    • CS 106X: Accelerated version for students with prior experience (AP credits or equivalent)

Class Logistics

  • Website: CS 106A webpage
    • Contains assignments, handouts, announcements
  • Units: 3-5 units
    • Undergrads take for 5 units, grad students can choose 3 or 5
  • Sections: Required once per week, sign-up through designated website

Textbooks

  • Required Textbooks:
    • "Carol the Robot Learns Java" (Course Reader)
    • "The Art and Science of Java" (Textbook)

Assignments and Grading

  • Assignments: 7 programming assignments, weighted more towards later assignments
  • Tool Used: Eclipse (free IDE)
  • Interactive Grading: 10-15 minutes with section leader after assignment submission
  • Grading Scale: Check, Check+, Check-, Check++, Check-- (plus/minus grading system)
  • Late Days: 2 free late days allowed, beyond that drops grade level.

Exams

  • Midterm: Out-of-class exam on October 30
  • Final Exam: Scheduled for December 13

Honor Code and Collaboration

  • Encouraged: Discussion, strategy sharing among students
  • Prohibited: Sharing code or looking at another student's code
  • Citation: Encourage to cite collaborations to avoid honor code violations

Conclusion

  • Introduction to Carol the Robot: Teaching tool to introduce programming concepts
    • Simple grid environment for basic programming practices
  • Next Class: Further exploration of Carol and programming concepts

Welcome to CS 106A!