CSCI 1103
Accelerated Introduction to Computer Science
Home
Instructor: | Eric Chown |
Email: | echown@bowdoin.edu |
Office: | Searles 221 |
Office Hours: | W1:30-3pm, TH1-2:30pm |
Class Meeting Times: | TTH 2:30-3:55 Searles 128 |
Lab Time: | TH 1:00-2:30 Searles 128 |
Final Exam: | December 13, 9:00-12:00 |
Textbook: |
P. Gries, J. Campbell, and J. Montojo. Practical Programming: An Introduction to Computer Science Using Python 3, 2nd edition (2013). Available at Amazon or elsewhere. The textbook is optional but will roughly follow the schedule for the first part of the course. There will also be online readings as well as a fair amount of reading about software packages. |
TAs: | Zoe Aarons, Bo Bleckel, James Little, Kyle Morrison, Mackenzie Schafer, Brooke Solomon, Becca Vanneman, Erik Wurman |
TA Hours: | TBA, but will almost certainly include hours Sunday through Thursday nights. |
Course Description
We are surrounded by information. This course introduces fundamental computational concepts for representing and manipulating data. Using the programming language Python, this course explores effective ways to organize and transform information in order to solve problems. Students will learn to design algorithms to search, sort, and manipulate data in application areas like text and image processing, social networks, scientific computing, and databases. Programming topics covered include procedural, object-oriented, and functional programming, control structures, structural self-reference, arrays, lists, streams, dictionaries, and data abstraction. This course is appropriate for all students who want to create software and learn computational techniques for manipulating and analyzing data.
Organization. The course comes in two basic parts. In the first part we will be doing a very fast introduction to Python. Essentially we will cover the material from 1101 over the course of about six to eight weeks. In the second part of the course we will focus on more advanced parts of Python, such as visualization, especially in the service of analyzing data.
Work. You are responsible for reading supporting material and participating as the semester progresses. In addition, some topics may require you to investigate online resources (documentation, tutorials, and the like). We will start with a series of CodeRunner labs (30 percent) and there will be an exam at the end of the first part of the course (20 percent). There will also be a series of projects throughout the course (30 percent). During the last few weeks of the semester we will work on individual projects (20 percent). This final assignment is expected to be an independent effort that will challenge your abilities and demonstrate your proficiencies. I am holding the final exam time for presentations on the projects.
Most labs and all projects are not designed to be completed during scheduled lab meetings and will require significant work outside of class to complete. Labs are to be submitted using the CodeRunner system.
Communication. We will use Piazza to facilitate discussion outside of class. In general, you should prefer posting to Piazza over sending me email, as it will allow your classmates to both see and answer your questions (though you can also post privately such that only instructors can see your question). Piazza and CodeRunner will also be used to post links, readings, assignments, etc.
Policies
Class Meetings
Date (tentative) | Topic |
---|---|
August 31 | Introduction, Python Basics |
September 5 | Strings |
September 7 | Conditionals, Objects and Methods |
September 12 | Lists |
September 14 | Lists, Iteration |
September 19 | Iteration, Files |
September 21 | Sets and Dictionaries |
September 26 | Exceptions |
September 28 | Dictionaries |
October 3, 5 | Recursion |
October 12, 17, 19 | Object Oriented Programming |
October 24, 26 | Regular Expressions |
Nov-Dec | Advanced Topics including visualization, data analysis |