CS 210 What is Computer Science?

 

Note: If you are interested in this course you MUST enroll in BOTH
CS 210 What is Computer Science? AND CS 210 What is Computer Science? – The Lab

See http://cs.wmich.edu for more information about this course.

 

What’s this course about?

Who should take this course?

What are the course prerequisites and co-requisites?

What textbooks do I use?

What will I learn?

Who teaches the course?

Where and when is the course taught?

 

 

Instructor:

Professor Mark Kerstetter

B254 College of Engineering (Parkview Campus – Fall 2003) Phone: 276-3110
E-Mail: Kerstetter@wmich.edu

 

Location
& Time:

Lecture: 1:00-1:50 p.m. M-W-F #56177 (Room: CE C136 -- Parkview Campus)

 

Course Description:

(3 credit hours – 3 hours lecture)

This course explains the differences between computer science, computer engineering, information processing, and other areas of study of computing and computing technology.  It surveys topics studied by computer scientists, investigates where computer scientists work and discusses connections with professional associations.  This course will reveal what computers can and cannot do.  In particular, you will be introduced to: the history of computing, binary numbers and data representation, computer logic, components of a computer, problem solving and algorithmic design, low-level and high-level programming, abstract data types and algorithms, operating systems, file systems and databases, artificial intelligence, simulations, and networks and the World Wide Web.  You’ll also learn to write computer programs in a high-level language.  You will join other students with diverse interests to work together and share an introduction to the challenging, ever changing, and seemingly omnipresent world of computing.  Throughout the course you will be learn about famous persons who have influenced our discipline and probe ethical issues that trouble us. If you are currently enrolled in or have already completed CS 111 or its equivalent you will not receive credit for this course
.

 

Prerequisite:

You must have access to a computer and already know how to use it to perform basic tasks like: send/receive e-mail, browse the Web, perform basic word processing, save or copy a file, etc.  You do not need to know how to program.

 

Co-requisite:

1. If you have not already taken the laboratory associated with this class, you must take CS 210 What is Computer Science? – Lab at the same time you take the regular course.

 

2. MATH 111 or equivalent is a co-requisite

 

Textbook:

Computer Science Illuminated 2e
by Nell Dale and John Lewis
Jones and
Bartlett Publishers © 2004
ISBN: 0-7637-2711-3

Explorations in Computer Science:
A Guide to Discovery

by Mark Meyer
Jones and Bartlett Publishing Co. © 2003

 

The textbook and lab manual are bundled together with a FREE student lecture companion using the single ISBN specified.

 

Audience:

1. Students who want to know the nature of computer science without making a commitment to the discipline.  If you think you may only be taking one true course in computer science, this should be it.

2. Students who may be interested in taking a major or minor in computer science but who do not have sufficient programming or mathematics background for CS 111 Computer Science I or who wish a breadth first approach to CS.

3. Engineering students or potential engineering students who have not yet taken any computer science courses (excluding CS 104, CS 105, CS 106, or CS 107).

 

This is NOT a course designed to teach computer literacy or computer usage.  It will NOT teach basic applications like word processing, spreadsheet use, presentation software, telecommunications, etc.  This course will NOT satisfy the University’s computer usage graduation requirement.

This course is NOT suitable for students who feel comfortable writing computer programs.  In order to encourage free exchange and a comfortable competitive atmosphere for students for which this course is intended, students with more experience will not be allowed to enroll or remain enrolled in this course.

 

 

Topics:

CS 210 What is Computer Science?

Introduction

1. Introduction
What is a Computer System?
A Brief History of Computing
Computing as a Tool and a Discipline
What’s the difference between computer science, information systems, computer engineering, and software engineering?
What professional organizations are associated with each discipline involved with computers and technology?
What employment opportunities are available?  Will I be employed or employable as a computer scientists?

 

Information
Layer:

2. Binary Values and Number Systems
(Covered more completely in CS 223 and ECE 250)
Number Categories and Natural Numbers

3. Data Representation (Covered more completely in CS 111)
Data and Computers
Numerical Data, Text, Audio, Images and Graphics, and Video

 

Hardware
Layer:

4. Gates & Circuits – Low-Level Computer Hardware
(Covered more completely in ECE 250 and CS 223)
What are Gates?  Basic Logic Building Blocks
What are Circuits?  Adders and Multiplexers
Computer Memory & Central Processing Unit (CPU)

5. Computing Components – High-Level Computer Hardware
(Covered more completely in CS 111, CS 112, & ECE 357)
Individual Components
Stored-Program Concepts
Multiple-Computer Systems

 

Programming Layer:

6. Problem Solving and Algorithm Design – What’s an Algorithm?
(Covered more completely in CS 111 & CS 112)
Problem Solving, Top-Down Design, Object-Oriented Design
Concepts: Information Hiding, Abstraction, Naming Things, Programming Languages, and Testing

7. Low-Level Programming (Covered more completely in CS 223 or ECE 251)
Machine Language Programming & Assembly Language Programming

8.     High-Level Programming* (Covered more completely in CS 111 & CS 485)
Translation Process, Programming Language Paradigms, Imperative Programming Languages, and Object-Oriented Languages
*Students will be introduced to programming and write a number of programs using the Java programming language.

9.     Abstract Data Types and Algorithms
(Covered more completely in CS 111, CS 112, & CS 331)
What is a Data Type?
Lists, Sorting, Searching, Stacks, Queues, and Trees

 

Operating Systems
Layer:

10.   Operating Systems – Why are they necessary?  What do they do?
(Covered more completely in CS 224 & CS 554)
Types of Operating Systems
Memory Management
Process Management and Scheduling the CPU

11.   Operating Systems – File Systems and Disk Scheduling
(Covered more completely in CS 331 & CS 554)

 

Applications
Layer
:

12.   Information Systems (Covered more completely in CS 543)
Database Management Systems

13.   Artificial Intelligence (AI) (Covered more completely in CS 582)
”Thinking Machines”, Expert Systems, Neural Networks, Natural Language Processing, and Robotics

14.   More Applications (Covered more completely in CS 527 & CS 530)
Simulation, Graphics and Computer-Aided Design (CAD), and Embedded Systems

 

Communications Layer:

15.   Networks & Networking (Covered more completely in CS 555)

16    The World Wide Web (Covered more completely in CS 498)

 

Limitations of
Computers:

17.   Limits on Arithmetic, Limits on Communication
(Covered more completely in CS 580)
Software Complexity and Errors
Comparing Algorithms and Classification
Turing Machines
The “Halting” Problem – It Can’t Be Programmed!!!