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 we have:


This is a HYBRID course which means that, in place of a second weekly meeting, you are responsible for independently reading the weekly Lab found in the "Handouts" column in the Course Outline below.
Starting on February 14, there are programming assignments due at 6 PM every day. Programming Assignments are directly related to Labs and Lectures.
Lecture notes will also be posted weekly in the "Handouts" column in Course Outline below.

No late assignment will be accepted. Submission is open at least 2 weeks before the due date.
You should work on programming assignment well ahead of the due dates.
Working on assignments the day they are due will increase the chance you will miss the deadline.

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

Click here to make a tutoring appointment!

Useful Links:

Course Outline:

 Week:                       Topics: Handouts: Quiz & Code Review: Reading:
#1 Lecture:
January 30
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 & Code Review: Getting started with Python & IDLE;
Using modules and definite loops

Lab 1

Quiz topics
#2 Lecture:
February 6
Strings & Lists: looping through strings, console I/O, ASCII representation

for-loop examples,
input() example,
Lecture Notes
Think CS: Chapter 2 & Chapter 3
Lab, Quiz & Code Review: String methods; Problem solving and the design process (simple parsing and translating)

Lab 2

Turtles & Loops
Monday, February 12 College closed -- No Tutoring/Quizzes/Code Reviews available.
#3 Lecture:
February 13
Arithmetic; Indexing & Slicing; Colors, Hexadecimal notation;

Slicing Challenges,
Color Challenges,
Lecture Notes
Think CS: Section 8.11 & Chapter 11,
Numpy tutorial (DataCamp)
Lab, Quiz & Code Review: Arrays and images in numpy, hexadecimal representation of colors (image processing)

Lab 3

Strings, Loops and Unix
Monday, February 19 President's Day -- No Tutoring/Quizzes/Code Reviews available.
#4 Lecture:
February 20
More on Lists & Arrays; Images; Decisions;

Images notes
Lecture Notes
Think CS: Chapter 7 & Chapter 11
Lab, Quiz & Code Review: Programming with decisions & files (flood maps)

Lab 4

Colors, Hex, and Unix
#5 Lecture:
February 27
Logical Expressions, Circuits;

Basic Gates,
Circuit Challenge1,
Circuit Challenge2,
Review Lecture Notes 04
Think CS: Chapter 7,
Burch's Logic & Circuits, Explain Logic Gates
Lab, Quiz & Code Review: More on Decisions (snow pack);
Circuits & Logical Expressions

Lab 5

Images and Decisions
#6 Lecture:
March 5
Cropping images; Accessing formatted data;

Lecture Notes Think CS: Chapter 6,
10-minutes to Pandas Tutorial,
DataCamp Pandas Tutorial,
Ubuntu Terminal Reference Sheet
Lab, Quiz & Code Review: CSV files via pandas (population change);
Shell Scripts, GitHub

Lab 6

Circuits & Logical Expressions
#7 Lecture:
March 12
More on pandas; Intro to functions Lecture slip example,
continue lecture 6 notes,
intro to functions
Chapter 6,
10-minutes to Pandas Tutorial,
DataCamp Pandas Tutorial
Lab, Quiz & Code Review: OpenData NYC (shelter data); Using main() functions;
Python from the command line

Lab 7

Using the pandas library
#8 Lecture:
March 19
More Functions & Parameters;

Lecture 8 programs,
List Example 1 (Python Tutor)
List Example 2 (Python Tutor),
Lecture Notes
Think CS: Chapter 6
Lab, Quiz & Code Review: Binning data (parking tickets); Top-down design (herd of turtles);

Lab 8

Top-down design; value_counts()
#9 Lecture:
March 26
Programming with Functions, Top-down Design;
Mapping GIS Data (Folium);
Random Number Generation;
Indefinite Loops

Sisters Example,
num2string example,
Lecture Notes
Think CS: Chapter 6,
Folium tutorial
Lab, Quiz & Code Review: Folium/leaflet.js (mapping CUNY locations); Finding errors;
Regular expressions (command line)

Lab 9

Folium; regular expressions
Friday, March 29 Good Friday -- No Tutoring/Quizzes/Code Reviews available.
#10 Lecture:
April 2
Indefinite Loops; Simulations;
Design Patterns: Max;
cunyLocations.csv,
Swap if smaller (Python Tutor),
Random Search (turtles), Lecture Notes
Think CS: Chapter 8
Lab, Quiz & Code Review: Indefinite loops; random;
More on command line scripts;

Lab 10

Random numbers; while loops
#11 Lecture:
April 9
Python Recap;
Simplified Machine Language;
Design Patterns: Searching;

WeMIPS Emulator,
Lecture slip example,
Lecture Notes
U Idaho reference sheet, MIPS Wikibooks
Lab, Quiz & Code Review: WeMIPS

Lab 11

WeMips (Machine Language)
#12 Lecture:
April 16
Introduction to C++: program structure, data representation and I/O.

Final Exam Overview

cin/cout example,
kg/lbs example,
loops example,
nested loops,
Lecture Notes
Cplusplus Tutorial,
C++ Tutorials Point,
The Rook's Guide to C++
Lab, Quiz & Code Review: C++ Intro

Lab 12

C++
Monday, April 22 to Tuesday, April 30 Spring Break -- No Tutoring/Quizzes/Code Reviews available.
#13 Lecture:
May 7
C++

Lecture 13 programs,
Lecture Notes
Cplusplus Tutorial,
C++ Tutorials Point,
The Rook's Guide to C++
Lab, Quiz & Code Review: C++

Lab 13

Review quizzes for Final exam
#14 Lecture:
May 14
MOCK EXAM

LAST DAY OF CLASS
MONDAY MAY 20 9 AM TO 11 AM FINAL EXAM

Assembly Hall (118 HN) FINAL EXAM INFORMATION
(This file was last modified on 21 March 2024.)