CS 1010 What is Computer Science?

 

Note: If you are interested in this course you MUST enroll in BOTH
CS 1010 What is Computer Science? AND CS 1011 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 will I learn?

Who teaches this course?

Where and when is this course taught?

What textbooks do I use?

 

Instructor:

Professor Mark Kerstetter

B254 College of Engineering (Parkview Campus) Phone: 276-3110
E-Mail: mark.kerstetter@wmich.edu

 

Location
& Time:

Lecture: 1:00-1:50 p.m. M-W-F #40859 (Room: D201 -- 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 1110 or its equivalent, you will not receive credit for this course
. Note: This course and its associated lab meet General Education Area 7 – Science and Technology: Applications & Implications.

 

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 1011 What is Computer Science? – Lab at the same time you take the regular course.

 

2. MATH 1110 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 2e

by Mark Meyer
Jones and Bartlett Publishing Co. © 2005

 

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

 

Audience:

0. This is an excellent course for first-year students.  Throughout the course first-year students will get hints and learn useful techniques for coping with college life both academic and extra curricular, like how to study, taking quizzes and exams, collaborating with others, asking instructors for favors, taking control of learning, preparing for finals, getting around campus, learning about local and campus events, etc.

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.  This course has been approved for General Education Area 7 and is designed for a wide range of students from across all disciplines.  Students will learn the computer's impacts, both positive and negative upon society.

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 1110 Computer Science I or who wish a breadth first approach to CS.

3. Engineering students or potential engineering students who have not yet taken a computer science course (excluding CS 1000, CS 1040, CS 1060, or CS 1070).

 

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 1010 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 2230 and ECE 2500)
Number Categories and Natural Numbers

3. Data Representation (Covered more completely in CS 1110)
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 2500 and CS 2230)
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 1110, CS 1120, & ECE 3570)
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 1110 & CS 1120)
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 2230 or ECE 2510)
Machine Language Programming & Assembly Language Programming

8.     High-Level Programming* (Covered more completely in CS 1110 & CS 4850)
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 1110, CS 1120, & CS 3310)
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 2240 & CS 4540)
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 3310 & CS 4540)

 

Applications
Layer
:

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

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

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

 

Communications Layer:

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

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

 

Limitations of
Computers:

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