CPSC 6105Fundamental Principles of Computer Science

Course Description
Overview of basic concepts in computer science ranging from computer hardware components, interconnection network structures and communication protocols, analysis of computer algorithms to software systems and applications.

May not be applied to a degree program. Need a grade of B or better to show proficiency.

Course Prerequisites
Admission to the Graduate Program in the TSYS Department of Computer Science

Textbooks
There are no required textbooks for this course. The problem is that no single textbook
covers all of the material for the course. The only way to cover the course is to buy three textbooks, one from each area. That’s too much money for one course.

Suggested Reference Books
The following are possible reference books for this course. Due to the cost of purchasing these books, none are required for use in this course. The student with a lot of money on
his/her hands might consider buying one textbook from each category. That’s a lot of money.

Hardware & Computer Systems

The Essentials of Computer Organization and Architecture
Linda Null and Julia Lobur
Jones and Bartlett (Sudbury, MA), 2006
ISBN 0 – 7637 – 3769 – 0

Structured Computer Organization
Andrew S. Tanenbaum
Pearson / Prentice Hall (Upper Saddle River, NJ), 2006
ISBN 0 – 13 – 148521 – 0

Computer Organization & Architecture
William Stallings
Pearson / Prentice Hall (Upper Saddle River, NJ), 2006
ISBN 0 – 13 – 185644 – 8

Design and Architecture of Digital Computers: An Introduction
Edward L. Bosworth
Published by ColumbusState and not available, but see the web site

How Computers Work
Ron White
Que Corporation (Macmillan Corporation), 1998
ISBN 0 – 7897 – 1728 – X
This last book is not really a textbook, but a general introduction to computer
organization. It is a good reference, especially for those who like pictures.

Page 1 of 6Revised: 7/23/2006

CPSC 6105Course Syllabus

Networks & Communication

Computer Networking: A Top–Down Approach Featuring the Internet
James F. Kurose & Keith W. Ross
Pearson / Addison Wesley ( Boston, MA), 2005
ISBN 0 – 321 – 22735 – 2

Computer Networks and Internets with Internet Applications
Douglas E. Comer
Pearson / Prentice Hall (Upper Saddle River, NJ), 2004.
ISBN 0 – 13 – 143351 – 2

Computer Networks
Andrew S. Tanenbaum
Pearson / Prentice Hall (Upper Saddle River, NJ), 2003
ISBN 0 – 13 –066102 – 3

Hands–On Networking with Internet Technologies
Douglas E. Comer
Pearson / Prentice Hall (Upper Saddle River, NJ), 2005
ISBN 0 – 13 – 148696 – 9
This is mostly a lab manual. Still, it is both useful and very interesting.

Data and Computer Communications
William Stallings
Pearson / Prentice Hall (Upper Saddle River, NJ), 2004
ISBN 0 – 13 – 100681 – 9

Algorithm Analysis

Introduction to the Design and Analysis of Algorithms
Anany Levitin
Pearson / Addison Wesley (Boston, MA), 2007
ISBN 0 – 321 – 35828 – 7

Introduction to Algorithms
Thomas H Cormen, Charles E. Leiserson, & Ronald L. Rivest
McGraw–Hill / MIT Press (Cambridge, MA & New York, NY), 1997
ISBN 0 – 07 – 013143 – 0
This is a very thorough coverage of the subject.

Algorithmics: The Spirit of Computing
David Harel
Addison–Wesley (Reading, MA), 2004
This may be out of print, as the latest I can find is ISBN 0 – 201 –19240 – 3

Computer Algorithms: Introduction to Design and Analysis
Sara Baase & Allen Van Gelder
Addison–Wesley (Reading, MA), 2000
ISBN 0 – 201 – 61244 – 5

Course Objectives (Learning Outcomes)
On successful completion of the course the student will be able to

1.Informally explain the major computational complexity classes and assign problems
to each of the most common three complexity classes.

2.Analyze the run-time complexity of simple algorithms, both iterative and recursive, using
the O, , and  notation. Apply the “Master Theorem” to recursive problems.

3.Describe and apply the six major strategies for creating algorithms: brute–force, greedy,
divide–and–conquer, dynamic programming, backtracking, and branch–and–bound.

4.Differentiate problems best solved algorithmically from those best solved by other
methods, including rule–based systems and genetic algorithms.

5.Understand the basics of Boolean algebra, including the basic functions and their
description by truth tables and standard normal forms.

6.Differentiate between combinational and sequential circuits and give examples of each.

7.Use basic FSM (Finite State Machines) to model processes, such as a traffic light, simple
sequence detectors, and the TCP three–way handshake protocol.

8.State the major components of a modern computer and describe the function of each.

9.Design circuits using basic SSI components (AND, OR, and NOT gates) as well as basic
MSI components (Multiplexers, Decoders, and Adders).

10.Describe the interfaces between the CPU and the each of the memory and I/O devices.
Define terms associated with memory access and I/O bus timing.

11.Describe alternate and advanced computer architectures and state problems appropriate
for solution on each architecture type. Specifically understand the difference between
RISC and CISC machines and the rationale for the RISC movement.

12.Explain Amdahl’s Law and Flynn’s Taxonomy; apply these to distributed and grid
computing, and account for the limitations of communications bandwidth.

13.Discuss both the ISO/OSI Protocol Reference Model and the TCP/IP protocol stack.
For the TCP/IP protocol stack, explain the functioning of each level and give some
examples of programs and protocols appropriate for that level.

14.Explain the difference between the UDP protocol and TCP protocol.

15.Describe a number of TCP and UDP applications and relate each to its protocol port.

16.Explain the significance of reliable transport to TCP and explain the mechanisms used
by that protocol to achieve reliable transport.

17.Explain the functioning of IP and describe its packet format. Describe how IP differs
from each of UDP and TCP.

18.Describe the format of IP version 4 addresses (both classful and classless).

19.Describe Network Address Translation and private non–routable addresses.

20.Describe the Domain Naming System and its association of logical names with IP
addresses. Explain the significance of routers and RIP packets.

Student Responsibilities
1.Regularly log onto the WebCT tool for the class and check both
the WebCT e–mail and the discussion groups.
2.Participate fully in the discussion groups with both original postings
and replies to at least one other posting for each discussion thread.
3.Complete all reading assignments and all homework assignments.
4.Ask the instructor questions. Use e–mail for this.

Instructor Responsibilities
1.Write lectures on the course material and post these on his web site..
2.Assign appropriate homework that illustrates the concepts of the course, and
grade and return the homework in a timely manner with adequate explanation.
3.Give tests over the material, and grade the tests in a timely manner.
4.Post timely discussion topics for student participation.
5.Maintain frequent student contact using the WebCT e–mail tool.
Respond to students who use the Cougarnet e–mail system for communication.
6.Provide a website that supports the course.
7.Provide timely replies to student questions and concerns as communicated
through e-mail. Note that the WebCT e-mail is preferable.

Method of Evaluating Students
Students will be evaluated by use of a set of six tests. For a 15–week course, the tests will be given during weeks 3, 5, 7, 9, 11, and 13. There will be no final exam.

In order to show the required proficiency in computer science, the student will be required to achieve a grade of 80 or above on each of the tests in the course.

Students who do not receive the required grade on a test will be assigned readings and homework problems specifically designed to address the shortfalls identified in the test. After this, the students will be required to take a similar test on the same material.

Students may retake tests as many times as required to show proficiency.

Assignment of Letter Grades
In this course, the association of letter grades with numeric grades is fairly standard.
90 –100A
80 –89B
70 –79CNOTE:Students who get a grade of C or worse in this
55 –69Dcourse will not have fulfilled it as a prerequisite
Below55Fto graduate work at CSU.

ADA Accommodation Notice

If you have a documented disability as described by the Rehabilitation Act of 1973 (P.L. 933-112 Section 504) and the Americans with Disability Act (ADA) that may require you to need assistance attaining accessibility to instructional content to meet course requirements, we recommend that you contact the Center for Academic Support in Tucker Hall, room 100 or at (706)568-2330, as soon as possible. The Center for Academic Support can assist you and the instructor in formulating a reasonable accommodation plan and provide support in developing appropriate accommodations for your disability. Course requirements will not be waived but reasonable accommodations may be provided as appropriate.

Academic Honesty

Academic dishonesty includes, but is not limited to, activities such as cheating and plagiarism ( Dishonesty/Academic Misconduct). It is a basis for disciplinary action. Any work turned in for individual credit must be entirely the work of the student submitting the work. All work must be your own. You may share ideas but submitting identical assignments (for example) will be considered cheating. You may discuss the material in the course; however, any work you hand in for a grade must be your own. Having access to another person's work on any computer system or giving access to your work to another person is not allowed. It is your responsibility to keep your work confidential.

No cheating in any form will be tolerated. Penalties for academic dishonesty may include a zero grade on the assignment or exam/quiz, a failing grade for the course, suspension from the Computer Science program, and dismissal from the program. All instances of cheating will be documented in writing with a copy placed in the Department's files.

Course Reference Web Sites

The WebCT / Vista is a primary learning tool used in this course. Please note the existence of an older system, called WebCT, that is now obsolete. You will use Vista. You must visit WebCT Vista pages for this class on a regular basis and check your class e-mail to receive any news regarding this course. You will also use WebCT Vista to

  • Receive and submit all course assignments;
  • Take online or download and submit all tests.

WebCT Vista: or

How to Access WebCT Vista

I. Go to the WebCT Vista website by either of the following routes:

A. Go to the CSU Homepage:

  • Select “CSU Family” from the upper left list
  • Select “WebCT Vista” icon at the bottom of the page

B. Direct route: or

II. Log in to your WebCT Vista account. (Each student has his/her own account.)

A. Select “Log on to My WebCT Vista”

B. Enter your information following the directions carefully. The log-in system is very precise and case sensitive.

1. User Name: lastname_firstname example: bosworth_edward

(Using all lowercase, enter your last name, an underscore mark, then first name as it appears on CSU official records. No spaces.)

2. Password: default password is your birthday in the format of DDMMYY. (Example - Birthday of Oct. 25, 1978 is 251078. This password should match with your CSU e–mail password.)

C. Select the ColumbusStateUniversity from the list. Then select the class for detailed information.

Tentative Course Schedule (Using the Calendar for Fall 2006)

WeekMondayTopics Covered
No.Date

18/21Basic definitions: Problems, Strategies, and Algorithms
Computational complexity & run–time complexity of algorithms.

28/28Analysis of run–time complexity of iterative and recursive algorithms.
The Master Theorem.

39/4Classic Problems: Knapsack, Traveling Salesman, and Dogs/Cats/Mice
The six major design strategies. Brute–force and greedy. TEST.

49/11Divide–and–conquer algorithms. Two more strategies: backtracking
and branch–and–bound.

59/18More applications of these design strategies. Discussion of alternate
problem strategies: rule–based systems and genetic algorithms. TEST.

69/25Introduction to Boolean algebra and logic gates implementing Boolean
functions. Truth tables and standard normal forms.

710/2Basic SSI and MSI components and their use in circuit design. TEST.

810/9Combinational and sequential circuits. Introduction to FSM (Finite
State Machines) as a modeling tool.

910/16Description of the major top–level components of a computer. Standard
interfaces to memory and I/O devices. Memory timings. TEST.

1010/23Alternate & advanced architectures. RISC vs. CISC. Amdahl’s Law
and parallel processing. Flynn’s taxonomy. Grid computing.

1110/30Basic overview of the Internet. Protocol layers for both TCP/IP and
the ISO/OSI model. Network security issues. TEST.

1211/6Achieving reliable transport. Issues with UDP and TCP.
The TCP 3–way handshake and 4–way handshake.

1311/13The IP, IP addressing, and routing over the Internet.
Classful and classless addressing in IP version 4. TEST.

1411/20The Domain Name System and structure of Internet names.
Network Address Translation and private non–routable addresses.

1511/27Discuss Internet security, including the use of Firewalls and
DMZ (Demilitarized Zones)TEST.

1612/4Miscellaneous topics and review. Time allotted to complete the
make–up tests, if any.

17Friday, December 15: Last day of final exams. All work must
be complete and submitted by this date.

Page 1 of 6Revised: 7/23/2006