Computer_Science
 Home | People | Curriculum | Projects | Resources | Media

CMSC 105: Introduction to Computer Science

Quick links: Labs; Lab Due Dates; CMSC 105 calendar; CS Events Calendar; Suggestions for using CodingBat to practice Python

Announcements: As of the afternoon of September 11, we have a class email list and will use that for further announcements. If you are planning to take this class but did not get email from Dave W titled "CMSC 105: Welcome to the CMSC 105 mailing list" sent 4:18 EDT on 9/11, please send email to Dave W right away.

Semester & Year: Fall 2012

Instructors: David Wonnacott (davew@cs.haverford.edu), Sorelle Friedler (sorelle@cs.haverford.edu), lab instructor Suzanne Lindell (shlindel@cs.haverford.edu)

Schedule: Lecture T/Th 11:30-1:00 in Sharpless Auditorium, Lab: 1 hour T.B.A. in KINSC H110

Required Text: Course notes: From Vision to Execution: Computer Science and the Creative Process by David Wonnacott. Available at the Haverford College book store for less than the price (including shipping) of ordering directly from lulu.com.

Recommended Texts: The course notes cover all the features of the Python language and all the mathematical techniques that will be needed in this cours; students who would like extra help learning the words of Python are invited to practices (especially in groups) with certain examples on the CodingBat web site. The tutorial on the Python web site explains a great deal about the Python language, but it mixes together things from many different weeks of our first year's curriculum. David Gries' The Science of Programming (Springer-Verlag 1989, ISBN 978-0-387-96480-5) goes into much more detail about the use of formal reasoning techniques to develop imperative programs (from the second half of CMSC 105.

Prerequisites: None
Experience with programming or Python is not required; we will discuss, in the lecture and lab, all of the programming techniques and language features that we expect you to know and use. This course is designed to serve all interested students.

Majoring/Minoring in Computer Science: Sophomores planning to major or minor in computer science should take Math/CS 231 (Discrete Math) concurrently with CMSC105 or CMSC106 (in the spring). Frosh may wish to take Discrete Math concurrently or wait for their Sophomore year.

Description: A general introduction to the study of computer science.

Computer science investigates the fundamental laws governing computational processes and objects. The basic elements of a computation are algorithms and data structures. Computer scientists study the construction and properties of these elements, their composition into larger scale software programs or computer hardware, and their interactions with human beings and effects on society. (By analogy, biology investigates fundamental questions about life, exploring scales both small (molecular biology) and large (ecosystems), and physics investigates fundemental questions about matter, energy, space and time.)

CMSC 105 begins the study of computer science with a brief overview of algorithms, data structures, and software, followed by an in-depth introduction to the intellectual tools used by computer scientists to create and investigate algorithms, including:

A detailed introduction to data structures is given in CMSC 106.

Labs for CMSC 105: (see Due Dates Page for schedule)

Related Courses:

It should be noted that some students begin with CMSC 100 or CMSC 101 and then proceed into CMSC 105, but this is unusual.

Evaluation: 1 midterm & 1 final exam, weekly labs, with the final grade determined by approximately 45% lab grades, 50% exam grades, and up to 5% class participation (including attendance and completion of "mini-homework" and in-class exercises/assesments.)

Collaboration: You are encouraged to discuss the lecture material and the weekly labs and problems with other students, subject to the following restriction: except when otherwise noted, your memory should be the only "product" of any discussion of a lab --- you may not write up solutions together, or exchange written work or computer files pertaining to labs.

Collaboration is not allowed on exams.

Learning Accomodations: Students who think they may need accommodations in this course because of the impact of a disability are encouraged to meet with the instructor in private (e.g., during office hours) early in the semester. Students should also contact Rick Webb, Coordinator, Office of Disabilities Services (610-896-1290) to verify their eligibility for reasonable accommodations as soon as possible. Early contact will help to avoid unnecessary inconvenience and delays, and facilitate learning.

Haverford College Page maintained by John Dougherty, David Wonnacott, and Rachel Heaton.
Computer Science Department, Haverford College.