Bryn Mawr College
CMSC 110: Introduction to Computing
Fall 2014
Course Materials
Prof. Sonu Chopra Khullar
General Information
Instructors:
Sonu Chopra Khullar
246-D Park Science Building, but look for me in Computer Lab Room 231
610-526-7582
schopra at cs dot brynmawr dot edu or sonukhullar dot bmc at gmail dot com
|
Office Hours: Mondays & Wednesdays, 10 a.m. to
11 a.m.
Lecture Hours: Mondays & Wednesdays, 11:40 a.m. to
1 p.m.
Room: Park 278
Lab: Wednesdays 2pm-4pm in Room 231 (additional lab
hours will also available, see below)
Laboratories:
- Computer Science Lab Room 231 (Science Building)
- You will also be able to use your own computer to do the labs
for this course.
Lab Assistants: The following Lab assistants
will be available during the week for assistance on lab assignments.
- Kalina Kostyszyn Mondays & Wednesdays 9:00a to 11:00a
- Bryce Lewis Wednesdays and Thursdays & Wednesdays and Thursdays 8:30p to 10:30p
- Leqi Liu: Tuesdays & Wednesdays 8:00p to 10:00p
- Adrianna Castilla-Hernandes Fridays 2:00p to 4:00p and Tuesdays 9:15a to 11:15a
- Ziyan Yang: Mondays & Wednesdays 3:00p to 5:00p
Texts &
Software
Processing: Creative Coding & Generative Art in Processing 2 by
Ira Greenberg, Dianna Xu, Deepak Kumar, Friends of ed, 2013.
Available at the Campus Bookstore. Also at amazon for
A Kindle eBook is available for those comfortable learning
from an eBook (Amazon price is $). The Bryn Mawr Bookstore price is $.
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 (www.processing.org). Download the latest stable 2.X version for your own computer/Operating System.
|
|
Syllabus
Course Description: 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. Also includes the social context of
computing (risks, liabilities, intellectual property and
infringement).
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 desiging programs in a language
called, Processing. Processing is a new language/environment
built upon the programming language Java. Processing was created
by artists, designers, and computer scientists to explore ideas
of creative coding sing computer algorithms.
We will cover the entire text during this semester. Please
refer to the text for more details.
Important Dates
September 3: First lecture
October 8: Exam 1
December 10: Last lecture/Exam 2
Assignments
- Lab Assignment 1, Due Monday, September 8
- Lab Assignment 2, Due Wednesday, September 10
- Homework Assignment 1, Due Wednesday September 17
- Homework Assignment 2, Due Wednesday September 24
- Homework Assignment 3, Due Wednesday October 10
- Homework Assignment 4, Due Monday November 3, 2014
- Homework Assignment 5, Due Monday November 17, 2014
- Homework Assignment 5 Code
- Homework Assignment 6
ClassExamples
- drawInLoop
- Eyes
- Eye
- Bouncing Ball
- polygon based on mouse
- maui bus flower
- bezier curves tutorial
- star burst and jelly fish
- pieChart
- Apple Stock
- Apple Stock Price File
- OOP Tick Reader
- More OOP Tick Reader
- final Review Questions
- studentInfo
Lectures
- Week 2 (September 8, 10)
September 8: Art By Numbers.
Processing, Drawing basics: canvas, shapes, and colors. Introduction to
Processing commands: size(), background(), 2D shapes (point(), line(),
triangle(), rectangle(), quad(), ellipse(). Drawing attributes and
modes. Structure of a static processing program. CS/Programming
principles: Algorithms, psuedocode, code, syntax, sequencing.
Slides: 02_ArtByNumbers
Do: Read Chapter 2 (pages 33-50).
Read and do the Coordinate System and Shapes and the Color tutorials on processing.org.
Review the Processing commands introduced; try them out, experiment with shapes, modes, attributes, and colors.
Lab Assignment#2 (Due on Wednesday, September 10):
September 10: Lecture#3
Topics: Basic drawing & 2D shapes contd.: arc(), quad(),
curve(), beginShape(), endShape(), vertex(), curveVertex(). Basic
structure of a static Processing program.
Slides:03_2DShapes
Do: Finish reading Chapter 2. For more on drawing curves read the Drawing Curves tutorial on processing.org.
September 10: How to draw simple
text. Variables, types (int, flot, String, boolean, color), naming
rules, declarations, arithmetic operators. Predefined Processing
variables: width, height, displayWidth, displayHeight, PI, HALF_PI,
TWO_PI, mouseX, mouseY.
Static vs. Dynamic Program modes, (usijng setup() and draw() functions),
code blocks ({..}), interactivity with mouseX and mouseY variables,
event listeners, frame rates.
Homework Assignment#1 (Due on Wednesday, September 17):
Homework Assignment 1
Do: Read Chapter 3 (page65-72)
- Week 4 (September 22, 24)
September 22:
Slides: 05_ControlStructures
while loops, do while loops, for loops, if statements, review of functions and variables
Review and interactive review of examples, loops, functions, variables, iteration
September 24: Home Work Assignment #2 Due
- Week 5 (September 29, October 1)
September 30:
Trigonometry, drawing polygons, more interactive review
October 2 :
random and noise functions, more trigonometry
- Week 6 (October 6, 8)
October 6:
review of material todate
October 8: Exam 1 is today.
- Week 7 (October 13, 15)
No Classes. Fall Break
- Week 8 (October 20, 22)
October 20: Review Class Exambr>
October 22: Read Chapter 5, Arrays, Data Visualization
- Week 9 (October 27, 29)
October 27: More Arrays, Graphs For Data Visualization,
October 29: Finish Chapter 5
- Week 10 (November 3, 5)
November 3: Start Reading Chapter 6
Finish Arrays, Heat Maps, Labels on x,y axis and how to calculate. Wrap up apple chart example
Homework Assignment#4 (Due on Weds November 5):
Slides: Arrays
November 5: Introduction to Object Oriented Programming and Classes
Classes encapsulating data and behavior: eye example, ball example. Principles of object oriented programming and ball game development
- Week 11 (November 10, 12)
More object oriented programming examples
November 10:
November 12:
Inheiritance, Shape Hierarchy, balls in box
- Week 12 (November 17, 19)
November 17: Finish up inheiritance
November 19: sorting, sorting and more sorting, word clouds
- Week 13 (November 24, 26)
November 24:
November 26: We have class, Thanksgiving tomorrow!
- Week 14 (December 1, 3)
December 1:Recursion
December 3: more examples of recursion.
- Week 15 (December 8, 10)
December 8:
Write up Hw 6 due, Exam Review
December 10: Exam 2 is today.
Course Policies
Communication
Attendance and active participation are
expected in every class. Participation includes asking questions,
contributing answers, proposing ideas, and providing constructive
comments.
As you will discover, we are proponents of two-way communication
and we welcome feedback during the semester about the course. We
are available to answer student questions, listen to concerns, and
talk about any course-related topic (or otherwise!). Come to
office hours! This helps us get to know you. You are welcome to
stop by and chat. There are many more exciting topics to talk
about that we won't have time to cover in-class.
Although computer science work can be intense and solitary, please
stay in touch with us, particularly if you feel stuck on a topic
or project and can't figure out how to proceed. Often a quick
e-mail, phone call or face-to-face conference can reveal solutions
to problems and generate renewed creative and scholarly energy. It
is essential that you begin assignments early, since we will be
covering a variety of challenging topics in this course.
Grading
There will be seven assignments,
weighted equally in the final grading. Assignments must be
submitted according to the Assignment Submission
instructions. You should pay careful attention to the Code Formatting Standards and Grading Policy when doing your
assignments. The grading structure for individual
assignments is broken down in the Grading Policy, posted in each assignment.
At the end of the semester, final grades will be calculated as a
weighted average of all grades according to the following weights:
Exam 1: |
18% |
Exam 2: |
26% |
Assignments: |
56% (8% each)
|
Total: |
100% |
Incomplete grades will be given only for verifiable medical
illness or other such dire circumstances.
Submission and Late Policy
All work must be turned in either in hard-copy or electronic
submission, depending on the instructions given in the
assignment. E-mail submissions, when permitted, should request
a "delivery receipt" to document time and date of submission.
Extensions will be given only in the case of verifiable medical
excuses or other such dire circumstances, if requested in advance
and supported by your Academic Dean.
No assignment will be
accepted after it is past due.
No past work can be "made up" after it is due.
No regrade requests will be entertained one week after the graded work is returned in class.
Exams
There will be two exams in this course. The exams will be
closed-book and closed-notes. The exams
will cover material from lectures, homeworks, and assigned
readings (including topics not discussed in class).
Study Groups
We encourage you to discuss the material and work together to
understand it. Here are our thoughts on collaborating with other
students:
- The readings and lecture topics are group work. Please discuss
the readings and associated topics with each other. Work
together to understand the material. We highly recommend forming
a reading group to discuss the material -- 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
solutions, mathematical results, program code, etc. If you
made any notes or worked out something on a white board with
another person while you were discussing the homework, you
shouldn't use those notes while writing up your answer.
- Under ABSOLUTELY NO circumstances should you share computer
code with another student. Similarly, you are not
permitted to use or consult code found on the internet for any
of your 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.
Links
Created on August July 28, 2014.