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 24

  • What are Computer Science and Programming?

  • Expressions

  • Numbers, Strings, and Images

June 26

  • Structuring Code

  • Evaluating Programs

  • Introduction to Functions

June 27

  • More on Functions

  • Conditionals (if/else expressions)

July 1

  • Introduction to Tables

July 3

  • Working with Tables

July 8

  • Known Names/Environments

  • Errors in Tables

July 10

  • Column Extraction and Statistics

  • Introduction to Lists

July 11

  • Processing Lists

July 15

  • Review of Lists

  • Defining your own DataTypes

July 17

  • Lists of Data/Structures

July 18

  • Trees

July 22

  • Intro to Python

July 24

  • Loops

  • Dataclasses

July 25

  • Updating Data

  • Testing Mutation

July 29

  • Searching

  • Running Time

  • Dictionaries/Hashtables

Jul 31

  • While Loops

  • User Input

  • Using CSVs in Python

  • In-class Quiz

Aug 1

  • Final Examples

  • Spell-checking

  • Simple Machine Learning