This course presents an overview of computer science (CS) with an emphasis on problem-solving and computational thinking through 'coding': computer programming for beginners. Other topics include: organization of hardware, software, and how information is structured on contemporary computing devices. This course is pre-requisite to several introductory core courses in the CS Major. The course is also required for the CS minor. MATH 12500 or higher is strongly recommended as a co-req for intended Majors.

Course Designers:

Course Instructors:

COURSE STRUCTURE


EACH WEEK
  • Required: Lecture Preview (15 minute quiz) opens Monday and it is due before lecture on Tuesday 10am on Blackboard
  • Required: Synchronous Lecture meetings on Tuesday 9:45-11am on Zoom
  • Required: Weekly Lab instead of a synchronous recitation meeting.You are responsible for independently reading
    through the Lab found in the "Handouts" column in the Course Outline below.
    Links to relevant textbook chapters also in the "Reading" column below.
  • Optional: if you need more guidance to follow the weekly Labs,
    we offer optional synchronous Lab Reviews on Tuesday and Wednesday
  • Required: Lab Quiz (15 minute quiz) opens Tuesday and it is due on Wednesday 6pm on Gradescope.
    This is an exit quiz for the lab and should be take after you read and work through the weekly Lab.
  • Required: 5 Programming Assignments, these are directly related to Labs and Lectures.
weekly work

Lecture notes will be posted before each lecture in the "Handouts" column in Course Outline below.

Peer-Mentor Tutoring: Undergraduate Teaching Assistants (UTAs) are available to help:

Useful Links:

Course Outline:

 Week:                       Topics: Handouts: Quiz: Reading:
#1 Lecture:
2 February
Syllabus & Class Policies, Introductions,
Introduction to Python: definite loops, simple output, primitive data types, overview of objects & modules;
What is an algorithm?

Syllabus,
Programming Assignments,
Hello, World,
Hexagon example,
Fancier hexagon,
Lecture Notes
Think CS: Chapter 1 & Chapter 4
Lab & Quiz: Getting started with Python & IDLE;
Using modules and definite loops

Lab 1

Academic Integrity + Loops & Turtles
#2 Lecture:
9 February
Strings & Lists: looping through strings, console I/O, ASCII representation

Loop Puzzle 1,
Loop Puzzles 2,
Caesar Cipher example,
input() example,
Lecture notes
Think CS: Chapter 2 & Chapter 3
Lab & Quiz: String methods; Problem solving and the design process (simple parsing and translating)

Lab 2

Strings, Loops & Shell Commands
12-15 February No classes, No drop-in tutoring
#3 Lecture:
16 February
Arithmetic; Indexing & Slicing; Colors, Hexadecimal notation;

Event Timing (Arithmetic Challenge), Slicing Challenges,
Color Challenges,
Lecture notes
Think CS: Section 8.11 & Chapter 11,
Numpy tutorial (DataCamp)
Lab & Quiz:
Arrays and images in numpy, hexadecimal representation of colors (image processing)

Lab 3

Indexing, Slicing, Colors & Shell Commands
#4 Lecture:
23 February
More on Lists & Arrays; Images; Decisions;

Decision Challenges,
turtleString.py,
Lecture notes
Think CS: Chapter 7 & Chapter 11
Lab & Quiz Programming with decisions & files (flood maps)

Lab 4

Loops, Decision, Numpy Arrays & Shell Commands
#5 Lecture:
2 March
Logical Expressions, Circuits, Binary Numbers;

Types & Decisions Challenges,
Logical Operators Challenges,
SemesterIfAndExample,
Basic Gates,
Circuit Challenge1,
Circuit Challenge2,
Lecture notes
Think CS: Chapter 7,
Burch's Logic & Circuits, Explain Logic Gates
Lab & Quiz: More on Decisions (snow pack);
Circuits & Logical Expressions

Lab 5

Circuits, Logical Expressions & Shell Commands
#6 Lecture:
9 March
Accessing formatted data; Arithmetic Challenges,
List/String Challenges,
Lecture notes
Think CS: Chapter 6,
10-minutes to Pandas Tutorial,
DataCamp Pandas Tutorial,
Ubuntu Terminal Reference Sheet
Lab & Quiz: CSV files via pandas (population change);
Shell Scripts, github

Lab 6

Formatted Data & Shell Commands
#7 Lecture:
16 March
Functions;
NYC OpenData
quarterImage.py,
Hello with main(),
Total & Tax Challenge,
Greet Example,
Happy Example,
Jam Example,
Month String Example,
NYC OpenData
Lecture notes
Think CS: Chapter 6,
10-minutes to Pandas Tutorial,
DataCamp Pandas Tutorial
Lab & Quiz OpenData NYC (shelter data);
Using main() functions;
Python from the command line

Lab 7

Functions
#8 Lecture:
23 March
More Functions & Parameters; Decisions & Functions Example,
Dessert Exam Questions,
Foo example,
Koalas,
Lecture notes
Think CS: Chapter 6
Lab & Quiz: Binning data (parking tickets);
Top-down design (herd of turtles);
Command line git

Lab 8

Parameters & Functions
29 March - 5 April Spring Recess
#9 Lecture:
6 April
Programming with Functions, Top-down Design;
Mapping GIS Data (Folium);
Random Number Generation;
Preview: Indefinite Loops
Sisters Example,
numsConvert.py num2string example,
CUNYcampuses,
Distance Check,
Random Walk,
Lecture notes
Think CS: Chapter 6,
folium tutorial
Lab & Quiz Folium/leaflet.js (mapping CUNY locations); Finding errors;
Regular expressions (command line)

Lab 9

Functions, Top-down Design & Shell Commands
#10 Lecture:
13 April
Indefinite Loops; Simulations;
Design Patterns: Max;

Nums & While,
Max Num, Random Search (turtles),
Lecture notes
Think CS: Chapter 8
Lab & Quiz More on Indefinite loops; Writing functions; unit testing

Lab 10

Indefinite Loops, Simulations & Shell Commands
#11 Lecture:
20 April

Python Recap;
Simplified Machine Language;
Design Patterns: Searching;

Search,
WeMIPS Emulator,
Lecture notes
U Idaho reference sheet, MIPS Wikibooks
Lab & Quiz Simplified machine language

Lab 11

Simplified Machine Language & Shell Commands
#12 Lecture:
27 April
Introduction to C++: program structure, data representation and I/O.

Final Exam Overview
cin/cout example,
convert example,
loops example,
growth example,
nested loops,
Lecture notes
Cplusplus Tutorial,
C++ Tutorials Point,
The Rook's Guide to C++
Lab & Quiz Using gcc

Lab 12

C++ & Shell Commands
#13 Lecture:
4 May
C++ control structures

Decision example (C++),
Logical Expressions (C++),
Input Checking (C++),
Input Checking, II (C++),
Growth Example (C++),

Lecture notes
Cplusplus Tutorial,
C++ Tutorials Point,
The Rook's Guide to C++
Lab & Quiz Control Structures in C++

Lab 13

C++ control structures
#14 Lecture:
11 May
Mock Exam Final Exam Information
Quiz No lab this week. Take advantage of drop-in tutoring for review!!! End-of-semester Survey
18-21 May Reading Day, No drop-in tutoring
MONDAY 24 May
9am-11am
Final Exam Final Exam Information
(This file was last modified on 4 January 2021.)