COM 110 Fall 2018
Introduction to Computer Science and Problem Solving


I think everyone should learn how to program a computer, because it teaches you how to think.  I view computer science as a liberal art, something everyone should learn to do. – S. Jobs


If you can't solve a problem, then there is an easier problem you can solve: find it.  G. Polya

Jump down to Course Schedule

Course Description

In this course we will create and implement solutions to problems via the art and science of computer programming.  We will discuss the design of elegant algorithms, the writing of efficient and readable code, and the process of software development.  Along the way, we will explore graphics and animation, string and text manipulation, simulation, object-oriented design, and much more.

Problem solving using computer programming is a fundamental skill that can be employed to enhance your ability to succeed in any discipline.  Even more generally, it is a great way to expand and hone your critical and analytical thinking for creative, yet methodical, problem solving in all aspects of life. 

The programming language we will use is called Python.  Python is a versatile, yet straightforward language, and is used widely both in academic and practical/industry settings.  We will be using Python to solve interesting problems in a wide variety of fields.

No prior programming experience is expected of students in this course.  There will be plenty of resources and course staff to assist you.  By the end of the first week you will be writing simple computer programs and by the end of the semester you will create your own, unique, substantial final project. 

Course Objectives

By the end of the course you should be able to:

·      Understand the use of algorithms and the software development process to solve problems.

·      Learn the basics of the programming language Python and how to use it to solve problems.

·      Understand computer science concepts such as data types, functions, top-down and bottom-up design, modularity, file input and output, control structures (like decision statements and loops), creating and using classes, object-oriented design, graphics, recursion, and others.

·      Design and implement programs to solve practical problems in fields such as linguistics, politics, art, music, economics, mathematics, science, statistics, geography, psychology, multimedia.

·      Implement a substantial and unique project of your own design and purpose.

Course Info


All information below is subject to change at any time.  Check the course website daily for announcements and updates. 



Mondays and Wednesdays, 2:45 – 4:00 in Hale, Brown Auditorium



You must be registered for one of the following labs.

·       Fridays 9:40 am to 11:40 pm in NLH 214

·       Fridays 1:15 to 3:15 pm in Hale, Brown Auditorium

Labs will be run by the professor or lab instructor (Evan Gray) along with student TAs.  Lab assignments must always be completed within each lab class, not before or after.  If you miss a lab, you will not get credit for that lab, but you are still expected to complete it on your own time so that you don’t fall behind.  Only in very special circumstances, a lab may be rescheduled or made up during another lab time or at a TA session.  The lowest lab grade will be dropped.


TA sessions: 

Optional TA sessions are run by your TAs in New London Hall throughout the week on most evenings.  See the TA session schedule for details.  I encourage everyone to attend at least one of these each week.  Many students try to attend more than one, or all of them, each week.  They are a great place to work on (or get help with) your reading assignments, HW exercises, programming assignments, etc. 



Dr. Christine Chung


New London Hall 220

Office Hours (tentative):  Mondays 10-11:30 and Thursdays 1:30-3:00 (or by appointment).  Sign up here for an available office hours time slot or email me if you have conflicts.


Lab Instructor:

Evan Gray


Office hours: by appointment


Student TAs:

TA info may be found on the TA session schedule page



“Warm-up” exercises (15 or 20 of them)


Labs (one per week, about 12 all together)


Programming Assignments (6)


Quizzes (6 or 7 of them)


Final Project


Class Participation



The above grading breakdown is tentative and may change during the semester.


Grades will be recorded on moodle throughout the semester.  Please track your grades there throughout the semester and let me know of any discrepancies you find.


Course Materials

Course web pages:

Required texts:  There is one required text for the course.

·       Python Programming: An Introduction to Computer Science by John Zelle, 3 ed. Franklin, Beedle & Associates.  ISBN 978-1590282755.

Other useful text: 

·       Python for Software Design: How to Think Like a Computer Scientist, by Allen B. Downey. ISBN: 0521725968. 

o   Available for purchase online or for free here:

o   Very cool interactive version (also free) that you are highly encouraged to use/play:

Software:  Python 3.4 and its programming environment IDLE.  Almost all machines on campus should already have this (or some earlier version of Python 3) installed.  Please let me know if you discover otherwise so we can rectify it.  Python is available for download free from

Course Policies

Culture of collaboration.  In this class you are expected to work cooperatively.  You are encouraged to discuss ideas and ask each other for help.  Indeed, giving and asking for constructive input to/from fellow students is a part of the important learning experience we will be striving for.  However, sharing copies of solutions/code with one another is considered an honor code breach.  Likewise it is forbidden to copy solutions/code from anyone/anywhere without citation.  Copying code without citing where the code came from is also considered an honor code breach.  When you receive help/input on an assignment, you must always cite your sources. 

Warm-up Exercises.  Reasonably small warm-up exercises will be due at least once a week.  They are written assignments that will allow you to reflect on what you’ve learned the previous class, or prepare you for what we will be learning in the next class.  They must be turned in at the start of class in hard copy (either typed or hand-written).  They will be graded on completeness and effort rather than correctness.  The lowest warm-up grade will be dropped.

·      A “complete” warm-up exercise is one that demonstrates a complete effort.  Your answer to the problem or question is only a byproduct of the assignment; you must in fact show your thought process in seeking an answer.  It also means that if you don’t arrive at an answer at all, but log/describe your thought process during your (sufficiently thorough) attempts at finding one, you will have demonstrated a complete effort.  If you demonstrate that you followed these steps, you will be in good shape.  Alternatively, a complete effort can be demonstrated by simply presenting your solution with full explanation of each step in your solution.  Complete warm-ups will earn a 5 out of 5. 

·      Warm-ups turned in after class starts are considered late.  (If you are late to class, your warm-up will be late.)  Late submissions will be accepted until the start of the next class meeting, and will earn a maximum grade of 3. 

Programming Assignments.  Sizable programming projects (smaller and simpler ones at first, larger and more interesting ones later) will be due roughly every two weeks.  You will be provided with the grading rubric for each assignment ahead of time.  The TAs will test your program and write notes on the grading rubric about its functionality.  The professor will then read your code, usually run additional tests, and grade each assignment using the rubric.  You are encouraged to attend TA sessions to work on your assignments, get help and ideas, and to discuss functional or stylistic ways to improve your programs.  You should also see the TAs after your assignment has been graded, to make sure you understand the feedback you received, and to correct any mistakes in or shortcomings of your submission.  Programming assignments will be penalized 10% for each day late.

Final Projects.  Each student will propose their own final project to be completed in the final weeks of the semester.  No late final projects will be accepted. 

Attendance.  Attendance is required for all lectures and labs.  As mentioned above, to earn credit for a lab you must be in attendance for it.

Campus-wide Policies and Resources


Credit Hour Definition

A semester course is normally equivalent to four semester hours. Connecticut College complies with federal regulations defining the credit hour. For each credit hour awarded, students are expected to complete no fewer than three hours of combined instructional or studio/lab time and out-of-class work per week.


The Connecticut College Honor Code

Academic integrity is of the utmost importance in maintaining the high standards of scholarship in our community. Academic dishonesty is considered to be a serious offense against the community and represents a significant breach of trust between the professor, the classmates, and the student. There are many forms of academic dishonesty including plagiarism, falsifying data, misrepresenting class attendance, submitting the same work in two courses without prior approval, unauthorized discussion or distribution of exams or assignments, and offering or receiving unauthorized aid on exams or graded assignments.  Students violating the Honor Code may be referred to the college's Honor Council for resolution. 


Title IX Statement

As a faculty member, I am deeply invested in the well-being of each student I teach. I am here to assist you with your work in this course. If you come to me with other non-course-related concerns, I will do my best to help.

It is important for you to know that all faculty members are trained and required to report any incidents of gender-based discrimination, including discrimination based on gender identity, gender expression, and sexual orientation. This means that I cannot keep information confidential about sexual misconduct, intimate partner violence, stalking, or other forms of gender-based discrimination. Heidi Freeland-Trail, the Director of Sexual Violence Prevention and Advocacy, can advise you confidentially as can Counseling Services and any of the College chaplains. Heidi can also help you access other resources on campus and in the local community. You can reach Heidi at 860-439-2219 or, and her office is in Cro 222.

The student sexual misconduct, intimate partner violence, stalking, and non-discrimination policies are in the Student Handbook, which can be found on CamelWeb, in the "Documents/Policies" section, under the Student Life section. There you will find the policies, definitions, procedures, and resources. If you need to report an incident or have any questions about the policy, you can contact the Office of Institutional Equity and Inclusion at 860-439-2035 or Fanning 110.


Academic Resource Center

The Academic Resource Center (ARC) offers services to support your academic work such as study skills workshops, time management, coaching and tutoring. Its offices are located on the second floor of Shain Library. Please visit it or call 860-439-5294 for more information or to schedule an appointment.


Writing Center

The Roth Writing Center provides one-to-one peer tutoring (free of charge) to help student writers of all abilities during all stages of the writing process. To make an appointment, call 860-439-2173 or stop by the Writing Center at 214 Blaustein. If you're a confident, experienced writer the Center can help you to push your ideas and polish your style; if you're a relatively inexperienced and not-so-confident writer it can also help you, by working on grammar or organization or whatever you need. Writing Center tutors are trained to help you to discover what you think through writing. Working with a tutor gives you the opportunity to share your work-in-progress with an actual reader, so that you can get useful feedback on that work before you have to turn it in for a final grade. For further information, visit the Writing Center web page at


Office of Student Accessibility Services

Connecticut College complies with Section 504 of the Rehabilitation Act of 1973 and the Americans with Disabilities Act. If you have a documented disability and have been approved for academic accommodations, please present your Accommodation Memo privately during my office hours as early as possible in the semester. If you are not approved for accommodations, but have a disability requiring academic accommodations, or have questions about applying for accommodations, please contact Student Accessibility Services at 860-439-5428 or


Office Hours

Office hours provide students with additional opportunities to review or ask questions about the class discussions and assignments. Connecticut College faculty encourage students to go to office hours so they might learn about your interests, both inside and outside the classroom. In addition to talking about class material and assignments, you may find you share common interests, such as music, books, hobbies, and movies. If a professor knows your interest, they may inform you about campus programs and activities or other opportunities like fellowships and scholarships. Most importantly, a professor who knows their students writes better letters of recommendation. Successful students at Connecticut College make time to go to their office hours. All Connecticut College faculty are required to have office hours on their syllabus and posted on their office door.  If you cannot make your professor's scheduled office hours, contact your professor to set up an appointment.  


Student Health Services

Student Health Services, located in the Warnshuis Student Health Center behind the library, is available to all full-time, matriculated students. Our purpose is to help students maintain optimal general health through the disciplines of physical and mental health, and health education around lifestyle choices. This is accomplished through a full-time staff and a variety of professional consultants in many disciplines. All professional services are delivered with attention to confidentiality. In the event of a serious illness or injury, parents or guardian will be notified at the discretion of the staff. You can schedule an appointment Monday through Friday by calling 860-439-2275. Information on Care When We Are Closed, Our Services, and Student Health Insurance may be found on Camelweb, in the Student Life Section, under Student Health Services.


Student Counseling Services
The mission of the Student Counseling Services is to promote the emotional and psychological growth and well being of the students at Connecticut College. The Student Counseling Services' goal is to enhance each individual's ability to learn, to create and to be fully participating members of the College community by utilizing safe, culturally sensitive and inclusive approaches to mental health treatment.To carry out this mission, Student Counseling Services makes available to students a wide range of outpatient clinical services in a safe, non-judgmental atmosphere. Connecticut College Student Counseling Services has been accredited by the International Accreditation of Counseling Services (IACS) since 2005. Appointments may be made by phone at (860) 439-4587 or via email at

Gender-Inclusive Language
Aspiring to create a learning environment in which people of all identities are encouraged to contribute their perspectives to academic discourse, the Connecticut College Department of Computer Science encourages gender-inclusive and non-sexist language. This goal reaffirms Connecticut College’s commitment to full participation by fostering an inclusive and welcoming environment where intellectual dialogue can flourish. Language is gender-inclusive and non-sexist when we use words that affirm and respect how people describe, express, and experience their gender. Gender-inclusive and non-sexist language acknowledges people of any gender (e.g. first-year student versus freshman, chair versus chairman, humankind versus mankind). It also affirms non-binary gender identities, and recognizes the difference between assigned  sex and gender identity. I will ask students to share their pronouns and names at the beginning of the semester and all gender identities should be affirmed and respected by everyone in the course. If, at any point during this class, you would like me to use a different name or pronoun in addressing, please email me. (adapted from GSWS @ Pitt accessed 12/29/2017 with permission)


Course Schedule

As with everything else on this page, the schedule listed below is subject to change.  Check back often for updates.

Important note:  you are responsible for completing the “after-class” reading and warm-up material before you come to the next class.  The readings in Zelle require you to test code, so as you read, you should be actively coding on a computer running Python.  You should save any code you write while doing the readings as it will sometimes be used again in future exercises.  Make sure you organize all your saved python files so that you can easily find them in the future.  As detailed above, warm-up exercises are to be handed in at the beginning of each class meeting.  Quizzes will reflect reading assignments and warm-up exercises.







Aug 29

Computer science; purpose and goals of this course; Python

o   Due on Monday, Sept 3:

·       Carefully read the syllabus (class description, info, policies, etc) on course website.  As you read, write down in your CS notebook any questions that occur to you.  Post your questions to moodle, email them to me, and bring them to class!

·       If you have your own computer/laptop, download and install Python 3.x.  Any version after 3.4 should do fine.  We will do all our coding using IDLE, which is part of what installs when you install Python.  If you don’t plan to use your own machine, you should use a campus machine, which should already have Python installed.  If you find that a campus machine is not running Python, please let me know; we will rectify.

·       Read (and code) chapter 1 in Zelle.

·       Read (and code) Chps 2.1-2.4 in Zelle.

·       Complete warm-up exercise 1 to be submitted in hard copy at the start of our next class meeting (on Sept 3).

o   Complete warm-up exercise 0, to be posted to our moodle class forum within one week.

Examples of what I’m looking for might be links to articles, or video clips like these:  from, and from google.



Aug 31
Lab 1

Function definitions, variables, input, output, assignments and loops.




Due Wed, Sept 5:

o   Post “warm-up 0” assignment from last time to moodle if you haven’t already.

o   Read (and code) the rest of Chp 2 in Zelle.

o   Read Programming Assignment 1 and corresponding grading rubric.  Note any questions you have and post them to moodle to email them to me. 

o   Read and code Chp 3 in Zelle.

o   Complete the Programming Exercises at the end of chapter 1 in Zelle (pages 24-25).  (Not for submission, for practice only.)

o   Complete warm-up exercise 2 to be submitted in hard copy at the start of our next class (on Sept 5).

o   Reminder:  Bring class notes and Zelle text to lab!


Mon Sept 3

Variables, input, output, assignments and loops.  Advice for programming assignment 1.



Sept 5


Numerical manipulation, data types, accumulators

Reminder:  Bring class notes and Zelle text to lab!

Due Monday, Sept 10:

o   Complete Discussion Exercise 4 and Programming Exercises 2, 3 and 4 at end of chapter 2.  (Not to be submitted, just for practice.)

o   Read Chapters 5.1-5.3 and 5.8 in Zelle

o   Complete warm-up exercise 3 to be submitted in hard copy at the start of class.  (This exercise should help with part B of Assignment 1, so I recommend doing this first…)

o   Continue work on Programming Assignment 1.


Sept 7
Lab 2

Numeric expressions, accumulators, strings.



Sept 10



Due Wed, Sept 12:

o   Before the start of class:  create an account at Discovery Teaching and enroll as a student in our course with PIN number: 8044172.  Let me know if you have any problems with this!

o   Programming Assignment 1 due by 9:30 pm on Wed, Sept 12.  Grading info. 


Wed Sept 12

File IO.  Files needed: collosus.txt

By the start of class Mon, Sept 17:

o   Finish reading and code all of chapter 5 in Zelle.  Rather than using the numbers.dat file that section 5.9.2 refers to, you can use this file:  theprogrammer.txt Just make sure it is saved in the same folder that you have your code saved.  And for the “Batch Usernames” program in 5.9.3, you can use this file:  classlist.txt 

o   Warm-up exercise 4 (to be submitted at the start of class on Monday) is as follows: 

·       For discussion question 1 (on page 169) at the end of chapter 5, first see if you can predict how Python will evaluate each expression.  (Refer to page 148, Table 5.2—or the internet!—if you can’t remember what each string method does.)  Then test your answers in the interactive Python interpreter.  If any results don’t make sense, be sure to discuss with a classmate or TA or post to moodle!

·       Complete discussion exercise 2 (on page 170) at the end of chapter 5.   Hint:  for part (e) use the .split() function, as explained on page 144.  Discuss/explain all answers.

o   Also read Chp 7.1 in Zelle.  Then read Programming Assignment 2.  (You should have all the tools you need to tackle this by the end of class on Monday.)



Sept 14

Lab 3

Strings and FileIO.  Files needed: trump.txt, obama.txt






Sept  17


Two- and multi-way conditionals.  Files needed for class:  theprogrammer.txt, truescholar.txt, shortsentences.txt

Start working on Programming Assignment 2 (due Wed Sept 26 at 9:30 pm). Also, see the corresponding grading rubric.  Prog Assign 2 checkpoint due by Thurs night, Sept 20.

By the start of lab on Friday, Sept 21:

·       Complete Discussion Exercise 3 at the end of chapter 5.  (Not to be submitted.)

·       Read Chapters 7.2-7.3 and 7.5 in Zelle. 

·       Complete Quiz 1 (on Zelle chapters 1-3) via moodle

·       Programming Exercise 8 at the end of chapter 7.  (Not to be submitted.)





Wed Sept 19

No Class:  Yom Kippur

By Mon Sept 24:

·       Complete moodle lesson on decision structures.  (This will also count as a quiz grade, but you may take it as many times as you want.)

·       Read and code Chps 4.1-4.4 in Zelle (you’ll need go here to get the file  Try programming exercise 3 at the end of chapter 4 (not to be submitted).

·       Complete warm-up exercise 5 to be submitted in hard copy at the start of class Monday.

Continue work on Programming Assignment 2 (due Wed 9/26).  Also, see grading rubric.


Sept 21

Lab 4

Decision Statements, graphics and animation.




By Wed Sept 26:

·       Read Chp 4.7 in Zelle.  Notice how handy chapter 4.8 is! 

·       Complete Programming Assignment 2 (due Wed 9/26 at 9:30 pm).  Also, see grading rubric.



Sept 24


Graphics and animation. Graphical User Interfaces (GUIs).

Functions and graphics, cont’d. 


Sept 26


Parameterized functions cont’d, functions that return values. Files needed:

By the start of class on Mon Oct 1:

·       Read+code Chps 6.1-6.6 in Zelle

·       Complete warm-up exercise 6.  (Submission happens via CodingBat.)

·       Read assignment 3.  Also see grading rubric (which includes additional grading notes at the bottom)!  Assign 3 progress check due Wed night, Oct 3.


Sept 28

Lab 5

Functions and GUIs




Due Wed, Oct 3:

Take Quiz 2 (on chapters 5 and 7) online via Moodle.  Before doing so:

·       Make sure you understand nested if statements.  To practice, try discussion exercise 3 on page 237 and check your answers by testing the code in IDLE! 

·       Recall that nested if statements were also part of the very nice discussion in chapter 7.5. 

·       Let me or the TAs know if you have any questions.

·       Make sure you have pen/pencil and paper handy while taking the quiz!

Complete warm-up exercise 7, which is to continue coding practice using CodingBat.

o   Make sure you log in to CodingBat before you begin coding, otherwise your work will not be saved and shared with me.

o   Code until:

§  at least 20 minutes passes


§  you have solved/completed two more codingbat problems/exercises

(Remember that the Boolean operator AND means both of the above two conditions have to be true before you are done...)

Work on programming assignment 3.  Also see grading rubric (which includes additional grading notes at the bottom)!  Assign 3 progress check due with a TA by 9 pm Wed night, Oct 3.



Oct 1


Indefinite loops (aka “while loops”). 


Oct 3


While loops.  Files needed:,

Due Mon, Oct 6

·       Read Chapters 8.1-8.5 in Zelle

·       Warm-up exercise 8 (to be submitted in hard copy at the start of class):  complete programming exercise 7 on page 280 of Zelle (the Goldbach conjecture).


Oct 5

Lab 6

While loops






Oct 8


Lists, tuples.  Files needed:  classlist.txt

By Wed, Oct 10:

·       Complete and submit Programming Assignment 3.  (See grading guide.)

·       If you have time you are encouraged to complete coding bat exercises under the List-1 and List-2 categories. 

·       In fact, you are encouraged to complete ALL the coding bat exercises under ALL python categories if you have time!  Let me know if you choose to do this and I can award you some bonus points toward your final average for it.  Just make sure you log in and do it under our account so it sends me the reports.


Oct 10



By Wed, Oct 17:

·       Read Chapters 11.1, 11.2, and 11.7 in Zelle

·       Complete warm-up exercise 9 and submit in hard copy at the start of class

·       Read Programming Assignment 4. (Note: skills learned from reading chapter 11.7 will provide critical tools for completing this assignment.)  Assign 4 checkpoint due Mon, Oct 22



Lab 7

Lists, dictionaries. 






Oct 15



Oct 17


Pseudorandom numbers, simulation and principles of software design.

By Mon, Oct 22

·       Complete warm-up exercise 10, to be submitted in hard copy at the start of class.

·       Complete Quiz 3 (on chps 4 and 6) via moodle.  See moodle for more info!

o   Chapter 4 is Graphics and chapter 6 is Functions.

o   Be sure to review/study the concept of variable scope before taking the quiz!!

o   Post any questions you have to our class moodle forum or discuss with a TA!

·       Read chapters 9.1-9.4

Work on Programming Assignment 4 (Note: chapter 11.7 will provide tools/code for completing option II of this assignment.)  Also see grading rubric.  Assign 4 checkpoint due by Tuesday night, Oct 23. 


Oct 19

Lab 8

Simulation and design.




Due Wed by the start of class: 

·       Read chapters 9.5-9.6.

·       Read chapters 10.1, 10.3.1, and 10.4 in Zelle.  (Reading 10.2 and 10.3.2 is optional.)

Work on programming assignment 4, checkpoint due Tues night, Oct 23.  (See grading rubric.)



Oct 22


Simulation and design cont’d.  Image processing.  File needed:  camelsLogo.gif. 


Oct 24


Classes and objects

Due Mon by the start of class:

·       Complete moodle quiz 4. 

o   This is actually a “moodle lesson” on lists and dictionaries and it is quite low-stakes… it may be repeated as many times as you’d like.

o   Your highest grade will count as your final quiz 4 grade.

·       Read Chapters 10.5-10.6 in Zelle.  (We will be coding this reading up in lab on Friday so no need to code it before then.)

·       Read Chapters 11.3-11.5 in Zelle. 

·       Continue work on Programming Assignment 4.  See grading rubric.


Oct 26

Lab 9

Creating and using classes




Due Wed:

Programming Assignment 4 due Tues night.  Only two points per day late until Friday.  See grading rubric for common deductions.



Oct 29


OOP cont’d, encapsulation, polymorphism, inheritance.  Files needed:,


Oct 31


Intro to recursion.

Due Mon:

1.      Read assignment 5.  Set up meeting times (schedule at least 4 hours per week) for this week and next week with your partner. 

2.      Read chapters 12.1, 12.2, 12.4 in Zelle.

3.      Work with your partners on assignment 5. See grading form.  (Checkpoint due Tues, Nov 6.)

4.      Complete moodle quiz 5. 

·       Quiz topics:  while loops and randomness.

·       This is a traditional quiz format moodle quiz.  Take it only once, open notes, open book, no python compiler, the usual “lips-sealed” policy, and give yourself at most 20 minutes.


Nov 2

Lab 10

Recursive drawings; fractals

File needed:




Due Wed:

·       Read chapter 13.1-13.2 in Zelle

·       Read sections 13.3-13.4 in Zelle. 

·       Reminder: project 5 checkpoint due Tues night


Nov 5


Recursion continued: Fibonacci, Towers of Hanoi

Nov 7


Search algorithms

Due Mon:  (Please complete this in collaboration with classmates and TAs, as always.)

Warm-up 11:  in class we saw that binary search had a “run-time” of log n, while linear search had a much worse/longer/slower run-time of n.  But that binary search requires the list being searched to be sorted first.  This begged the question, what if we first sort the list, then do a binary search whenever we want to find a value in it?  Would that process be faster (have a better run-time) than doing a linear search?  Considering our discussion of the selection sort algorithm, please share your reflections on this question.  You can start by explaining/reviewing why we concluded binary search had a run time of log n while linear search had a run time of n.  You might then try to think about what the “run time” of selection sort is…

Programming Assignment 5 due Tuesday, Nov 13.  See grading form. 

Also, complete prog assign 5 questionnaire on moodle.

Nov 9

Lab 11

Recursion, divide and conquer, search




Programming Assignment 5 due Tuesday, Nov 13.  See grading form. 

Also, complete prog assign 5 questionnaire on moodle.


Nov 12


Selection Sort, Merge sort

Nov 14


Merge sort, Bubble sort.  2D Matrices.

Due Mon:

·       Take Quiz 6 on chapters 10 and 12, via moodle.

·       Read/review all of chapter 13 in Zelle. 

·       Read assignment 6, due Mon, Dec 3.  Contact your partner and schedule meeting times asap.  Checkpoint due Monday night, Nov 19 (or Mon, Nov 26, but then you need to have more done).

·       Work with your partners on assignment 6.  Also see grading rubric. 

·       Begin to brainstorm for final project.  Email me with questions/thoughts.

·       Complete warm-up exercise 12, which is:

o   Trace the mergeSort algorithm on the input list [42, 23, 67, 19, 49, 29, 90, 88], showing the list contents in each recursive call to illustrate how the sorting unfolds. You might depict it as in this illustration if you wish (which is a different list and also not quite finished with tracing all the merge calls).

o   What is the run-time of this algorithm?  Is it better or worse than selectionSort?  Again, see last week’s reading for details if you are stuck.  Don’t forget to explain your answer.

Nov 16

Lab 12

2D lists (of buttons).




By start of class on Mon, Nov 26:

·       Continue working on Assignment 6 and final project proposals.  (Assign 6 progress check due Mon, Nov 26.  Final project proposal drafts also due that day.)

·       Draft 1 of your final project preliminary proposal due (shared with me via Google Docs with editing permission given to me). 

o   Start with less than one page, describing the purpose and functionality of the program you want to create. 

o   Adding sketches of the GUI to your proposal is encouraged!  (Inserted photos of hand-drawn sketches are fine.)  If I can’t get a clear picture of the program’s functionality from your description then I might ask you to do this during revisions anyway.

Continue revising final project proposals based on my feedback until you receive my final approval.  Final approval from me must be attained no later than Dec 3 for full credit.  Also, I will need at least one or two days to give you feedback on each draft you send to me. 



Nov 19


Web processing.  Files needed: instructions,,,


Nov 21


audibilization of sorting

24 sorting algorithms

BubbleSort Dance

MergeSort Dance


Nov 23




By Wed, Nov 28

·       Continue work on Programming Assignment 6. Also see grading rubric.

·       Draft 2 of your final project proposals (address/incorporate any comments/edits/feedback I have given you on your google doc).  Do not create a new google doc.  Edit into the same one.  Perhaps leave a copy of Draft 1 at the bottom in order to have an easily accessible copy of it for our records though.



Nov 26


Web processing, cont’d.  


Nov 28 Class

Sound and audio processing. Files needed: processing wav filespython-sound.zipsound_waves.pdf, also see this link

By Fri:

·       If I have not given you final approval on your project proposal yet, submit draft 3/4 of your final project proposals (address/incorporate any comments/edits/feedback I have given you on your google doc).  Do not create a new google doc.  Edit into the same one.  Please leave a copy of Draft 2 in tact in order to have an easily accessible copy of it for our records.

By Mon:

·       Be sure you have received final approval on your final project proposals from me.  You can check your grade on this item in moodle if you are not sure.

·       Complete a course evaluation for our class at



Nov 30

Lab 13

Web and Sound







Dec 3


Research in CS at Conn in:

·       AI, Robotics, Graphics [Gary Parker]

·       Virtual Reality, Avatars [James Lee]

By Wed Dec 5:

1.      Complete warm-up exercise 13 (timers in python, and .checkMouse()) to be submitted in hard copy. 

2.     Work on the top-down object-oriented design of your final project.  This will ultimately be submitted with your program as part of the documentation requirement.

a.      Plan out in detail the classes and methods you will need/use and how you will use them. 

b.      Then sketch out the pseudocode for your main method.  (You might do this step first to give you ideas of how to do step a.)

c.       If you have questions send them to me or ask me after class or set up a time to meet with me.  You can also ask the TAs for design advice at the TA sessions.

3.     Work on your final projects.



Dec 5


Research in CS at Conn in: 

·       Educational Technology [William Tarimo]

·       Multimedia, Music/Sound, Image Recognition [Ozgur Izmirli]

·       Algorithms

By Mon Dec 10:

·       Take Quiz 7 on Chapter 13 online.  Hand in your hard-copy explanation to the last question at the start of class on Monday to earn full credit on the quiz.

·       Final projects



Dec 7

Lab 14

Final projects:  sign-up sheet

Work on your final projects.



Dec 10


Final projects

Final projects



Dec 17

Last Day of Finals

Final projects due by noon.