CSCI 1103

Accelerated Introduction to Computer Science


Instructor: Eric Chown
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

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.


Department Honor Code and Computer Usage Policy

Class Meetings

Date (tentative) Topic
August 31Introduction, Python Basics
September 5Strings
September 7Conditionals, Objects and Methods
September 12Lists
September 14Lists, Iteration
September 19Iteration, Files
September 21Sets and Dictionaries
September 26Exceptions
September 28Dictionaries
October 3, 5Recursion
October 12, 17, 19Object Oriented Programming
October 24, 26Regular Expressions
Nov-DecAdvanced Topics including visualization, data analysis