Foundations of Computer Science - An Issue Based Approach

COS 140 is a new course in computer science designed to help first year majors to begin to think like computer scientists, to help non-majors get a rigorous overview of the field, and to help undecided students find out if computer science is for them.

Students will be introduced to the field by learning about a series of problems that confront those designing computers and understanding how computer scientists develop techniques for meeting these challenges. The course will give students a framework for understanding the issues surrounding computers that can be used both in advanced computer science courses and in everyday life.

Fall 2009

Instructor:Roy Turner
Lectures:MWF 9:00-9:50 in 208/210 Neville Hall
Office:231 Neville Hall
Office Hours:TTh 1:00-2:00
Syllabus:Revised Fall 2009 Syllabus
Schedule:Revised Fall 2009 schedule
Textbook: Chapters of draft textbook available
Teaching Assistant:Larry Whitsel
TA Office Hours:TBA (in 119 Neville Hall)
Recitation:Section 1: Wednesday 11:00-11:50 in 206 Neville Hall
Section 2: Friday 11:00-11:50 in 206 Neville Hall
Contact Email:cos140@umcs.maine.edu
Homework:on-line copies available

Announcements

  1. [11/20/2009] New homeworks are available: ALOHA, Hamming codes.
  2. [11/20/2009] New slides are available on the textbook page: Network intro, ALOHA, Hamming codes.

Course Overview

We will look at five areas of computer science which work together to build usable computing platforms:

For each area, we will begin with a broad introduction, then we will examine, in detail, several techniques that are used in that area.

No experience with programming is required for this class, and programming will not be taught.

Frequently Asked Questions

What distinguishes COS 140 from other introductory COS courses?
COS 140 is different from other introductory COS courses because it introduces the field of computer science instead of focusing on programming. While programming is an important tool for computer science, it is only a tool. Because most introductory computer science courses focus on programming, students may spend two or more semesters as computer science majors without finding out what computer science is all about. Similarly, non-majors, who often take only a single introductory course, may never be exposed to the real issues in computer science. COS 140 allows students who are interested in computer science to get a true introduction to the field.
Is there a textbook for COS 140?
A textbook is currently being written for this course, and chapters may be handed out as they are completed. The bookstore has bound handouts of the slides used in lectures. You should purchase a copy of the handouts as soon as possible.
Who should take COS 140?

COS 140 was designed to help computer science majors in two ways:

  • It allows students to get a taste of what the major will entail, before they complete a year of programming courses.
  • It helps students to think like computer scientists by showing them how to identify problems in the field and by teaching them how other computer scientists have successfully addressed these problems.

Although COS 140 is required of all our majors, it will be especially good for:

  • Students with little or no programming experience - especially those who are not sure what computer science is.

    Before COS 140 was developed, students with little or no programming experience were placed in COS 120, an introductory programming course which does not count toward the major. Starting in Fall 2005, all students will take COS 140, possibly with the new introductory programming course (COS 125). COS 140 does not teach programming, but gives students a sophistication about computers that will help prepare the student to begin programming and help them in more advanced courses in the major. COS 140 will be especially good for students who are not sure what computer science is or if it is for them.

  • Students who love to program, but who do not know what else is entailed in a computer science major.

    Students often choose computer science as a major because they like to program. In many cases, this is a good choice. Programming is a necessary skill for computer science majors. And, because it is a skill shared by most computer scientists, many of the metaphors and models used to understand computer science are built on a knowledge of programming. However, computer science and computer programming are two distinct enterprises requiring distinct knowledge, skill and talent. So, in some cases, students who love to program do not enjoy the computer science major. These students then feel frustrated in their upper-level courses because they are no longer expected to focus on the programming that brought them into the major.

    COS 140 will help these students decide if computer science will be as interesting to them as computer programming.

W3C CSS
W3C XHTML 1.0