Bryn Mawr College
CS 109: Introduction to Computing
Spring 2026
Course Materials
Last updated: Jan 19, 2026. Subject to change.
|
Instructor
|
:
|
Dianna Xu |
|
Office |
: |
Park 203 |
|
E-Mail
|
:
|
dxu at brynmawr dot edu |
|
WWW
|
:
|
http://cs.brynmawr.edu/cs109 |
|
Lecture
|
:
|
M/W 1:10pm-2:30pm, Park 300 |
|
Office Hours
|
:
|
Tuesdays 2pm to 4pm
|
|
Lab
|
:
|
M 2:40pm-4pm |
|
Lab Location
|
:
|
Computer Science Lab A, Park 231
You will also be able to use your own computer to do the labs for this course. |
|
Lab Assistants |
: |
Khanh Ha Nguyen
Maimoona Irfan
Fatma Ayad
Gideon Grandis-McConnell
Hazel Nguyen
|
Mondays 6pm-8pm
Tuesdays 6pm-8pm
Wednesays 6pm-8pm
Thursdays 6pm-8pm
Sundays 6pm-8pm
|
Course Description:
Students will learn how to write algorithms, manipulate data, and design programs to make computers useful tools as well as mediums of creativity. Contemporary, diverse examples of computing in a modern context will be used, with particular focus on graphics and visual media. The Processing/Java programming language will be used in lectures, class examples and weekly programming projects, where students will learn and master fundamental computer programming principles. Students are required to register for the weekly lab.
You will exercise your creativity by desiging
programs in a language called,
Processing. Processing is a language/environment built upon the programming
language
Java.
Processing was created by artists, designers, and computer scientists to explore
ideas of creative coding using computer algorithms.
Processing 2: Creative Coding & Generative Art in Processing 2.0 by Ira Greenberg, Dianna Xu and Deepak Kumar, Friends of ed, 2013. Available in the bookstore and of course, Amazon. There is also a Kindle ebook version.
Book Web Site:
Here
you will find additional materials.
Processing Software (This software is already installed in the
Computer Science Lab). The software is also available for your own computer from
Processing web site (http://www.processing.org). Download the stable release for your own computer/Operating System.
Processing Reference The reference on the processing.org is for version 3.0+. Here is the Processing 2.0+ reference.
|

|
This is a tentative syllabus and schedule. Topics, reading assignments, and due
dates are subject to change.
|
# |
Date
|
Topic
|
Reading
|
Examples
|
Assignments
|
Labs |
Extras
|
|
1 |
1/21 |
- What is computing?
- Drawing primitives: point, line, simple shapes
- Color
|
Book: Chapter 1
processing.org
|
coords
mag
rgba
alphaChannels
|
Download and install
Processing on your computer
|
No lab |
|
|
2 |
1/26 |
- Class cancelled - snow day!
|
|
|
|
Assignment 1 |
|
|
3 |
1/28 |
- Built-in Processing functions
- Interaction: Keyboard/Mouse
- Drawing primatives: arcs, curves, shapes
- Color (continued)
- Example Sketches
|
Book: Ch2, pgs. 33-48
Book: Ch4, pgs. 124-146
|
events
arcEditor
curveEditor
bezierEditor
Ladybug
Monster
GiorgioMorandi
Ndebele
Penguin
SouthParkCharacter
Sushi
|
Assignment 1
|
|
|
4 |
2/2 |
- random()
- Variables
- Primitive Data Types
- Expressions and Operators
- Images
- Conditionals
|
Book: Ch. 2, pgs. 48-63
Book: Ch. 10, pgs. 369-371
Book: Ch. 3, pgs. 72-76
|
variables1
imageExample
if1
if2
balldrop
|
|
lab1
|
|
|
5 |
2/4 |
|
Book: Ch. 3, pgs. 88-95 |
balldrop2
ifKey
while1
while2
while3
gradientWhileLoop
for1
forText
forTextCircle
forSpiral
forTextSpiral
balldropForLoop
polarRose
|
Assignment 2
|
|
|
6 |
2/9 |
|
Book: Ch. 3, pgs. 65-72 |
concentric
flowers
manyShapes
manyShapesFunction
penguinScale
penguinTranslate
Penguins
text
|
|
lab2
lab2 code
|
|
|
7 |
2/11
|
- Function return values
- Variable scope
- Code tracing
- Nested Loops
| Book: Ch. 4, pgs. 111-115 |
manyShapesFunction2
scopeLines
pictureTile
pictureTile2
|
|
|
|
8 |
2/16 |
- Polar-coordinates and basic trigonometry
|
Book: Ch. 3, pgs. 81-88
Book: Ch. 4, pgs. 120-147 |
dotsFunction
flowers
spokes
poly
poly2
poly3
poly4
polyStar
polyStar2
polyAndStar
|
Assignment 3
|
lab3 instructions - start here
lab3
lab3 code
|
|
|
9 |
2/18
|
|
Book: Ch. 5, pgs. 149-165 |
|
|
|
|
10 |
2/23 |
- Arrays and Simple Data Visualization
|
Book: Ch. 5, pgs. 166-185 |
|
|
Assignment 3 |
|
|
11 |
2/25 |
|
Book: Ch. 6, pgs. 210-222 |
|
| |
|
12 |
3/2 |
|
Book: Ch. 6, pgs. 223-232 |
|
|
|
|
|
|
3/3 |
|
|
|
|
|
|
|
|
3/9
|
|
|
|
|
|
|
| |
3/11 |
|
|
|
|
13 |
3/16
|
- Transformations and Modeling Motion
|
Book: Ch. 3, pgs. 83-105 |
|
|
Assignment 4 |
|
|
14 |
3/18
|
- More advanced data visualizations with OOP
|
Book: Ch. 7 (as much as you can, we will come back to this) |
|
|
|
|
15 |
3/23 |
|
Book: Ch. 8 |
|
|
|
|
|
16 |
3/25 |
|
|
|
|
|
17 |
3/30 |
|
Book: Ch. 9 |
|
|
Assignment 5 |
|
|
18 |
4/1 |
- Images and Image Processing
|
|
|
|
|
19 |
4/6 |
- Image Processing (Cont'd)
|
Book: Ch. 10 |
|
|
|
|
20 |
4/8 |
- Image Processing
- Video Processing
- Review
|
|
|
|
|
21 |
4/13
|
- Strings
- Text and Text Formatting
|
Book: Ch. 7, pg 233-237 |
|
|
Assignment 6 |
|
|
22 |
4/15 |
- Files, Lists
- Data Visualization
|
|
|
|
|
23 |
4/20 |
- Text Visualization
- ArrayList
|
Book: Ch. 7, 238-249 |
|
|
|
|
|
24 |
4/22 |
- Text Visualization with ArrayList
- stopwords removal
- sorting
|
Book: Ch. 7, 250-276 |
|
|
|
|
25 |
4/27 |
|
|
|
|
Assignment 7 |
|
| 26 |
4/29 |
|
|
|
|
|
- |
|
|
|
|
|
|
|
|
Communication
Attendance and
active participation are expected in every class. Participation includes asking
questions, contributing answers, proposing ideas, and providing constructive
comments. Feedback is welcome at any time.
Grading
There will be 7 programming assignments. Assignments
must be submitted according to the CS 109
Assignment Submission Instructions and adhere to the
Coding Standards.
At the end of the semester, final grades will be calculated as a weighted
average of all grades according to the following weights:
|
Midterm:
|
25% |
|
|
Final Exam: |
50% |
|
|
Assignments:
|
20%
|
|
Quizzes:
|
5% |
|
|
Total:
|
100%
|
|
Graded work will receive a percentage grade between 0%
and 100% according to the following grading policy
Submission and Late Policy
All work must be turned in as electronically by the deadlines. Extensions are given only in case of verifiable medical
conditions or other such extenuating circumstances. Time management related problems are not valid reasons for extensions.
Late submissions
will receive a penalty of 20% for every
0-24 hours it is past the due date and time (e.g., assignments turned in 25 hrs
late will receive a penalty of 40%), for a max of 48 hours. No late assignments are accepted more than 48 hours past the deadlines.
Exams
There will be two exams in this course. The exams will be closed book, closed notes. They will cover material from lectures, homeworks,
and assigned readings. The final is a scheduled 3-hour exam.
Collaboration/AI
You are encouraged to discuss the material and work together.
- The readings and lecture topics are group work. Please discuss the readings and
associated topics with each other and work together to understand the material.
Reading groups to discuss the course material are highly recommended -- we will explore
many new ideas and it helps to have multiple people working together to understand
them.
- It is fine to discuss the topics covered in the assignments, to discuss approaches
to problems, and to sketch out general solutions. However, you MUST write up the
assignment answers, solutions, and programs individually without sharing specific
details, mathematical results, program code, etc.
- Under no circumstances should you share computer code with another student.
Similarly, you are not permitted to use code found on the internet for any of
your assignments.
- AI tools may not be used to complete any programming assignments.
- Exams, of course, must be your own individual work.
If you have any questions as to what types of collaborations are allowed, please
feel free to ask.