Syllabus for Fall 2016
In this course there will be regular opportunities for you to practice what you have learned and to demonstrate your accomplishments. Below, is a short description of each opportunity, along with the percentage of your final course grade it represents.
|Labs with Programming Projects||45%||Weekly, hands-on, supervised learning. You will begin a programming assignment in each lab. It will be due the following Tuesday night|
|Quizzes||25%||Short weekly in-class quizzes (given on Fridays)|
|Short homework assignments||5%||Assigned each Wednesday, it will help you prepare for the quiz each Friday.|
|Participation||5%||Ask questions, answer questions, join in discussions|
|Final Exam||20%||An exciting 3-hour opportunity at the end of the semester to demonstrate your ability to answer questions about course material.|
How to succeed
Labs and ProjectsCome to lab ready to focus on the new project. Ask the lab instructor and T.A. for help if you need it. Talk to your peers.
The grading policy for projects is designed to support three aspects of software production that are important for any computer scientist to have: high quality code, effective communication to the software's user or future programmer, and coding creativity and initiative. Each project has 30 points associated with it:
- Completing programming tasks with well-designed, working code (up to 22 points)
- Completing the write-up according to the instructions (up to 3 points). There were will 3-5 mini writing lessons throughout the semester. Each write-up will be graded based on whether or not it meets the standards set in the mini lessons.
- Extensions (up to 5 points). The written instructions will include a variety of extensions to the assignment, or you can come up with your own. Completing one or more extensions is typical. Extensions are graded on quality and complexity -- not simply by counting the number of extensions.
QuizzesStudy for the quizzes by doing the homeworks. We will drop the lowest quiz grade, so that if you make a silly mistake one week, it won't affect your grade dramatically.
Short homeworksTry them. You will receive full credit as long as you make an honest attempt to complete every question. Each homework will be a set of questions emailed by Stephanie on Wednesday. You respond to that email with your answers, along with any questions you may have. As long as you send this to Stephanie by 10pm on Thursday, she will respond with comments. As long as you send them by classtime on Friday, you will get credit. There is no partial credit for late homeworks, because we will go over the answers in class on Friday before you take the quiz.
ParticipateSpeak up in class. Come to office hours. Go to lab and help your neighbor. Or ask your neighbor, instructor, or TA for help.
Final ExamThe final exam will be similar to a large set of quizzes (but written from a more wholistic perspective). The best way to study for the final exam is to retake all of the old quizzes (and quizzes from old semesters). Also, read through your notes and make sure you understand everything in them.
For more information about expectations and the assignment of grades, see this document.
Help and Discussion Outside of Lecture
Office Hours and EmailStephanie and Ying will both be available to help. If you want to discuss a computer science concept or ask for help regarding an assignment, please do not hesitate to come to our offices. Not only do we enjoy talking about computer science, we want to get to know you!
In addition to coming by our offices for help, you are welcome to send us email with a question. We read our email very frequently and respond to such questions as soon as we read them.
Evening TA HelpIn order to provide as much help as possible to you as you work on assignments in this course, the CS Dept has hired upper-level CS students to work as TAs in the Davis 102 lab in the evenings. You are strongly encouraged to take advantage of this resource. The TAs are getting paid to help you, so don't feel guilty about asking them for help. The evening TA hours are: Sunday 4-10 pm and Monday-Tuesday 7-10 pm.
- 1/2 hour rule: If you have been stymied by one problem (e.g. a bug in your code) for more than 1/2 hour, you should stop and get help. Email one of us, see a TA, consult a peer. But do not waste your time on one problem.
- We are always happy to help you with any of your code for your projects. However, the earlier you come to us with questions, the happier we'll be to help you (we usually respond to a last-minute call for major help with the question "Why didn't you start earlier?").
- Please feel free to raise any concerns or complaints about the course directly with either of us. You are also welcome to send us your concerns anonymously. We will gladly respond to them.
SoftwareWe will use the Python computer language (v2.7) as the basis for the course, with weekly lab sessions to provide hands-on, supervised learning. You will be using a text editor (e.g. TextWrangler) to write your code. The computers in Davis 102 are equipped with all necessary software.
Attendance and ParticipationNothing is more boring than a course with a professor who drones on and on in a lecture about material that the students don't understand. Although this course does involve lecturing, this course will not be boring. I will not drone and I will do my best to make the material as clear as possible. But for this course to be truly successful, your presence and participation are important. When you have a question, ask it. It is highly probable that one of your classmates has the same question. When I give you an opportunity to share your opinion or your answer, please speak up. I want to hear what you have to say. And, of course, to participate in class you must attend class.
Concerned about speaking up? Outside of lecture, there are also many other opportunities to participate. Being active in lab and office hours (asking questions and providing help to your peers) counts. The only tricky thing about that sort of participation is that I might not notice it. So that means it is also important to participate by communicating directly with me, either in office hours or via email.
DeadlinesThe short homework assignments must be turned in on time. No late short assignments will be accepted because we will refer to their solutions in class. The longer programming assignments must be turned in on time for maximal credit. Late labs (programming assignments) will be accepted, but will be given reduced grades. Every student is allowed a free 4-day extension to one project. Let us know when you are taking your "freebie". Other late projects will be given reduced grades. Programming projects are graded on a 30 point scale. For each day late (up to four days), your grade will be reduced by 3 points. Projects more than four days late will not be accepted. Also, the freebie will not be accepted if it is submitted more than 4 days after the due date.
QuizzesShort quizzes will be given every Friday in class (excepting Feb 3) and the lowest quiz grade will be dropped. I will allow you to make up missed quizzes, but you must email me before class to let me know you will not be there and to request a time when you can make up the quiz. It is imperative that you email me before class begins.
Collaboration and Academic Honesty
Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on homework and programming assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. Always strive to do your best, give generous credit to others, start early, and seek help early from both your professors and classmates.
The following rules are intended to help you get the most out of your education and to clarify the line between honest and dishonest work. We reserve the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your project grade based on your answers. It is vitally important that you turn in work that is your own. We do use automated plagiarism detection software, so please be sure to abide by these, rather minimal, rules. Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. For more details on Colby's Academic Integrity policies and procedures, see colby.edu/academicintegrity.
- If you have had a substantive discussion of any programming project with a classmate, then be sure to cite them in your write-up. If you are unsure of what constitutes "substantive", then ask me or err on the side of caution. As one rule of thumb, if you see more than 10 lines of someone else's code, then you should cite them. You will not be penalized for working together.
You must not copy answers or code from another student either by hand or electronically. Another way to think about it is that you should be talking English with one another, not Python.
Colby College is a community dedicated to learning and committed to the growth and well-being of all its members.
As a community devoted to intellectual growth, we value academic integrity. We agree to take ownership of our academic work, to submit only work that is our own, to fully acknowledge the research and ideas of others in our work, and to abide by the instructions and regulations governing academic work established by the faculty.
As a community built on respect for ourselves, each other, and our physical environment, we recognize the diversity of people who have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another. We agree to respect each other, to honor community expectations, and to comply with College policies.
As a member of this community, I pledge to hold myself and others accountable to these values.
Sexual Misconduct/Title IX Statement
Colby College prohibits and will not tolerate sexual misconduct or gender-based discrimination of any kind. Colby is legally obligated to investigate sexual misconduct (including, but not limited to sexual assault and sexual harassment).
If you wish to speak confidentially about an incident of sexual misconduct, please contact Colby Counseling Services (207-859-4490) or the Director of the Gender and Sexual Diversity Program, Emily Schusterbauer (207-859-4093).
Students should be aware that faculty members are considered responsible employees; as such, if you disclose an incident of sexual misconduct to a faculty member, they have an obligation to report it to Colby's Title IX Coordinator. "Disclosure" may include communication in-person, via email/phone/text, or through class assignments.
To learn more about sexual misconduct or report an incident, visit http://www.colby.edu/sexualviolence/.
BackupsIt should go without saying that you should back up any files related to this course. If the code you submit to us is somehow lost (through your fault or our fault), we must be able to get another copy from you. We suggest you use the college's personal server.
||Zelle Ch 1|
||Zelle Ch 2, 3, 6|
||Zelle Ch 2, 7, 8|
||Zelle Ch 2, 4, 5|
||Zelle Ch 4, 5, 11|
||Zelle Ch 5, 9, 11|
||Zelle Ch 9|
||Zelle Ch 12, Algorithmic Beauty of Plants|
||Zelle Ch 10, 12|
||Zelle Ch 12|
||Zelle Ch 11|
||Zelle Ch 13|
- If you come across a Python word or function that you are unfamiliar with, you should know how to look it up in online documentation or in a Python reference book. There is a section of helpful links on the course information page. If you have trouble finding the documentation you need, feel free to come see us, but we expect you to try to look up the documentation yourself first.
- It should also go without saying that you should never leave your work in a public folder on a computer in a public lab. Instead your work should always be kept in your private account or copied to your own media such as flash drives and deleted from the computer's hard disk when you are finished using the computer.
- Don't gloss over errors in your code. That is, if you pretend there are no errors in your code when you know there are some there, we will take off more points than if you point out the errors that you were unable to fix.