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 Wednesday mornings and recitation sections offered throughout the week (you must register both for the lecture and a recitation section).

Course Coordinator:

Lecture: The lecture for the course is Wednesdays, 9:45-11am in 118 Hunter North (Assembly Hall).

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

Useful Links:


 Week:                        Topics:  Handouts:  Quiz Topics:  Reading:
#1 Lecture:
29 August
Syllabus & Class Policies, Introductions,
Introduction to Python: definite loops, simple output, primitive data types, overview of objects & modules;
What is an algorithm?
Programming Assignments,
Hello, World,
Hexagon example,
Fancier hexagon,
Lecture Notes
Think CS: Chapter 1 & Chapter 4
27-31 August
Getting started with Python & IDLE;
Using modules and definite loops
Lab 1 Academic Integrity
3 September No Classes: Labor Day
5 September Classes Follow a Monday Schedule
#2 Lecture:
12 September
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
4-7,12 September
String methods; Problem solving and the design process (simple parsing and translating) Lab 2 Loops & Turtles
10-11 September No Classes
#3 Lecture:
26 September
Files & 2D Arrays, Hexadecimal notation;
CS Survey: Prof. William Sakas (computational linguistics)
Slicing Challenges,
Color Challenges,
Lecture notes
Think CS: Section 8.10 & Chapter 11,
Numpy tutorial (DataCamp)
13-14,17, 25-26 September
Arrays and images in numpy, hexadecimal representation of colors (image processing);
Unix: basic command line interface
Lab 3 Strings & Lists
18-19 September No Classes
#4 Lecture:
3 October
More on Lists & Arrays; Decisions;
CS Survey: Bernard Desert & Elise Harris (CUNY2X@Hunter)
Loop & Slice Challenges,
Decision Challenges,,
Lecture notes
Think CS: Chapter 7 & Chapter 11
20-21,24 September, 2-3 October
Programming with decisions & files (flood maps);
Unix: relative paths
Lab 4 Colors & Images in numpy
#5 Lecture:
10 October
Logical Expressions, Circuits
CS Survey: Melina Diaconis (WiTNY), and Lily Caplan (President, Student ACM Chapter)
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 September, 1,9-10 October
More on Decisions (snow pack);
Circuits & Logical Expressions;
Unix: absolute paths
Lab 5 Decisions & Color
8 October No Classes
#6 Lecture:
17 October
Accessing formatted data; Functions
CS Survey: Prof. Saad Mneimneh (modeling & algorithms)
Arithmetic Challenges,
List/String Challenges,
Lecture notes
Think CS: Chapter 6,
10-minutes to Pandas Tutorial,
DataCamp Pandas Tutorial,
Ubuntu Terminal Reference Sheet
4-5,15-17 October
CSV files via pandas (population change);
Shell Scripts;
Lab 6 Circuits, Truth Tables, & Logical Expressions
#7 Lecture:
24 October
More on Functions & Open data;
CS Survey: Adrienne Schmoeker & Albert Webber (Mayor's Office of Data Analytics)
Motto Challenge,
Hello with main(),
Total & Tax Challenge Greet Example,
Happy Example,
Jam Example,
Lecture notes
Think CS: Chapter 6,
10-minutes to Pandas Tutorial,
DataCamp Pandas Tutorial
12-13,22-24 October
OpenData NYC (shelter data);
Using main() functions;
Python from the command line
Lab 7 Formatted Data & Shell Commands
#8 Lecture:
31 October
More on Parameters & Functions; Top-Down Design
CS Survey: Keith Okrosy, (Career Development Services @ Hunter)
Decisions & Functions Example,
Foo example,
Dessert Exam Questions,
NYC Current Job Posts,
Lecture notes
Think CS: Chapter 6
18-19, 29-31 October
Binning data (parking tickets);
Top-down design (herd of turtles);
Using git from the command line
Lab 8 Functions & More Pandas
#9 Lecture:
7 November
Mapping GIS Data,
Indefinite Loops, Simulations,
CS Survey: Prof. Susan Epstein (machine learning)
Sisters Example
Distance Check,
Nums & While,
Random Walk
Lecture notes
Think CS: Chapter 6,
folium tutorial
25-28 October, 5-7 November
Folium/leaflet.js (mapping CUNY locations);
Finding errors
Lab 9 Parameters & Functions
#10 Lecture:
14 November
More on Loops & Folium;
Python Recap;
Representing Data;
Machine Language Overview
Random Search (turtles),
Max Num,
num2words example,
WeMIPS Emulator,
Lecture notes
Think CS: Chapter 8,
U Idaho reference sheet, MIPS Wikibooks
1-2,12-14 November
Program design with indefinite loops; Writing functions;
More on command-line scripts and VI (vim) editor;
Lab 10 More on Functions & Top-down Design
#11 Lecture:
21 November
More on Data Representation & Machine Language;
Reusing Code & Common Strategies (Design Patterns);
WeMIPS Emulator,
Sorting Demo,
Bubblesort (PythonTutor),
Lecture notes
U Idaho reference sheet, MIPS Wikibooks
8-9,19-21 November
Simplified machine language;
Unix: using pipes
Lab 11 Indefinite Loops & Simulations
22 - 23 November Thanksgiving Break: No Classes
#12 Lecture:
28 November
Introduction to C++: program structure, data representation and I/O. cin/cout example,
convert example,
loops example,
growth example,
nested loops,
Lecture notes
Cplusplus Tutorial,
C++ Tutorials Point,
The Rook's Guide to C++
15-16, 26-28 November
Using gcc;
Unix: identifying files: which and file
Lab 12 Simplified Machine Language
#13 Lecture:
5 December
C++ control structures Decision example (C++),
Logical Expressions (C++),
Input Checking (C++),
Input Checking, II (C++),
Growth Example (C++),
NYC Urban Forest: Street Trees,
Lecture notes
Cplusplus Tutorial,
C++ Tutorials Point,
The Rook's Guide to C++
29-30 November, 3-5 December
Control Structures in C++;
Unix: built-in help pages (man) and piping with more
Lab 13 Introduction to C++
#14 Lecture:
12 December
Review Final Exam Information
6-7,10-12 December
Review End-of-semester Survey
Wednesday, 19 December,
Final Exam
(This file was last modified on 26 November 2018.)