5/22/19, 9pm: Graded exams are on Gradescope (regrade requests due by Friday, noon). Course totals are on Blackboard. The final exams and answer keys are available on the finals page.
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.

The course has lectures on Tuesday mornings and recitation sections offered throughout the week (you must register both for the lecture and a recitation section).

Course Coordinator:

Lab Hours: There is a dedicated computer laboratory, North 1001E for this course:

Useful Links:


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

Amanda Bell & Justin Tojeira, CS Advisors
Programming Assignments,
Hello, World,
Hexagon example,
Fancier hexagon,
Lecture Notes
Think CS: Chapter 1 & Chapter 4
25,28-31 January; 1 February
Getting started with Python & IDLE;
Using modules and definite loops
Lab 1 Academic Integrity
#2 Lecture:
5 February
Strings & Lists: looping through strings, console I/O, ASCII representation

Prof. John Ranellucci, Educational Psychology
Loop Puzzle 1,
Loop Puzzles 2,
Caesar Cipher example,
input() example,
Lecture notes
Think CS: Chapter 2 & Chapter 3
4-8 February
String methods; Problem solving and the design process (simple parsing and translating) Lab 2 Loops & Turtles
12 February No Classes: Lincoln's Birthday
#3 Lecture:
19 February
Files & 2D Arrays, Hexadecimal notation

Guest Lecturer: Katherine Howitt
Event Timing (Arithmetic Challenge), Slicing Challenges,
Color Challenges, Lecture notes
Think CS: Section 8.10 & Chapter 11,
Numpy tutorial (DataCamp)
11,13-15,19 February
Arrays and images in numpy, hexadecimal representation of colors (image processing) Lab 3 Strings & Loops
18 February No Classes: Presidents' Day
#4 Lecture:
26 February
More on Lists & Arrays; Decisions;

CS Survey: Prof. William Sakas (computational linguistics)
Loop & Slice Challenges,
Decision Challenges,
Lecture notes
Think CS: Chapter 7 & Chapter 11
20-22,25-26 February
Programming with decisions & files (flood maps) Lab 4 Loops & Unix
#5 Lecture:
5 March
Logical Expressions, Circuits;

CS Survey: Bernard Desert & Elise Harris (CUNY2X@Hunter)

Guest Lecturer: Dr. Tiziana Ligorio
Types & Decisions Challenges,
Logical Operators Challenges,
Basic Gates,
Circuit Challenges,
Lecture notes
Think CS: Chapter 7,
Burch's Logic & Circuits, Explain Logic Gates
27-28 February, 1,4-5 March
More on Decisions (snow pack);
Circuits & Logical Expressions
Lab 5 Decisions & Color
#6 Lecture:
12 March
Accessing formatted data; Functions

CS Survey: Prof. Katherine St. John (computational biology)

Guest Lecturer: Katherine Howitt
Arithmetic Challenges,
List/String Challenges,
Lecture notes
Think CS: Chapter 6,
10-minutes to Pandas Tutorial,
DataCamp Pandas Tutorial,
Ubuntu Terminal Reference Sheet
6-8,11-12 March
CSV files via pandas (population change);
Shell Scripts, github
Lab 6 Circuits, Truth Tables, & Logical Expressions
#7 Lecture:
19 March
More on Functions;
NYC OpenData

Guest Lecturer: Dr. Tiziana Ligorio
Motto Challenge,
Hello with main(),
Prep #1.2,
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
13-15,18-19 March
OpenData NYC (shelter data);
Using main() functions;
Python from the command line
Lab 7 Formatted Data & Shell Commands
#8 Lecture:
26 March
Parameters & Functions;

CS Survey: Keith Okrosy, (Career Development Services @ Hunter)
Decisions & Functions Example,
Dessert Exam Questions,
Foo example,
Lecture notes
Think CS: Chapter 6
21-23,25-26 March
Binning data (parking tickets);
Top-down design (herd of turtles);
Command line git
Lab 8 Functions & More Pandas
#9 Lecture:
2 April
Programming with Functions, Top-down Design;
Mapping GIS Data (Folium);
Random Number Generation;
Preview: Indefinite Loops

CS Survey: Prof. Susan Epstein (machine learning)
Sisters Example,
numsConvert.py num2string example,
Distance Check,
Random Walk,
Lecture notes
Think CS: Chapter 6,
folium tutorial
27-29 March, 1-2 April
Folium/leaflet.js (mapping CUNY locations); Finding errors;
Regular expressions (command line)
Lab 9 Parameters & Functions
#10 Lecture:
9 April
Indefinite Loops; Simulations;
Design Patterns: Max;

Final Exam Overview, Part 1
Nums & While,
Max Num, Random Search (turtles),
Lecture notes
Think CS: Chapter 8
3-5,8-9 April
More on Indefinite loops; Writing functions; unit testing Lab 10 More on Functions & Top-down Design
#11 Lecture:
16 April

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

CS Survey: Anna Whitney, Storage Infrastructure Team, Google NYC
WeMIPS Emulator,
Lecture notes
U Idaho reference sheet, MIPS Wikibooks
10-12,15-16 April
Simplified machine language Lab 11 Indefinite Loops & Simulations
19-28 April Spring Break: No Classes
#12 Lecture:
30 April
Introduction to C++: program structure, data representation and I/O.

Final Exam Overview, Part 2
cin/cout example,
convert example,
loops example,
growth example,
nested loops,
Lecture notes
Cplusplus Tutorial,
C++ Tutorials Point,
The Rook's Guide to C++
17-18,29-30 April, 3 May
Using gcc Lab 12 Simplified Machine Language & More Unix
#13 Lecture:
7 May
C++ control structures

CS Survey: Citi Bike's Bike Angels Team
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++
1-2,6-7,10 May
Control Structures in C++ Lab 13 Introduction to C++
#14 Lecture:
14 May
Review Final Exam Information
8-10,13-14 May
Review End-of-semester Survey
Tuesday, 21 May 2019
9:00 - 11:00 am
Final Exam
(This file was last modified on 23 May 2019.)