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:

IMPORTANT:

The course has lecture and lab twice a week and required quizzes each class
This is a HYBRID course which means that you are responsible for independently reading the weekly Lab found in the "Handouts" column in the Course Outline below.
Starting in June, there are programming assignments due at 6p twice a week. Programming Assignments are directly related to Labs and Lectures. The schedule contains the specific deadlines.
Lecture notes will also be posted weekly in the "Handouts" column in Course Outline below.

Useful Links:

Course Outline:

 Class:                       Topics: Handouts: Quiz: Reading:
#1 Lecture:
Class 1
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:
Class 1
Getting started with Python & IDLE;
Using modules and definite loops;
String methods; Problem solving and the design process (simple parsing and translating)
Lab 1
Lab 2
Academic Integrity; Loops and Turtles
#2 Lecture:
Class 2
Strings & Lists: looping through strings, console I/O, ASCII representation
Arithmetic; Indexing & Slicing; Colors, Hexadecimal notation
Loop Puzzle 1,
Loop Puzzles 2,
Caesar Cipher example,
input() example,
Event Timing (Arithmetic Challenge), Slicing Challenges,
Color Challenges
Lecture notes
Think CS: Chapter 2, Chapter 3, Section 8.11, & Chapter 11, Numpy tutorial (DataCamp)
Lab & Quiz:
Class 1
Arrays and images in numpy, hexadecimal representation of colors (image processing) Lab 3 String method, Colors, Unix
#3 Lecture:
Class 3
More on Lists & Arrays; Images; Decisions; Airplane Design

Loop & Slice Challenges,
Decision Challenges,
turtleString.py,
Lecture notes
Think CS: Chapter 7 & Chapter 11
Lab & Quiz: Class 3 Programming with decisions & files (flood maps) Lab 4 Decisions, Images & Unix
#4 Lecture:
Class 4
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:
Class 4
More on Decisions (snow pack);
Circuits & Logical Expressions
Lab 5 Logical Expressions and Circuits & Unix
#5 Lecture:
Class 5
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:
Class 5
CSV files via pandas (population change);
Shell Scripts, github
Lab 6 Structured Data & Unix
#6 Lecture:
Class 6
Functions;
NYC OpenData
Motto Challenge,
quarterImage.py,
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
Lab & Quiz:
Class 6
OpenData NYC (shelter data);
Using main() functions;
Python from the command line
Lab 7 Structured Data, Functions & Unix
#7 Lecture:
Class 7
More Functions & Parameters; Decisions & Functions Example,
Dessert Exam Questions,
Foo example,
Koalas,
Lecture notes
Think CS: Chapter 6
Lab & Quiz:
Class 7
Binning data (parking tickets);
Top-down design (herd of turtles);
Command line git
Lab 8 Functions & Structured Data
#8 Lecture:
Class 8
Programming with Functions, Top-down Design;
Mapping GIS Data (Folium);
Random Number Generation;
Preview: Indefinite Loops
Sisters Example,
numsConvert.py num2string example,
Distance Check,
Random Walk,
Lecture notes
Think CS: Chapter 6,
folium tutorial
Lab & Quiz:
Class 8
Folium/leaflet.js (mapping CUNY locations); Finding errors;
Regular expressions (command line)
Lab 9 Folium & Top-Down Design
#9 Lecture:
Class 9
Indefinite Loops; Simulations;
Design Patterns: Max;

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

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

Search,
WeMIPS Emulator,
Lecture notes
U Idaho reference sheet, MIPS Wikibooks
Lab & Quiz:
Class 10
Simplified machine language Lab 11 MIPS & Unix
#11 Lecture:
Class 11
Introduction to C++: program structure, data representation and I/O;
C++ control structures;
Final Exam Overview
cin/cout example,
convert example,
loops example,
growth example,
nested loops,
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:
Class 11
Using gcc; Control Structures in C++ Lab 12
Lab 13
C++
FINAL CLASS MEETING
9:50a-1:14p
Final Exam Final Exam Final Exam Information
(This file was last modified on 9 June 2021.)