COM 110 Fall 2018
Introduction to Computer Science and Problem Solving
http://cs.conncoll.edu/cchung/com110

 

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. 

 

Lectures: 

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

 

Labs: 

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. 

 

Professor:

Dr. Christine Chung

http://cs.conncoll.edu/cchung

cchung@conncoll.edu

860-439-2074

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

https://www.linkedin.com/in/evan-gray-ba144297/

egray3@conncoll.edu

860-514-4852

Office hours: by appointment

 

Student TAs:

TA info may be found on the TA session schedule page

 

Grading:

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

15%

Labs (one per week, about 12 all together)

20%

Programming Assignments (6)

40%

Quizzes (6 or 7 of them)

10%

Final Project

10%

Class Participation

5%

 

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: http://www.greenteapress.com/thinkpython/thinkpython.html

o   Very cool interactive version (also free) that you are highly encouraged to use/play:  http://interactivepython.org/runestone/static/thinkcspy/index.html

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 www.python.org.

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 hfreelan@conncoll.edu, 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 http://write.conncoll.edu/.

 

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 sas@conncoll.edu.

 

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 SCS@conncoll.edu.

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.

WEEK

DATE

TOPIC

AFTER-CLASS

1

Wed

Aug 29
Class

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 code.org, and from google.

 

Fri

Aug 31
Lab 1

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

WEEK

DATE

TOPIC

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!

2

Mon Sept 3
Class

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

 

Wed

Sept 5

Class

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.

Fri

Sept 7
Lab 2

Numeric expressions, accumulators, strings.

3

Mon

Sept 10

Class

Strings.

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
Class

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.)

 

Fri

Sept 14

Lab 3

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

WEEK

DATE

TOPIC

4

Mon

Sept  17

Class

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 graphics.py).  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.

Fri

Sept 21

Lab 4

Decision Statements, graphics and animation.

WEEK

DATE

TOPIC

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.

5

Mon

Sept 24

Class

Graphics and animation. Graphical User Interfaces (GUIs).

Functions and graphics, cont’d. 

Wed

Sept 26

Class

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

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.

Fri

Sept 28

Lab 5

Functions and GUIs

WEEK

DATE

TOPIC

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

AND

§  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.

6

Mon

Oct 1

Class

Indefinite loops (aka “while loops”). 

Wed

Oct 3

Class

While loops.  Files needed:  GUIpalindrome.py, button2.py

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).

Fri

Oct 5

Lab 6

While loops

WEEK

DATE

TOPIC

7

Mon

Oct 8

Class

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.

Wed

Oct 10

Class

Dictionaries

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

Fri

Oct12

Lab 7

Lists, dictionaries. 

WEEK

DATE

TOPIC

8

Mon

Oct 15

FALL BREAK

Wed

Oct 17

Class

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. 

Fri

Oct 19

Lab 8

Simulation and design.

WEEK

DATE

TOPIC

Due Wed: 

·       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, due Sun, Oct 28.  (See grading rubric.)

9

Mon

Oct 22

Class

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

Wed

Oct 24

Class

Classes and objects

Due Mon:

·       Programming Assignment 4.  See grading rubric.

Fri

Oct 26

Lab 9

Image Processing and creating and using classes

WEEK

DATE

TOPIC

Due Wed:

1.      Read Chapters 10.5-10.6 in Zelle.

2.      Read Chapters 11.3-11.5 in Zelle. 

3.      Complete moodle quiz 4. 

·       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

·       Your highest grade will count as your final quiz 4 grade

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.

Read assignment 5.  Set up meeting times for this week and next week with your partner.  (Checkpoint due Sunday, Nov 4.)

10

Mon

Oct 29

Class

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

Wed

Oct 31

Class

Intro to recursion.  Files needed:  dieview.py, dieview2.py

Due Mon:

·       Read chapters 12.1, 12.2, 12.4 in Zelle.

·       Continue work on assignment 5. See grading form.  (Checkpoint due Sunday, Nov 4.)

·       Complete warm-up 11, which is as follows: 

o   Create a class that inherits the attributes of the DieView class that you used in lab last week.  The procedure for this is described in the chapter 12.4 reading assignment.  Test your new ColorDieView class and demonstrate that all its features (inherited and not) still work.  

o   Complete the HonorsStudent class we started in class today, which inherits the Student class.  Test the constructor method, and add a printInfo() function that will overwrite the printInfo() function of the Student class.  You can have it first call the Student.printInfo() function then add print statements for the student’s major and thesis title.  Test it to make sure it works.

o   As always, submission is in hard copy at the start of class.

Fri

Nov 2

Lab 10

Recursive drawings; fractals

File needed:  turtle.py

WEEK

DATE

TOPIC

Due Wed:

·       Read chapter 13.1-13.2 in Zelle

·       Read sections 13.3-13.4 in Zelle. 

·       Complete warm-up exercise 12 to be submitted in hard copy at the start of class on Thursday.

11

Nov 5

Class

Recursion continued: Fibonacci, Towers of Hanoi

Nov 7

Class

Search algorithms

Due Mon:

·       Programming Assignment 5 due Monday, Nov 12.  See grading form. 

·       Also, complete prog assign 5 questionnaire on moodle.

Nov 9

Lab 11

Recursion, divide and conquer, search

WEEK

DATE

TOPIC

Due Wed:

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

·       Read the rest of chapter 13 in Zelle. 

Read assignment 6, due Wed, Nov 28.  Contact your partner and schedule meeting times asap.  Checkpoint due Sunday night, Nov 18.

12

Nov 12

Class

Selection Sort, Merge sort

Nov 14

Class

Merge sort and Bubble sort.

Due Mon:

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

·       Complete warm-up exercise 13, which is:

·       Finish coding up mergeSort as outlined in class.  See last week’s reading for guidance if you are stuck.

·       Trace your 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).

·       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.

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

Continue working on Assignment 6 and final project proposals.

Nov 16

Lab 12

2D lists (of buttons).

WEEK

DATE

TOPIC

By start of class on Mon, Nov 26:

·       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.)

Continue working on Assignment 6 and final project proposals.

Continue revising final project proposals based on my feedback until you receive final approval.

 

13

Mon

Nov 19

Class

Web processing.  Files needed: instructions, urlTest.py, urlTest.Mac.py, quake.py

Wed

Nov 21

THANKSGIVING BREAK

Fri

Nov 23

WEEK

DATE

TOPIC

By Wed, Nov 28

·       Programming Assignment 6 due. 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.  Please leave a copy of Draft 1 at the bottom in order to have an easily accessible copy of it for our records though.

14

Mon

Nov 26

Class

Web processing, cont’d.  

Wed

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 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:

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

·       Take Quiz 7 on Chapter 13 online.  Hand in your hard-copy explanation to the last question at the start of class on Tuesday along with your warm-up 14.

·       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.

 

Fri

Nov 30

Lab 13

Web and Sound

WEEK

DATE

TOPIC

 

15

Mon

Dec 3

Class


Research in CS at Conn in:

1.     Work on the top-down object-oriented design of your final project: 

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

·        Then sketch out the pseudocode for your main method. 

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.

2.      Complete a course evaluation for our class.  Follow the link from the email you received or access your course evals through moodle.

3.     Work on your final projects.

 

Wed

Dec 5

Class

 

Research in CS at Conn in: 

Final projects

 

Fri

Dec 7

Lab 14

Final projects (?)

Final projects

16

Mon

Dec 10

Class

Final projects

Final projects

 

Mon

Dec 17

Last Day of Finals

Final projects due by noon.