Course Time: 5a (MW 1:50pm – 3:00pm, F 2:20pm – 3:20pm)
Visiting Hours: M 3:00pm – 4:00 pm, W 8:00pm – 9:00pm (in CMC 102), Th 1:00pm – 2:00pm (please send me an email if you want to set up another time!)
Prefect: Ellie Mamantov, mamantove
Course Staff: Charlie Broadbent, broadbentc and Meghan Owens, owensm
Lab Assistant Hours:
Course Text: Allen B. Downey,
Announcements will be made via Moodle, so watch for those emails.
Programming Environment: We will be using the Python 3 programming language on Mac OSX. This will be the setup in the computer science labs (CMC 102, 304, and 306) and in the Weitz lab (138). You are welcome to use whatever text editor you like. A text editor is an application that's used for writing code; sort of like Microsoft Word, but for code instead of essays. You'll see options like Atom and Brackets included in the lab computers. The differences between these are not very significant for our purposes; I only recommend using something that is already available on the lab computers. I will normally use Atom in class.
Assignment submissions: You will submit assignments by uploading them to Moodle, on the appropriate assignment page.map
, filter
; list comprehensions; lambda
[outline]
[map_examples.py]
This course will introduce you to computer programming and the design of algorithms. By writing programs to solve problems in areas such as image processing, text processing, and simple games, you will learn about recursive and iterative algorithms, complexity analysis, graphics, data representation, software engineering, and object-oriented design.This course will focus on a broad introduction to computational concepts. We will use Python 3 as our programming language. No previous programming experience is necessary. By the end of this course, you should be able to:
Grading breakdown:
A little more on inclusivity: please treat your classmates with kindness and respect, both inside the classroom and out. Classrooms can be vulnerable environments; asking questions and expanding our understanding of new concepts requires us to reveal over and over again that we don't fully know something. It's okay to not know everything immediately! It's not okay to make people feel bad about what they don't know. This can happen even in subtle ways - see this page for a few ideas on how to help create a friendly learning environment. Our individual differences enrich and enhance our understanding of one another and of the world around us. This class welcomes the perspectives of all ethnicities, genders, religions, ages, sexual orientations, disabilities, socioeconomic backgrounds, regions, and nationalities.
Late Policy:
Deadlines will be
given with each assignment. These deadlines are
strict. There will be no credit for late work. For the
entire term, you may have four
Academic Honesty and Collaboration:
Any work submitted with your name on it must be your work.
Any pair assignment submitted with both your name and your
partner’s name must be your (plural) work. On pair assignments,
you must both fully contribute to the solution that you submit.
(Not precisely about academic honesty, but still good guidance:
receive your partner’s ideas as enthusiastically as possible,
even if they may not initially seem like the obvious choice to you.)
It is each student’s responsibility to speak to me in any situation
where your partner is not being of sufficient help. You are required
to completely understand any solution that you submit, and, in case
of any doubt, you must be prepared to explain your solution to me.
If you have submitted a solution that you cannot explain to me, then
you have violated this policy (and so has your partner!). You may
not split up an assignment and divide the work between the partners.
You must stop working with your partner if you find yourself in a situation
in which continuing work would cause this requirement to be violated.
You do not need my permission at the time to split up;
you may do so if you genuinely are unable to work together for scheduling or other reasons.
Just be very clear in your submission what work was done together and what was done on your own.
You may consult with other students to get help. You may not copy (either electronically or through transcription) other people’s work. It is of course appropriate for some ideas to be transmitted through “consulting-type” help, but code generally shouldn’t be word-for-word identical; plagiarism will not be tolerated in this class. You should never be in possession of a (paper or electronic) copy of a classmate’s code before the due date for the assignment. (Sharing code after the deadline is fine, as is sharing code with your partner.) Another way to articulate this: when getting help, that consultation should be in English and not in Python. You may refer to online manuals documenting Python functions or perform Google searches to find the syntax for a particular Python feature; you should include a comment at the relevant point in your program explaining the source you used (typically including the URL). You may bounce ideas off of classmates; if those conversations lead to insights, then you should cite your classmate. (This sharing and attribution of ideas is an example of a thriving course community!) Use your judgment and common sense to decide whether consultation with a classmate was sufficiently substantive that citation of your classmate is warranted. You should mention significant consultation with lab assistants (by name if possible!). Any amount of help that caused you to revise your program should be cited. Again: use common sense. It is never acceptable to submit a program that you have found elsewhere (via Google, a book, a friend currently/previously in this class, etc.). Changing variable names, altering indentation, and adding comments do not change the fact that such a program was not written by you. If you are ever unclear about how to represent what work you have done, (a) ask and (b) describe clearly what you have done.
Academic Accommodations:
Carleton College is committed to providing equitable access to learning opportunities for all students.
The Disability Services office (Henry House, 107 Union Street) is the campus office that collaborates with students who have disabilities
to provide and/or arrange reasonable accommodations.
If you have, or think you may have, a disability (e.g., mental health, attentional, learning, autism spectrum disorders, chronic health,
traumatic brain injury and concussions, vision, hearing, mobility, or speech impairments),
please contact disability@carleton.edu or call Jan Foley, Student Accessibility Specialist (x4464)
or Chris Dallager, Director of Disability Services (x5250) to arrange a confidential discussion regarding equitable access
and reasonable accommodations.