CSCI0050-Schedule
CSCI0050: A Data-Centric Introduction to Programming

Textbook: For the first part of the course, we will be roughly following the early chapters of Programming and Programming Languages (PAPL), by Brown CS Professor Shriram Krishnamurthi. We will not be doing the entire book (the second half is designed for a more advanced course than ours). We will cover some early chapters out of order, as befits the goals and structure of this course.

We will switch to different materials for the last two weeks of the course. Details on those will appear later. You do not need to purchase any textbooks for this course.

Assignments: Students will complete several programming assignments, design exercises, and quizzes (some in-class, some on-line). There will be 1-2 assignments due each calendar week. There will be no exams. In the "Exercises and Assignments" column, graded work is prefixed with "HWK" or "QUIZ". Items labeled "PRACTICE" are not graded (or submitted), and are simply provided to help students practice smaller parts of lecture material outside the context of graded work.

End of the Course: The course does NOT have a final exam during the exam period. However, each student will need to schedule a brief (roughly 20 minute) individual meeting with Professor Fisler to review their work on the final assignment/project. Most of those meetings will occur during the exam period, at a mutally-agreeable time. If you have travel plans that warrant leaving Providence before the exam period, let Professor Fisler know and she will attempt to schedule your review for the day after classes end.

-->

Date

Topics

Readings and Handouts

Exercises and Assignments

June 25

  • What are Computer Science and Programming?

  • Expressions

  • Numbers, Strings, and Images

June 27

  • Structuring Code

  • Evaluating Programs

  • Introduction to Functions

June 28

  • More on Functions

  • Conditionals (if/else expressions)

July 2

  • Introduction to Tables

July 5

  • Working with Tables

July 9

  • Dictionaries

  • Errors in Tables

July 11

  • Table Extraction and Statistics

  • Introduction to Lists

July 12

  • Processing Lists

  • Data Design with Lists and Tables

July 16

  • Practice with Lists

  • Defining your own DataTypes

July 18

  • Lists of Data/Structures

July 19

  • Trees

July 23

  • Intro to Python

July 25

  • How Python Programs Evaluate

  • Loops

  • Creating Data

July 26

  • Updating Data

  • Testing Mutation

July 30

  • Searching

  • Running Time

  • Hashtables

Aug 1

  • Mutation and Sharing

  • In-class Quiz

Aug 2

  • Contrasting Solutions

  • Reading User Input

  • Course Wrap-up