Course Info

Welcome to CS110. An introduction to the nature, subject matter and branches of computer science as an academic discipline, and the nature, development, coding, testing, documenting and analysis of the efficiency and limitations of algorithms.

This semester, we will be exploring the creative aspects of coding as a context for learning the above concepts. You will exercise your creativity by designing programs in a language called, Processing. Processing is built upon the programming language Java. Processing was created by artists, designers, and computer scientists to explore ideas of creative coding using computer algorithms. The blurb below, from Shiffman’s text is an excellent description of what we will be doing this semester:

This book tells a story. It’s a story of liberation, of taking the first steps towards understanding the foundations of computing, writing your own code, and creating your own media without the bonds of existing software tools. This story is not reserved for computer scientists and engineers. This story is for you.

— Daniel Shiffman
From: Learning Processing

This course is an introduction to computing: how we can describe and solve problems using a computer. 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 principals.

This course is appropriate for all students who want to learn how to write computer programs and think like computer scientists.

Course preview

In labs and classes, you will create images and animations.

Owl with animated eyes using if statements.

week04 owl

Lemon wedge implemented using arcs.

lemon wedge

Snowflake implemented with a recursive algorithm.

recursion snowflake

Animated spirograph curve

week05 spirograph

For assignments, you will create artworks and interactive applications.

Word search game

wordsearch

Interactive constellation viewer.

starmap

Interactive drawing program assignment.

drawing program

Video game assignment (Example graphics shown. You will create your own concept)

videogame

Meeting Times

Activity Location Time

Lecture

Park 25

Tuesday and Friday 2:40 PM - 4:00 PM

Lab A

Park 231/Zoom

Tuesday 4:10 PM - 5:00 PM

Lab B

Park 231/Zoom

Friday 1:40 PM - 2:30 PM

Office Hours

Atrium/Zoom

Friday 2:40 PM - 5 PM

TA Office Hours

All TA office hours will be on Zoom. See our course slack for details!

Day Early 6-8pm 7-9pm 8-10pm

Sun

Nitisha

Sarah

Anna

Mon

Angie

Judy

Anna

Tues

9-11am Zaynab

Angie

Judy

Weds

11am-1pm Nitisha

Al

Faith

Sarah

Thurs

Faith

Al

Fri

9-11am Zaynab

Text and Software

  • Learning Processing: A beginner’s guide to programming images, animation, and interaction by Daniel Shiffman, Second Edition. Available in the bookstore and of course, Amazon. There is also a Kindle ebook version.

  • Processing Software This software is already installed in the Computer Science Lab. Because of Covid-19, we require everyone to also install Processing on their own desktop or laptop computer. Download the latest 3.x release for your own computer/Operating System.

  • Dropbox Account Please go to dropbox.com and register. You will be using dropbox to submit assignments.

  • Slack Please go to slack.com. Our workspace is BrynMawr-CS110-F20. You can ask questions and request one-on-one help over zoom using this course’s slack channel.

Schedule

The syllabus may change during the semester. Please check here every week for updates on lecture content, worksheets, and assignments.

Week Date Topics & ToDo

0

Sept 1, 3pm-3:30pm, Zoom

Course introduction, administrivia

1

Sept 8,11

Shapes and Colors

2

Sept 15,18

Variables

3

Sept 22,25

Conditional statements

4

Sept 29, Oct 2

Loops

5

Oct 6,9

Functions

6

Oct 13,16

Objects and Arrays

7

Oct 20,23

Programming practice

  • Notes + Resources

  • Read: Chapters 10,11,12

  • No worksheets, quizes, assignments, or labs this week!!!

  • Labs and office hours are cancelled!

8

Oct 27,30

Top-down design

9

Nov 3,6

10

Nov 10,13

Search

11

Nov 17,20

12

Nov 24,27

Thanksgiving

13

Dec 1,4 (Virtual!)

Recursion

14

Dec 8 (Virtual!)

Java at the command line

Galleries of Student Work

Assignment 1: Free-form artworks

CS110 A01 ClassSummary

Assignment 3: Drawing program creations

CS110 A03 ClassSummary

Assignment 4: Radial designs using loops and functions

CS110 A04 CLassSummary

Assignment 5: Digital Pets

CS110 A05 CLassSummary

Pet animations:

ary pet ChickCat Angela emily pet rockart pet clara pet creech pet lola pet mia pet

Grading Policies

All graded work will receive a grade, 4.0, 3.7, 3.3, 3.0, 2.7, 2.3, 2.0, 1.7, 1.3, 1.0, or 0.0. At the end of the semester, final grades will be calculated as a weighted average of all grades according to the following weights:

30%

Final Exam

30%

Lab assignments

25%

Quizzes

10%

Lab exercises

5%

Lecture exercises

80%

Final Exam

6%

Lab assignments

6%

Quizzes

6%

Lab exercises

2%

Lecture exercises

Exam and Quizzes

Quizzes will be given at the beginning of class on the days posted on the schedule.

There will be one final exam for the semester. Details and dates will be released during the semester. Please read the section on accomodations if you are in need of extra time. You must inform us of accommodations or conflicts at least 2 weeks in advance of the exam.

Quizzes and exams will be open book. You will be given sample questions beforehand to help you study. Warning! Do not rely heavily on your notes for quizzes. You will need to have concepts memorized in order to finish within the time limit.

Homeworks and exercises

This course features weekly lab exercises and assignments which are an important component of the class.

Lab exercises will be passed out in lab. These exercises are intended to be short and will typically ask you to reproduce demos from class or tackle concepts you will need for your assignment. Lab execises should be handed in at the end of lab.

Class exercises will be passed out in class. These exercises are intended to be short and will typically ask you to practice concepts from lecture. Class execises should be handed in at the end of class.

Assignments will be posted Saturdays and due Friday before midnight. You are strongly encouraged to start early so that you can ask questions. See the syllabus for links to the assignments.

You will submit your assignments electronically using Dropbox.

Late Policy

Because practice is so important for learning how to program, we will do frequent exercises, assignments, and quizzes throughout the term.

The purpose of this work is to give you hands on experience with the topics from class. Most of this work will be due in lecture or labs. The weekly time commitment for this course is aimed to be 10 hours or less per week.

No late work will be accepted. Why? Because it’s important that you do not fall behind in the material. It is better to submit incomplete work than to fall behind, or not submit work at all!

However, we realize that you may not be able to complete a deadline for any number of valid reasons. We also do not want you to feel compelled to come to class or lab in person if you feel sick in anyway.

Below are our class policies for these cases:

Work type Policy

Assignments

Lowest grade dropped

Quizzes

Lowest grade dropped

Class exercises

Lowest two grades dropped

Lab exercises

Lowest two grades dropped

Final

Must be taken

If you need to miss class or lab, you can submit your exercises electronically by midnight on the day the exercises are assigned:

  • Either email the instructor with a photo of your work,

  • or email a link to your work in your dropbox folder.

If you need to miss more than one quiz, you must make arrangements ahead of time to take the quiz at another time. If you cannot give notice ahead of time because of a medical emergency, you will need to provide a doctor’s note to schedule a make-up quiz.

Academic Integrity

At Bryn Mawr, we assume students are trustworthy and work with honesty and integrity. Look here for information about Bryn Mawr’s Honor Code.

As you progress in this course, you will see that programming is a creative process, similar to writing. The same problem can be solved in multiple ways. It’s essential that you develop your own skills for developing algorithms and implementing them through programs.

Discussing ideas and approaches to problems with others on a general level is fine (in fact, we encourage you to discuss general strategies with each other), but you should never read anyone else’s code or let anyone else read your code. All code you submit should be your own with the following permissible exceptions: code distributed in class, and code found in the course text book. In these cases, you should always include detailed comments that indicates on which parts of the assignment you received help, and what your sources were.

  • Please don’t hesitate to ask the awesome teaching assistants (TAs) for help. They provide TA hours most week nights and are excellent mentors!

  • Please discuss the readings and associated topics with each other. Work together to understand the material. Reading groups to discuss the material are highly recommended — we will explore many ideas and it helps to have multiple people working together to understand them.

  • It is fine to discuss the topics covered in the homeworks, to discuss approaches to problems, and to sketch out general solutions. However, you MUST write up the homework 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.

  • Exams, of course, must be your own individual work.

Academic Accommodations

All classes will be recorded and close-captioned. Links to lectures will be posted on the class syllabus.

Any student who has a disability-related need to record this class first must speak with the Director of Access Services, Deb Alder, as part of university policy. Class members need to be aware that this class may be recorded.

To receive an accommodation for a course activity (such as more time on quizzes and exams), you must have an Accommodation Letter from the Office of Student Disability Services and you need to contact us to work out the details of your accommodation at least two weeks prior to the activity. Forms can be emailed to me, the instructor.

You are also welcome to contact us privately to discuss your academic needs. However, all disability-related accommodations must be arranged, in advance, through Student Disability Services.

Students needing academic accommodations for a disability must first register with Access Services. Students can call 610-526-7516 to make an appointment with the Director of Access Services, Deb Alder, or email her at dalder@brynmawr.edu to begin this confidential process. Once registered, students should schedule an appointment with the professor as early in the semester as possible to share the verification form and make appropriate arrangements. Please note that accommodations are not retroactive and require advance notice to implement. More information can be obtained at the Access Services website. (http://www.brynmawr.edu/access-services/)

Links that are related to the course may be posted here. If you have suggestions for links, let us know.