COSC 105
Syllabus of Record
I.
Catalog Description
COSC 105
Fundamentals of Computer Science
3c-0l-3sh
Prerequisites: None.
This is the first course for Computer
Science majors. It is required of all
Computer Science students and is appropriate for other Natural Science and
Mathematics students. Topics include the fundamental concepts of computer
architecture, algorithm development and analysis, programming languages,
software engineering, data organization and representation, and systems
software. Hands-on introduction to
computer usage with an emphasis on terminology and the underlying connections
within the discipline.
II.
Course Objectives
Upon successful completion of the course, the
student will be able to
A. Log in and use a variety of hardware and
software on campus and do simple file editing.
B. Discuss computer organization in simple
terms, including major future directions.
C. Describe how a computer actually performs
instructions.
D. Discuss the data organization concepts
that apply to physical storage, data structures, files, and databases.
E. Distinguish between program writing and
algorithm development and apply various problem solving techniques.
F. Discuss the features of a programming
language and the nature of the language translation process.
G. Describe the functions of an operating
system and discuss the problems inherent in providing multiprogramming.
H. Distinguish between good and bad programming
design methods.
I. Describe the nature of artificial
intelligence.
J. Discuss methods of measuring algorithm
performance and the limits of computability.
III. Detailed Course Outline
A.
History of Computing (2 hrs)
1.
Contributions of Pascal, Babbage, Hollerith and others
2.
Computer Generations
3.
Significant Events of recent computing history
B.
Use of the Computer (5 hrs)
1.
Using the terminal
2.
Editing text files
3.
System commands
4.
Using electronic mail
C.
Data representation (3
hrs)
1.
Binary numbers
2.
Integers - 2's complement, sign-magnitude
3.
Fractions - binary, hexadecimal
4.
Exponents - binary, hexadecimal, excess notation
5.
Characters - ASCII, EBCDIC
D.
Computer Architecture (5 hrs)
1.
CPU organization - registers, op codes, execution cycle
2.
Memory organization - addresses, base & bound, paging
3.
Device operations - interrupts, parity, commands, physical actions
4.
Modern architectures - pipelining, vector and array processors
5.
Future architectures - data driven, demand driven and inference machines
E.
Algorithm Development (6 hrs)
1.
Top-down approach
2.
Common tasks - searching, sorting, merging
3.
Techniques - repetition, recursion, divide-and-conquer
F.
Programming Languages (4 hrs)
1.
Language levels
2.
Data types
3.
Operators
4.
Control statements and conditions
5.
Input and output
6.
Specifications
7.
Paradigms - procedural, functional, specification, declaration,
object-oriented
G.
Software Engineering (3 hrs)
1.
Modularization
2.
Documentation
3.
Design methodologies
4.
Software life cycle
5.
Programming tools and environments
H.
Systems Software (3 hrs)
1.
Operating systems
2.
Compilers, interpreters and assemblers
3.
Linkers and loaders
I.
Data Organization (5
hrs)
1.
Data Structures
a. Consecutive storage - arrays, stacks, queues,
trees
b. Non-consecutive storage - lists, stacks,
queues, trees
2.
Files - access and organization
3.
Data base approaches - relational, network, distributed
J.
Artificial Intelligence (2 hrs)
1.
Heuristics
2.
Applications - robotics, image analysis, spoken language recognition
3.
Search methods
K.
Algorithm Analysis (2
hrs)
1.
Measuring time and space
2.
Effects of data structures
3.
Computability
IV.
Evaluation Methods
The final grade for the course will be
determined as follows:
55% Examinations.
Two mid-term multiple-choice exams, each counting 17%; one final multiple-choice exam counting 21%.
33% Projects/Assignments. Six to eight small assignments worth varying
numbers of points, totaling 150-200 points. These assignments are directly
related to the objectives.
12% Quizzes.
Three or four announced quizzes on the lecture material.
Generally, assignments are expected to be
handed in on time and examinations are expected to be taken on the designated
date and time. Valid excuses, e.g.
documented illness, are required for any exceptions to be made. Grading penalties for late assignments are
rather severe: 20% for 1 day late, 40%
for 2 days late, 70% for 3 days late, 100% after that. Quizzes cannot be made
up; they must be taken when given. However, allowances can be made for valid
excuses.