COM 110 Spring 2022
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

Tuesdays and Thursdays, 2:45 – 4:00 in Hale, Brown Auditorium

In case class needs to meet remotely (as we will for the first week), here is the zoom link we will use:  https://conncoll-edu.zoom.us/j/4470209231

 

Labs

You must be registered for one of the following labs, which will also take place in Hale.

·      Fridays 10:25 am to 12:25 pm

·      Fridays 1:15 to 3:15 pm

In case labs needs to meet remotely (as we will for the first week), here is the zoom link we will use:  https://conncoll-edu.zoom.us/j/4470209231

 

Labs will be run by the professor 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.  In 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.  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):  MW 10:00-11:30 (or by appointment).  Sign up here for an available office hours time slot.  Please email me if you have conflicts with the available meeting times.

 

Student TAs:

TA info may be found on the TA session schedule page

 

Grading:

Written homework exercises (15 to 20 of them)

15%

Labs (one per week, around 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. 

Homework Exercises.  Reasonably small homework 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 may be typed or hand-written (drawings/diagrams are always encouraged too), and they must be turned in 15 minutes before the start of class as an image file or pdf uploaded to moodle.  They will be graded on completeness and effort rather than correctness.  The lowest homework grade will be dropped.

·      A “complete” homework 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 homeworks will earn a 5 out of 5. 

·      The homework submission link will close at 15 minutes before the start of class and then open again after class for late submissions.  Late submissions will be accepted until the start of the next class meeting, and will earn a maximum grade of 3 (which is still much better than a 0). 

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 designed and implemented 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.  If you must miss a class due to illness or other special circumstances, please let me know.

Campus-wide Policies and Resources

 

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 harassment, sexual assault, dating violence, stalking, or other forms of gender-based discrimination, and that I will report that information to the Title IX office, if it is shared with me.  However, the Title IX office typically only acts on formal complaints, and in response to notice from me will reach out to you to offer support and resources, and offer you the opportunity to file a formal Title IX complaint, which is up to you.  Rachel Stewart, the Director of Sexual Violence Prevention and Advocacy, can advise you confidentially as can Counseling Services and any of the College chaplains. Rachel can also help you access other resources on campus and in the local community. You can reach Rachel at  rstewart1@conncoll.edu, make an appointment with Rachel or one of the other Confidential Advocates at http://bit.ly/ConnCollSVPA or contact the SVPA Confidential Advocate Hotline 24/7 at 860-460-9194.

The student sexual harassment, dating violence, stalking, and non-discrimination policies are in the Sexual Harassment and Nondiscrimination Policy, 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 860-439-2624 or titleix@conncoll.edu.

 

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. Students can make appointments by clicking on this link: https://forms.gle/BQecmVdK8Bg1sv5P7.

The ARC is open to the community Monday – Friday, 8:30 – 5:00 (evenings are by appointment only).

Students may continue to use the ARC as a quiet study space, though social distancing and masks are required at ALL times.

If faculty or students have any questions or concerns, they should contact Noel Garrett (ngarrett@conncoll.edu) or Patricia Dallas (pdallas@conncoll.edu).

 

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.  You can make an appointment here using Google Calendar.  If you're a confident, experienced writer our tutors can help you to push your ideas and polish your style; if you're a relatively inexperienced and not-so-confident writer they can help you to work on grammar or organization or whatever you need.  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 have your Faculty Notification Letter emailed to me through the Student Accessibility online management system (AIM) and schedule a meeting during my office hours as early as possible in the semester so that we can discuss the logistics of your accommodations. 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.

 

Classroom Recording

With the exception of those granted accommodations through the Office of Student Accessibility Services, students are prohibited from audio, video, or photographic recording during class periods or out-of-class meetings with the instructor without explicit permission from the instructor. Recordings approved in this manner may not be shared in any form without permission of the instructor. Violations of this policy shall be considered an Honor Code violation.

 

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 professors’ 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.  

 

Respecting Personal Pronouns and Identity
Everyone deserves to be referred to and addressed in accordance with their personal identity. As a faculty member, I am committed to ensuring my classroom affirms people of all gender expressions and gender identities. In this course, we will only use the name and pronouns of each individual's choosing. The repeated usage of incorrect names and/or pronouns are against Connecticut College policy and may constitute a T9 policy violation as well as a violation of state and federal law. 

In the classroom, be assured that you will always be referred to by the name and pronouns you choose. If you go by a different name than your legal name, Connecticut College has a process to change your preferred name on most campus systems. If you want to learn more about this process go to conncoll.edu/equity-inclusion/preferred-name-faq/ or email GSP@conncoll.edu.

Students, faculty and staff are now able to choose and share their pronouns within the college community by using the Preferred Name/Pronouns link on the navigation menu in CamelWeb and the CC Mobile App.  Your gender pronouns will appear in the internal directory located in CamelWeb and the CC Mobile App. If none are selected, or if “Not Applicable” is selected, no pronouns will display. Enrolled students’ gender pronouns will also display in Moodle for instructors via the class participants page.
Pronouns are one way to affirm someone’s gender identity, but they are not necessarily indicative of a person’s gender identity. Commonly, they/them is a gender-inclusive pronoun used by a variety of identities. However, while some people use they/them, others may use pronouns like ze/zem, xi/xim, he/him, she/her, any combination of those and/or many others. They may even reject pronouns altogether and use their name in place of pronouns. Remember to ask for pronouns, listen, and then respect the gender identities of those around you by using the proper terminology. If you have any further questions or you want to learn more about gender & sexuality, please do not hesitate to contact the Director of Gender & Sexuality Programs at
jmendill@conncoll.edu or gsp@conncoll.edu

 

Course Schedule

As with everything else, 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 homework 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, homework exercises are to be handed in via moodle before each class meeting.  The submission link will close 15 minutes before class starts and re-open for late submissions afterward.  Quizzes will reflect reading assignments and homework exercises.

WEEK

DATE

TOPIC

AFTER-CLASS

1

Tues
Jan 25
Zoom Class

Computer science; purpose and goals of this course; Python

o   Due on Thursday, Jan 27:

·      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, let me know; we will rectify.

·      Read (and code) chapter 1 in Zelle. 

·      Read (and code) chapters 2.1-2.4 in Zelle.  You can also add notes about useful info from your reading to your CS notebook as you go.

·      Complete homework exercise 1 to be submitted via moodle before 2:30 on Jan 27.

o   Complete homework exercise 0, to be posted to our moodle class forum by Tues, Feb 1.

o   Also by Tues Feb 1, please complete this form to briefly “introduce yourself” to me.

 

Thurs
Jan 27

Zoom
Class

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

Due Tuesday, Feb 1:

o   Post homework exercise 0 from last time to the moodle forum.  (Sorry I have fixed the link now.)

o   Please complete this form to briefly “introduce yourself” to me.

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

o   Read Programming Assignment 1.  Start on this assignment early! 

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

o   Read and code Chp 3 in Zelle.

o   Complete HW exercise 2 to be submitted via moodle by 2:30 before our next class (on Feb 1).

 

Fri

Jan 26
Lab 1

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

WEEK

DATE

TOPIC

AFTER-CLASS

2

Tues

Feb 1
Class

Numerical manipulation, data types, accumulators

Due Thursday, Feb 3:

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 in Zelle. 

o   Complete homework exercise 3 to be submitted via moodle.  (This exercise should help with part B of Assignment 1)

o   Continue work on Programming Assignment 1.  Also see grading rubric.

 

Thurs

Feb 3

Class

Strings, lists, input/output, files

Reminder:  Bring class notes and Zelle text to lab!

 

Fri

Feb 4
Lab 2

Numeric expressions, accumulators, string manipulation.

By the start of class Tuesday, Feb 8:

o   Submit Programming Assignment 1 by 2:30 pm.  Grading info. 

WEEK

DATE

TOPIC

AFTER-CLASS

3

Tues

Feb 8
Class

Strings; conditionals and decision structures.  Files needed: classlist.txt, theprogrammer.txt,

By Thursday, Feb 10:

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

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

·      Also read Chp 7.1 in Zelle.   

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

 

Thurs
Feb 10

Class

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

By Tuesday, Feb 15:

·      Read Chapters 7.2-7.3 and 7.5 in Zelle. 

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

·      Read and start thinking about Programming Assignment 2 (due Tuesday Feb 22). Prog Assign 2 checkpoint due Tues, Feb 15.

·      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.3 in Zelle (you’ll need go here to get the file graphics.py). 

·      Complete HW exercise 4 to be submitted before the start of class Tuesday.  Please be sure to upload it on time (by 2:30) in pdf or jpeg format for full credit!

 

Fri

Feb 11

Lab 3

More on strings; decision statements and structures.  Files needed: trump20rnc.txt, biden20dnc.txt

WEEK

DATE

TOPIC

AFTER-CLASS

4

Tues

Feb 15

Class

Graphics and animation.   Files needed:  graphicswarmup.py, and if you have not already, download graphics.py from http://mcsp.wartburg.edu/zelle/python/

By Thursday, Feb 17: 

·      Read and code chapter 4.4, complete programming exercise 3 at the end of chapter 4 (not for submission, just for practice).

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

·      Complete HW exercise 5 to be uploaded by 2:30 before class on Thursday.

 

Thurs

Feb 17

Class

Graphical User Interfaces (GUIs).

Complete Programming Assignment 2 (due Tues 2/22 by 2:30 pm).  Also, see grading rubric.

 

 

Fri

Feb 18

Lab 4

Graphics and animation.

WEEK

DATE

TOPIC

AFTER-CLASS

5

Tues

Feb 22

Class

Functions and graphics, cont’d. Files needed:   button.py

By the start of class on Thursday, Feb 24:

·      Read+code Chps 6.1-6.5 in Zelle.

·      Complete homework exercise 6

·      Read assignment 3.

 

Thurs

Feb 24

Class

Parameterized functions cont’d, functions that return values.

By the start of class on Tuesday, Mar 1:

·         Read 6.6 in Zelle

·         Work on assignment 3.  Also see grading rubric (which includes additional grading notes at the bottom)!  Assign 3 progress check due by Tues night, March 1.  Please try to go Sunday or Monday for the midpoint check if you can to avoid the rush!  Sunday night sessions are now expanded to go from 6-10 pm.  =)

·      Complete homework exercise 7 (Submission happens automatically via CodingBat. No moodle submission needed here.)

·         Quiz 2 due by the start of class on Tuesday, March 1.  Take Quiz 2 (on chapters 5 and 7) online via Moodle.  Before doing so:

·         If you didn’t get some kind of an A on the “moodle lesson” on “if statements” (see HW from Feb 15 above), it will help to retake the moodle lesson before taking the following quiz.  (It will also bring up your quiz average directly since the moodle lesson counts as a quiz grade!)

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

 

Fri

Feb 25

Lab 5

Functions and GUIs

WEEK

DATE

TOPIC

AFTER-CLASS

6

Tues

Mar 1

Class

Indefinite loops (aka “while loops”).

By the start of class on Thursday, Mar 3:

·      Read Chapters 8.1-8.5 in Zelle

·       Complete HW exercise 8, 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 twenty minutes passes

AND

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

o   (Remember that the boolean operator AND means both of the above two stopping conditions have to be true.)

By next Tuesday, March 8:

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

 

Thurs

Mar 3

Class

While loops.

 

Fri

Mar 4

Lab 6

While loops

WEEK

DATE

TOPIC

AFTER-CLASS

7

Tues

Mar

8

Class

Lists, tuples

By the start of class on Thursday, Mar 11:

·         Read Chapters 11.1 and 11.2 in Zelle

·         Complete HW exercise 9:  Complete 2 or 3 CodingBat exercises under the List-1 category and 1 and 2 exercises under the List-2 category.  Remember to make sure you are logged in before doing them so that I can see your reports and give you grades for completeness!

·         Read Programming Assignment 4. (Note: skills learned from reading chapter 11.7 will provide critical tools for completing this assignment.)  Assign 4 checkpoint due after the break on Tuesday, March 29 at 10 pm.

 

Thurs

Mar 10

Class

Dictionaries.  Files needed: lab4.py, lab4starlist.py, lab4v2.py, lab4startlist-v2.py

1.     Read and code 11.7 in Zelle.

2.     Work on Programming Assignment 4 (Note: chapter 11.7 provides critical code for completing this assignment.)  Also see grading rubric.

3.     Assign 4 checkpoint due at a TA session by Tues night, March 29.

4.     Complete Quiz 3 (on chps 4 and 6) via moodle by 2:30 pm on Tuesday, March 29.  See moodle for more info!

·      Chapter 4 is Graphics and chapter 6 is Functions.

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

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

 

Fri

Mar 11

Lab 7

Lists, dictionaries.

March 12-27 SPRING BREAK

WEEK

DATE

TOPIC

AFTER-CLASS

8

Mar 29

Class

Pseudorandom numbers, simulation and principles of software design.

Due before the start of class on Thursday, March 31:

1.      Read chapters 9.1-9.4

2.      Complete HW exercise 10, to be submitted by 2:30 pm via moodle as usual, as follows:

·         In class we started to write a simulation of the black-jack dealer to determine the probability that the dealer will bust.  Recall that we learned that the dealer in black jack must always deal cards to themselves until they hit “soft 17.”  We got to the stage of the program where we were about to write the function dealerBusts() to simulate a single round of play for the dealer.  The function should repeatedly generate a random integer between 1 and 13 to simulate each card being dealt, adding each card value to a running total, until the point total hits 17 or higher.  Then it should ultimately return True if the total is over 21, False otherwise.  Write code following this description for the dealerBusts() function.

 

Mar 31

Class

Simulation and design cont’d.  Image processing.  Files needed:  camelsLogo.gif, pink.gif.

Due Tues, April 5 before 2:30 PM: 

·         finish programming assignment 4.  (See grading rubric.)

·         read the rest of chapter 9.

 

Apr

1

Lab 8

Simulation and top-down design.

WEEK

DATE

TOPIC

AFTER-CLASS

9

April 5

Class

Classes and objects

Due Thursday, April 7:

·      Read Programming Assignment 5.  Set up plenty of meeting time for this week and next week with your partner… like 5 hours per week if possible.  Meeting in/at/during/near TA sessions is a good idea.  (Midpoint check due Tues April 12.)

·         Please help us test out this tool our own CS students have built to help Conn students with course planning.  If you don't mind testing it out and filling out a very short survey about it afterward, we would really appreciate it.

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

·      For HW 11, submit your code and notes from the above reading to show that you completed it.  Submit them by 2:30 pm on Thursday via moodle, as usual.

 

April 7

Class

OOP, cont’d.

Due Tuesday, April 12:

1.      Complete HW 12 to be submitted to moodle by 2:30 pm before class:

a.      Download the python files studentClass.py, registrar.py

b.      Run them and test them.  Discuss any questions you have with another student or a TA.

c.       Which lines of code create new Student objects? 

d.      What are the instance variables of the Student class?  And the methods?

e.      Add code to create a new Registrar object in the main() method of registrar.py

f.        Add a method called registerCourse(self, stuID, courseName) to the Registrar class that takes a student ID and a course name and adds that course to that student’s schedule.

2.      Work with your programming partners on the Project 5 progress checkpoint (due before Tues night for full credit). 

3.      Read Chapters 10.5-10.6 in Zelle.

4.      Read Chapters 11.3-11.5 in Zelle. 

5.      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 and will not ever close.

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

 

April 8

Lab 9

Creating and using classes.

WEEK

DATE

TOPIC

AFTER-CLASS

10

Apr 12

Class

OOP cont’d, encapsulation, polymorphism, inheritance.  

Due Thursday, April 14:

·      Read chapters 12.1, 12.2, 12.4 in Zelle.

·      Continue work on assignment 5. See grading form

·         Complete moodle quiz 5

o   Quiz topics:  while loops and randomness.

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

·      Complete HW 13, 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 doing this is described in the chapter 12.4 reading, assigned above.  Test your new ColorDieView class and demonstrate that all its features (inherited and not) still work.  

o   As always, submission is in via moodle by 2:30 pm before the start of class.

 

Apr 14

Class

Intro to recursion.

Read chapter 13.1-13.2 in Zelle.

Complete Programming Assignment 5 due Tues, April 19.  See grading form
Also, complete prog assign 5 questionnaire on moodle.

Also, fill out this project 6 partner survey: https://forms.gle/XahFBcSNbjrDcFcaA

 

Apr 15

Lab 10

Recursive drawings; fractals

File needed:  turtle.py

WEEK

DATE

TOPIC

AFTER-CLASS

11

Apr 19

Class

Recursion continued: Fibonacci, Towers of Hanoi

Due Thursday, April 21:

·      Read sections 13.3-13.4 in Zelle. 

·      In preparation for Thursday’s class, please complete HW 14, which is as follows (to be submitted to moodle in jpeg or pdf as usual):

o   Recall, e.g., if nums = [600,34,267,35,67] and nums.index(35) is called, it returns 3 because 35 is the value at index 3 of the list nums.

o   Using the function header below, write code to do the same thing as the above built-in python list function .index().  [This task was also a lab check from before the break I believe…]

                    # returns the position in the list my_list where the

                    # target value t is found, or -1 if t is not found in the list

                    def index(my_list, t):

·      Read assignment 6.  Contact your partner and schedule meeting times.  Midpoint check due Tuesday night, Apr 26.  (This project will probably be less demanding than Black Jack was, but be sure to start it early to be safe!)

 

Apr 21

Class

Search algorithms, selection sort

Due Tuesday, April 26:

·      Read the rest of chapter 13 in Zelle. 

·      Work with your partners on assignment 6.  Also see grading rubric.  (Midpoint check due Tues night, April 26.)

·     Take Quiz 6 on chapters 10 and 12, via moodle, by 2:30 pm on Tues, Apr 26.

 

Apr 22

Lab 11

Recursion, divide and conquer, search

WEEK

DATE

TOPIC

AFTER-CLASS

12

Apr 26

Class

Selection Sort, Merge Sort, Bubble Sort

Read and brainstorm for final project.  Email me with any questions/thoughts/concerns.

Final project preliminary proposal due (shared with me via Google Docs with editing permission given to me) by Thurs, Apr 28. 

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

Work on assignment 6 and final project proposals!

 

Apr 28

Class

Sorting wrap-up.  Passing objects as parameters (see: in-class activity). Timers and mouse clicks (file needed: checkMouseDemo).  Preview of 2D lists (of buttons) for lab tomorrow.

Continue working on Assignment 6 and revising final project proposals based on my feedback.

Programming Assignment 6 due Tues night. Also see grading rubric.

 

Apr 29

Lab 12

2D lists of buttons.

WEEK

DATE

TOPIC

AFTER-CLASS

13

May 3

Class

Web processing.  Files needed: instructions, along with code files found on moodle page!

Research in CS at Conn in:  Bioinformatics (Prof Stephen Douglass’ research from 3:45-4).

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

a.       As we learned in class:  you can start by outlining your main function.  Each over-arching step will become a sub-function that it calls.  Then outline each sub-function, calling sub-sub-functions from them as appropriate!  (The difference now is that you are also housing most/all of your functions into classes, so we call them “methods” instead of functions.)

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

2.      If you have questions, feel free to 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.      Also, please complete a course evaluation for our class.  Follow the link from the email you received or access your course evals through moodle.

 

May 5
Class

Research in CS at Conn in: Multimedia and Sound (Prof Izmirli’s research from 2:45-3:00)

By start of class on Tuesday, May 8:

·      Work on your final projects.

·      Take Quiz 7 on Chapter 13 online.  Hand in your hard-copy explanation to the last question at the start of class on Tuesday.  (I have also posted an online submission link if you prefer to use that.)

 

May 6

Lab 13

Sound and audio processing.

WEEK

DATE

TOPIC

AFTER-CLASS

14

May 10

Class

Research in CS at Conn:  AI, Robotics (Prof Parker), Educational Technology (Prof Tarimo), Graphics, Virtual Reality (Prof Lee)

Work on your final projects.

WEEK

DATE

TOPIC

AFTER-CLASS

15

May 16-18

Final Projects due by noon on Wed, May 18 for most students, or at 5 pm on Mon, May 16 for graduating seniors.  Also see the final project grading rubric.