Bryn Mawr College
CMSC 110: Introduction to Computing - Section 01
Fall 2016
Course Materials
Prof. Deepak Kumar
General Information
Instructors:
Lecture Hours: Tuesdays & Thursdays, 12:55 p.m. to
2:15 p.m.
Office Hours: Wednesdays from 1:00p to 3:00p
Room: 338 Park Science Building
Lab: All labs will meet in Room 231 PSB. Students should register for ONLY ONE of the labs shown below:
- Mondays 2:30p.m. to 3;30 p.m. (led by Prof. Eisenberg)
- Tuesdays 2:15 p.m. to 3:15 p.m. (led by Prof. Kumar)
- Wednesdays 2:30 p.m. to 3:30 p.m. (led by Prof. Eisenberg)
- Thursdays 2:15 p.m. to 3:15 p.m. (led by Prof. Kumar)
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.
- Calla Carter (*): Tuesdays 6:00p to 8:00p
- Yazhe (Eileen) Feng: Fridays and Saturdays 7:00p to 9:00p
- Katherine Lee: Mondays 6:00 to 8:00p and Wednesdays 8:00p to 10:00p (Wednseday hours will be held at Haverford College in Hilles 110)
- Jiayi Lin: Thursdays and Fridays 7:00p to 9:00p
- Ziting Shen (*): Thursdays and Sundays 6:00p to 8:00p
- Lizzie Siegle: Mondays and Wednesdays 8:00p to 10:00p
- Rachel Xu(*): Mondays and Wednesdays 7:00p to 9:00p
Note: (*) indicates TA is primarily there for another class but is willing to assist if needed.
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 $42.75
A Kindle eBook is available for those comfortable learning from an eBook (Amazon price is $19.79). The Bryn Mawr Bookstore price is $47.75.
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 programming 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
August 30: First lecture
October 6: Exam 1
December 8: Last lecture/Exam 2
Assignments
- Assignment#1 (Due on Tuesday, September 13): Click here for details.
- Assignment#2 (Due on Thursday, September 22): Click here for details.
- Assignment#3 (Due on Tuesday, October 4): Click here for details.
- Assignment#4 (Due on Tuesday, November 8): Click here for details.
- Assignment#5 is posted (Due Tuesday, November 22): Click here for details.
- Extra Credit Assignment is posted (Due Tuesday, November 29): Click here for details.
- Assignment#6 is posted (Due on Thursday, December 1): Click here for details.
Lectures
- Week 1 (August 30, September 1)
August 30: Course introduction, adminstrivia. Computing: an introduction, examples of modern day computing. Algorithms, programs, and programming languages. Creative computing: an introduction with examples. Introduction to Processing.
Slides: Click here.
Do: Start Lab#1
September 1: Art by Numbers: Basics of drawing - canvas, coordinate system, Drawing tools (point, line, triangle, rectangle, ellipse, attributes -(anti)-aliasing, stroke, fill)), drawing modes (CENTER, CORNER, ...), structure of a basic program. Sequencing, algorithm, psuedocode. Color: grayscale and rgb. Transparency.
Slides: Click here.
Assignment#1 (Due on Tuesday, September 13): Click here for details.
- Week 2 (September 6, 8)
September 6: Drawing tools, contd. (arcs, quadrilaterals, polygons, curves, variables, arithmetic.
Do: Start Lab#2.
Slides: Click here.
Read: Chapter 2 from GXK.
September 8: Program Structure: Static and Dynamic programs. Tracking mouse and interactivity. Variables. Fu8nctuions & Scope. Math functions: random().
Read: Start reading Chapter 3 from GXK.
- Week 3 (September 13, 15)
September 13: 2D Transformations. Control statements: if-, switch-, loops (for-, while-).
Do: Start Lab#3.
NOTE: This evening's TA Session is cancelled due to the CS Interenships Session. Please go to that!
September 15: Using control statements: several examples.
Assignment#2 (Due on Thursday, September 22): Click here for details.
- Week 4 (September 20, 22)
September 20: Using control statements. More examples. Doing simple animation, adding physics. Functions: terminology- define, call/invocation, parameters/arguments, return values, etc. Examples.
September 22: Trigonometry and how to use it in drawing. Drawing polygons and stars."
Read: Chapter 3 from GXK.
Assignment#3 (Due on Tuesday, October 4): Click here for details.
- Week 5 (September 27, September 29)
September 27: Revisiting fundamentals (variables, statements: assignment, expressions, loops, conditions, functions) through examples: Drawing a clover leaf. Drawing a flower using a clover leaf. Trucks example.
Read: Please re-review the first four chapters from GXK.
Notice: Next week the Wednesday and Thursday Labs are cancelled. The monday and Tuesday Labs will be used to do a review for the midterm exam. Students in Wednesday and Thursday labs are invited to attend either lab on Monday or Tuesday. Please come prepared with specific questions and/or clarifications to ask.
September 29: Revisiting fundamentals (variables, statements: assignment, expressions, loops, conditions, functions). Learning to trace code (helps you understand and debug programs).
Practice Exam is posted. Click here.
- Week 6 (October 4, 6)
October 3 (Monday): Rachel Xu's TA Hours from 6:00 to 8:00p are cancelled for today.
October 4: Review for Exam 1. Time permitting, more practice with functions.
Practice Exam 1 Solutions posted.
Notice: This week the Wednesday and Thursday Labs are cancelled. The monday and Tuesday Labs will be used to do a review for the midterm exam. Students in Wednesday and Thursday labs are invited to attend either lab on Monday or Tuesday. Please come prepared with specific questions and/or clarifications to ask.
October 5 (Wednesday): Katherine Lee's TA Hours from 8:00 to 10:00p are cancelled.
October 6: Exam 1 is today. Syllabus: Chapters 1-4 from GXK. All Labs and assignments to date.
- Week 7 (October 11, 13)
No Classes. Fall Break
- Week 8 (October 18, 20)
TA Hours for Calla Carter (Tuesday 6:00 to 8:00p) and Ziting Shen (Thursday & Sunda 6:00 to 8:00p) are cancelled for this week.
October 18: Data Visualization: Introduction. Drawing pie charts. Storing and processing data in arrays.
Read: Chapter 5 from GXK.
October 20: Data Visualization, contd. Drawing bar graphs. Arrays as parameters. Inputting data from files. Parsing data files.
Assignment#4 (Due on Tuesday, November 8): Click here for details.
Read: Chapter 5 from GXK.
- Week 9 (October 25, 27)
October 25: Visualizing Data: Time Series. How to get, clean, and use data to visualize as a time series.
Read: Chapter 5 from GXK.
October 27: Foundations of Data Visualization.
Read: Chapter 5 from GXK.
- Week 10 (November 1, 3)
November 1: Array calisthenics. Lost of examples and exercises using arrays.
Exam 1 Solutions
November 3: Introduction to Object-Oriented Programming (OOP): Class, object, instance, attributes, constructors, methods (accessors, modifiers, predicates, print methods).
Ziting Shen's TA Hours for today are cancelled.
Read: Chapter 6 from GXK.
- Week 11 (November 8, 10)
Rachel Xu's TA Hours for this week are cancelled.
November 8: Introduction to Object-Oriented Programming (OOP): Class, object, instance, attributes, constructors, methods (accessors, modifiers, predicates, print methods).
Read: Chapter 6 from GXK.
Solutions to last week's lab.
November 10: The String class in Java. Doing basic text processing using String type.
Read: Chapter 7 from GXK.
Assignment#5 is posted (Due Tuesday, November 22): Click here for details.
- Week 12 (November 15, 17)
November 15: Processing and mining texts.
Read: Chapter 7 from GXK.
Extra Credit Assignment is posted (Due Tuesday, November 29): Click here for details.
Lizzie Siegle's TA Hours on Wed 8-10p are cancelled.
November 17: Text processing, contd.Data Structures: ArrayLists. Sorting: Selection Sort, Insertion Sort. Fonts and font metrics in processing.
Read: Chapter 7 from GXK.
- Week 13 (November 22, 24)
November 22: OOP: Revisted. Inheritance and Interfaces.
Read: Chapter 6, 8.
Assignment#6 is posted (Due on Thursday, December 1): Click here for details.
November 24: No class. Thanksgiving!
- Week 14 (November 29, December 1)
November 29: Recursion, contd. Iteration vs recursion. Recursive formulations of iterative algorithms.
December 1: On to Java. Review Session.
- Week 15 (December 6, 8)
December 6: Guest: Prof. Eisenberg will do a review session in class and labs today. There are no labs on Thursday. Thursday students are welcome to attend the lab on Tuesday.
December 8: 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: |
20% |
Exam 2: |
25% |
Assignments |
45% |
Citizenship |
10% |
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 August 28, 2016.