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

CMSC 105: Introduction to Computer Science

Lab assignments and other relevant links for CS105

Semester & Year: Fall 2008

Instructor:David Wonnacott

Schedule: Lecture MW 12:30-2:00 in Hilles 109; Lab F 12:30-2:00 in Hilles 110, with second section t.b.a. run by J.D.

Required Text: As we have not (yet!) found a textbook that matches the way we teach this course, the only required reading will be from course notes written by Dave Wonnacott. Printed copies from lulu.com have arrived in the bookstore and should be on the shelf some time on Monday, September 3. They cost $8 from the bookstore (vs. $9.35 including shipping to order 1 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 course, but students who want more details can read the tutorial on the Python web site to learn about the Python language, or read David Gries' The Science of Programming (Springer-Verlag 1987, ISBN 0387964800) for more detail about the use of formal reasoning techniques to develop programs.

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 intended 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. 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:

The detailed introduction to data structures is given in CMSC 206.

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% exam grades, 50% lab grades, and 5% participation (including attendance and completion of 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: the only "product" of your discussion should be your memory of it - you may not write up solutions together, or exchange written work or computer files. 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.