Contents
Computer Science Program
Philosophy
Computer
Science Major & Admission to the Program
Contracts for a
Computer Science Major
Requirements for a
Computer Science Major
Prerequisites
and Brief Notes on Courses
- Core Computer Science
Courses
- Core Non-Computer
Science Courses
- 1991 Policy Statement and Additions
- Approved
Computer
Science Electives
- Exceptions to Elective Policy
University
Requirements for Baccalaureate Degree
Buchtel
College of Arts and Sciences Requirements
General
Studies & General Education
Requirements
for a Second Baccalaureate Degree
University
Policy on Repeating
Courses
The Minor and
Certificate Programs
To enter the Minor or
Certificate Programs
Requirements
for Minor and Certificate Programs
Cooperative
Education in Computer Science
Some Computer User
Responsibilities
Additional
Information including Policy Exceptions
The information presented in this document is thought to be correct, but may contain errors. If you detect an error, please send e-mail to pelz@uakron.edu with a reference to what you believe to be in error. This document does not supersede any University of Akron publication; it is an attempt to collect such information in one location for the benefit of the student.
Computer
Science Program Philosophy
The computer
science program at The University of Akron has many roles to play both on and
off campus. A primary goal of the
program is the education of students to fulfill needs in industrial, commercial,
government, and university environments. Such a diversity of settings requires
that the students have a strong foundation in the field of computer science so
as to be capable of productive work anywhere.
As a consequence we stress the following:
(a)
A student must learn the concepts underlying many different solutions to
problems. Only by knowing these concepts can a student extend the knowledge
gained in school into new situations.
(b) A purely theoretical understanding is insufficient;
the student must also be able to implement the concepts in a variety of
environments. Every course in our
curriculum requires the student to write computer programs.
The student will use a variety of computer languages, hardware, and
operating systems. The range of
environments extends from machine language programming on a single board
computer using a simple monitor up to writing applications software under UNIX
on a parallel processor.
(c) The ability
to express oneself is an absolute necessity.
Programming requires the ability to write in a formal system; the student
must also be able to write in English. Comments,
documentation, and program descriptions are an essential part of programming
assignments. In addition many
courses require the student to write an expository paper on one aspect of the
course. Typically a course is
fairly broad in the discussion of topics; an expository paper requires the
student to research and write about some topic in depth.
(d) In a field
as rapidly changing as computer science, remaining up-to-date is an essential
aspect of professionalism. Students
are encouraged to read professional journals, join and be active in professional
societies and to develop the ability to learn on their own.
Education does not end on graduation day; it must continue into the
future.
(e) As computers
continue to affect more aspects of everyday life, the consequences of
inappropriate or unethical behavior become more severe.
The students must be aware of what is considered ethical and legal
behavior, as well as the consequences of violations of such norms.
Computer
Science Major &
Admission to the Program
The Department
of Computer Science at the University of Akron offers a Bachelor of Science
degree in Computer Science. An
option within that degree program is to participate in the Cooperative Education
program (details given later in this document.)
This degree
includes the courses necessary for breadth in computer science and the ability
to select courses in areas of interest to the student.
The degree also provides the foundation in computer science necessary for
a computer science major wishing to pursue a graduate degree in Computer
Science.
The College of
Arts and Sciences imposes some requirements that the student must satisfy before
an inter-college transfer can be completed. In addition, to transfer into the
Department, a student must have completed 3460:210 Data Structures and
Algorithms I and 3450:221 Analytic Geometry-Calculus I with grades of at least
a C.
Contracts
for a Computer Science Major
The student who wishes to major in Computer Science can make an appointment with an advisor in the Department of Computer Science and sign a contract as soon as the student is qualified to transfer from University college into Buchtel College of Arts and Sciences. Currently to transfer into the Department, a student must have completed 3460:209 Introduction to Computer Science, 3460:210 Data Structures & Algorithms I, 3450:208 Introduction to Discrete Mathematics and 3450:221 Analytic Geometry-Calculus I with grades of at least a C. In an area of concentration which changes as rapidly as Computer Science, the curriculum changes frequently. The student is expected to complete the requirements within 5 years of the date of transfer. The date of signing of the contract does not affect this time period. In practice, if the student has been regularly taking courses during that time period, an extension is generally allowed; this extension may be important to you if you attend classes on a part-time basis.
Requirements for a
Computer Science major
Course Hours
Course Name
3460:209
4.0
Introduction to Computer Science
3460:210
4.0
Data Structures & Algorithms I
3460:306
4.0
Assembly and System Programming
3460:307
3.0
Internet Systems Programming
3460:316
3.0
Data Structures & Algorithms II
3460:421
3.0
Object-Oriented Programming
3460:426
3.0
Operating Systems
3460:430
3.0
Theory of Programming Languages
3460:465
3.0
Computer 0rganization
3460:480
3.0
Software Engineering
3460:490
3.0
Senior Seminar
Total
36.0 Hours (28 at 300/400
level)
Course Hours
Course Name
3450:208
4.0
Introduction to Discrete Mathematics
3450:221
4.0
Analytic Geometry and Calculus I
3450:222
4.0
Analytic Geometry and Calculus II
3470:461
4.0
Applied Statistics
Total
16.0 Hours (8 at
300/400 level; 3450:222 counts here)
12.0
Four (4) approved computer science electives
(at
most one of these can be 300-level)
Total
12.0 Hours (12
at 300/400 level)
Overall Total
64.0 Hours (48
at 300/400 level)
Prerequisites
and Brief Notes on Courses
Core
Computer Science Courses:
****** Note:
All prerequisites must be satisfied with grades of at least C-
******
209
Introduction to Computer Science (4
hours)
Prerequisites:3450:145
College Algebra or 3450:149 Precalculus Mathematics with grade of C- or better or placement
An introduction
to computer programming theory and practice using C++.
Good program structure, modular design, and documentation are emphasized.
There is also a laboratory component to this course which is held in CAS 241.
It is suggested that student enroll concurrently in 3450:208 Introduction
to Discrete Mathematics. This is a
prerequisite for 210 below.
210
Data Structures and Algorithms I
(4 hours)
Prerequisites:
3460:209 & 3450:208 with grades of C- or better
A continuation
of the study of programming theory and practice studied in Introduction to
Computer Science. There is an
emphasis on object-oriented thinking and techniques. Some elementary data
structures and their implementation are introduced.
There is also a laboratory component to this course which is held in CAS 241.
This is a prerequisite for 306 and 316 below.
306
Assembly and System Programming
(4 hours)
Prerequisites:
3460:210 with grade of C- or better
Basic computer organization, digital logic, and data representation. Programming in
assembly and C languages on a typical digital computer.
This is a prerequisite for 465 below.
307 Internet
Systems Programming
(3 hours)
Prerequisite:
3460:210 with grade of C- or better
An introduction
to Web-based and internet programming. Topics
may vary, but typically include HTML, XML, CGI, Perl, and/or JavaScript.
316 Data
Structures & Algorithms II
(3 hours)
Prerequisites:
3460:210 and 3450:221 with grades of C- or better
Topics include
graphs and graph algorithms, external sorting, hashing, advanced tree and file
structures. Analysis of the
complexity of algorithms is emphasized. It
is recommended that this course be completed prior to taking any 400-level
computer science course.
421/521
Introduction to Object-Oriented Programming
(3 hours)
Prerequisites:
3460:316 with grade of C- or better
Object-oriented design, analysis, and programming using different development models.
Comparison with other programming paradigms.
426/526
Operating Systems
(3 hours)
Prerequisites:
3460:306 and 3460:316 with grades of C- or better
While studying
about operating systems, what they do and how they do it, students will each
write an operating system to run on a PC-class microprocessor.
430/530 Theory
of Programming Languages
(3 hours)
Prerequisites:
3460:316 with grade of C- or better
Students are
introduced to more advanced concepts underlying programming languages and their
applications, to formal definitions of programming languages, Backus Normal
Form, semantics, and compiler design. Recently
students have written programs in a variety of languages including Standard ML.
A research paper may be required.
465/565 Computer
Architecture(3 hours)
Prerequisite:
3460:306 with grade of C- or better
The student is
introduced to the hardware organization of the computer through an in-depth
study of the architecture of a particular computer systems family.
This includes the study of the organization of the register, processor,
and systems levels of the computer.
3460:480
Software Engineering
(3 hours)
Prerequisite:
3460:316 with grade of C- or better
Introduction to
formal software specification and validation. Introduction of methodologies and
tools of design, development and validation, and maintenance.
3460:490 Senior
Seminar in Computer Science
(3 hours)
Prerequisite:
Completion of at least 30 credit hours of 3460 courses
Professional
software development, surviving “Mission Impossible” porjects, computer
ethics, intellectual property rights (patents and copyrights), and other current
topics.
Required Core
Non-Computer Science Courses:
****** Note:
All prerequisites must be satisfied with grades of at least C-
******
3450:208
Introduction to Discrete Mathematics (4
hours)
Prerequisite:
3450:145 or 3450:149 with grade of C- or better or placement
Students are
introduced to mathematical concepts required for an understanding of computer
science. Subjects introduced
include sets and number systems, logic and Boolean algebra, relations and
functions, counting principles, recursion and induction, matrices, graph and
trees.
3450:221
Analytic Geometry-Calculus I
(4 hours)
Prerequisite:
3450:149 with grade of C- or better or placement.
Course topics
include real numbers, analytic geometry, limits, continuity, derivatives of
algebraic functions, tangent and normal lines, extrema of functions, Rolle's
theorem, mean value theorem, related rates, antiderivatives, definite integrals,
areas, volumes, and arc length.
3450:222
Analytic Geometry-Calculus II
(4 hours)
Prerequisite:
3450:221 with grade of C- or better or placement.
Course topics
include derivatives of exponential, logarithmic, trigonometric, inverse
trigonometric, hyperbolic and inverse hyperbolic functions; methods of
integration; moments; centroids; indeterminate forms; polar coordinates;
sequences; series; power series; Taylor, Maclaurin, and binomial series.
3470:461/561
Applied Statistics I
(4 hours)
Prerequisite:
3450:222 with grade of C- or better
Students study
the application of statistical theory to sciences (natural and physical) and
engineering. Topics studied are
probability distributions, interval estimation, hypotheses testing (parametric
and nonparametric), simple linear regression and correlation.
1991 Policy Statement and Additions
1. The following courses are approved as CS electives:
a) any course numbered 3460:4xx which is not a
required course for the program,
excluding
3460:489 and 497 which require approval on a case-by-case basis
(Note: 3460:401 and 3460:406 are not acceptable electives)
b) 3460:307 unless already required in the program
c) 3450:427, 428, 430
d) 3470:480
2. No more than one course with a department number
other than 3460 may be counted as a CS elective.
The exception to this rule is that both 3450:427 and 428 may be counted.
3. A student wishing to use some other course as a CS
elective must obtain approval for such use.
Normally only courses which are substantially the same as a course
offered within our department may be used as a substitute.
2002 addition to policy
A student may take the Cisco Networking sequence (2440:201, 202, 203, and 204) to be counted as
one of the CS electives.
2004 addition to policy
A student may take 3450:489 Scientific Workplace as a CS elective. Note that this applies only
to this specific topics course; any other 3450:489 topics course requires separate approval.
--------------------------------------------------------------------------------------------------------------------
Approved
Computer
Science Electives:
******
Note: 3460: 401 and 406 are
NOT acceptable CS electives; they are service courses ******
3460:408
Introduction to Windows Programming
(3 hours)
Prerequisite:
3460:208 or 210 or 406 with grade of C- or better or permission
Windows
operating systems, integrated development environment, event-driven programming,
graphical user interface design, object libraries, component object model,
object linking, embedding, client-server objects.
3460:418
Introduction to Discrete Structures
Prerequisite:
3460:210 with grade of C- or better Strongly recommended:
3460:316
A continuation
of the study of discrete mathematics begun in 3450:208, this course studies the
application of discrete mathematics theory and practice to computers and
computing.
3460:428 UNIX
System Programming (3 hours)
Prerequisites:
3460:316 with grade of C- or better
An overview of
the UNIX operating system is presented. Topics
include shell programming, process management, processor management, storage
management, scheduling algorithms, resource protection, and system programming
3460:435
Analysis of Algorithms
(3 hours)
Prerequisites:
3460:316 & 3460:418 with grades of C- or better
The design and
analysis of efficient algorithms for random access machines and the derivation
of pattern classification algorithms is explored.
3460:440
Compiler Design
(3 hours)
Prerequisites:
3460:316 with grade of C- or better
The techniques
used in writing and modifying compilers are studied. These include translation, loading, execution, symbol tables
and storage allocation, the compilation of simple expressions and statements.
The organization of a compiler for handling lexical scan, syntax scan,
object code generation, error diagnostics and code optimization is included.
The use of compiler writing languages and boot-strapping are also
explored. This course requires a
project involving compiler writing.
3460:445
Introduction to Bioinformatics
(3 hours)
Prerequisites:
3460:316 with grade of C- or better
Introduce major themes in bioinformatics. Topics include concepts of molecular
genetics, biological databases, database searching, sequence alignments,
phylogenetic trees, structure prediction, and microarray data analysis.
3460:446
Introduction to Bioinformatics Laboraroty
(1 hour)
Laboratory course investigating basic tools currently available for biological database searching,
sequence alignments, phylogenetic tree construction, protein structure prediction and
microarray analysis.
3460:453 Computer Security
(3 hours)
Prerequisites:
3460:316 with grade of C- or better
Principles of computer security - cryptography, authentications, secure network protocols, intrusion detection and countermeasures.
3460:455 Data
Communication and Networks
(3 hours)
Prerequisites:
3460:316 with grade of C- or better
This course
provides an introduction to data communications, teleprocessing, networks,
codes, modes of transmission, errors, and protocols.
3460:457
Computer Graphics
(3 hours)
Prerequisites:
3460:316 with grade of C- or betterwith grade of C- or better and knowledge of C.
The topics
explored include vector graphics, scan line graphics, representations and
languages for graphics.
3460:460
Artificial Intelligence & Heuristic Programming (3
hours)
Prerequisites:
3460:316 with grade of C- or better
A study is made
of various programs which have displayed some intelligent behavior The level at
which computers can display intelligence is explored.
3460:463
Pervasive Computing (3
hours)
Prerequisites:
3460:316 with grade of C- or better
Computing from a wire-less perspective. Topics include protocols, algorithms, security and sensor networks.
3460:467
Microprocessor Programming and Interfacing (3
hours)
Prerequisites:
3460:306 & 3460:316 with grades of C- or better
This is a
detailed study of a particular microprocessor architecture and instruction set.
Standard device interface components are explored, as are real-time
programming concepts. Course involves programming on a single board computer
3460:468
Mobile Robotics (3
hours)
Prerequisites:
3460:316 with grade of C- or better
Introduction to history, hardware and software components, and design of
autonomous mobile robots. Multiple projects involving both physical robots and software emulation.
3460:470
Automata, Computability and Formal Lang
(3 hours)
Prerequisite:
3460:418 with grade of C- or better
The theories of
formal languages and their relation to automata are presented.
Topics include the description of languages, regular context-free and
context-sensitive grammars; finite, pushdown and linear-bounded automata; Turing
machines; closure properties; computational complexity, stack automata and
decidability.
3460:475
Database Management
(3 hours)
Prerequisite:
3460:316 with grade of C- or better
Students are
introduced to the functions of a database through the study of a variety of data
models (inverted file, relational, network) and programming assignments in each
of these data models. Normal forms,
the E-R model, relational algebra, the hierarchical model, and mapping a
conceptual model to a real DBMS are also included. Students prepare a database
design for an imaginary business enterprise.
3460:477
Introduction to Parallel Processing
(3 hours)
Prerequisite:
3460:316 with grade of C- or better and knowledge of C
Commercial processors: past and present. Parallel languages, models of parallel
computation, parallel algorithm design and performance evaluation. Parallel
paradigms with relation to real world applications.
3460:489 Topics
in Computer Science
These are
offered intermittently and differ widely. Whether
a course is a qualified Computer Science elective will be determined
individually as such courses are offered.
Students wishing
to use some other course as a Computer Science elective should get prior
permission from the Department Chair in the Department of
Computer Science. If the
student hopes to take another course, perhaps at a college or university near
his/her home during the summer, the student should obtain detailed information
about the course in order that it may be evaluated.
The information should include the text used, the criteria used to
evaluation the student’s performance in the course and, if possible, the
syllabus of the course. This must
be done prior to taking the course.
University
Requirements for a Baccalaureate Degree
The
candidate for a baccalaureate degree must:
1. File an
application for graduation with the registrar.
Dates for filing: May 15 for winter graduation
2. Earn a
minimum of 128 credits with a minimum 2.00 grade-point average as computed by the Office of the Registrar for
work attempted at the University consistent with the Repeating Courses policy.
(See next page for Repeating Courses policy.)
3. Meet all
degree requirements which were in force at the time a transfer is made to a
degree-granting college. If a
student has transferred to another major, the degree requirements in effect at
the time of such a transfer must be met.
4. Be approved
for graduation by the faculty of Buchtel College of Arts and Sciences, the
University Faculty Senate and the Board of Trustees.
5. Complete the
requirements for a degree in not more than five years from the time of transfer
as defined below. In the event that
the student fails to complete such requirements in five years, the University
reserves the right to make changes in the number of credits and/or courses
required for a degree.
6. The date of
transfer for a student in a baccalaureate program will be the date that the
student is accepted by the degree-granting college.
7. The last 32
credits in the baccalaureate degree must be earned at The University of Akron
unless excused in writing by the dean of Buchtel College of Arts and sciences.
8. At least 32
credits must be earned at The University of Akron.
9. If a student
who has transferred from another institution wishes to present for the student's
major less than 14 credits earned at The University of Akron, the signatures of
both the Dean of Buchtel College of Arts and Sciences and the Chair of the
Department of Computer Science is required.
10. The student
must discharge all other obligations to the University. (This can include such
items as paying parking tickets and returning overdue library books.)
Buchtel
College of Arts and Sciences Requirements
1. Complete
General Education Requirements
2. Completion of
a total of 47 credit hours of 300/400 level courses in addition to those
required for the General Education. Workshops
and additional General Education courses may not be used to attain this total.
(see the section on the 47-hour rule below.)
3. Demonstration
of the ability to use English and another language.
This demonstration usually takes the form of completing the English
Composition series (3300:111, 112) for English.
For the second language, competency is shown by completing the second
year of a foreign language on the University level or by demonstrating an
equivalent competence through a test approved by the Department of Modern
Languages.
4.
student must complete the requirements for his/her major field of study
which are the requirements of the Computer Science Major.
The Department of Computer Science must then recommend that the student
be granted a degree.
5. The student
must achieve at least a 2.0 grade point in all courses taken in his/her major
field at the University of Akron. In
the case of Computer Science this means all courses in Mathematics (3450),
Computer Science (3460), and Statistics (3470). For students entering the department
Fall 2004 or thereafter, the calculation is done using only Computer Science (3460)
courses.
6. The student
must meet all the University requirements for a baccalaureate degree.
The requirement
that the student complete a minimum of 47 credit hours of 300/400-level courses
has a special case that applies to Computer Science students: 3450:222 Analytic
Geometry-Calculus II is included in the total.
General
Studies & General Education Requirements
(Check with the
Department Chair for information about General Studies Requirements which apply
to students who started their college or university education prior to Fall
1994)
General
Education courses are those courses required by the university in order to
insure that students have some breadth in their education in addition to depth
in their major subject. For the most current information concerning courses that may
be taken to satisfy specific areas, check the University Undergraduate Bulletin.
To insure that
students develop the ability to express themselves and present their ideas to
others, each student must take
Oral
Communications: 3 credits
7600:105 Introduction to Public Speaking
(3 hours) or
7600:106 Effective Oral Communication
(3 hours)
To train
students in written communication in order that they may express their thoughts
through the written word with clarity and some style, students are required to
take
English
Composition: 7 credits - 2 courses
3300:111 English Composition I (4 hours)
3300:112 English Composition II (3
hours)
Because even the
most technically inclined student should have some familiarity with the social
sciences, each student must take six hours of social science by taking
Social Sciences:
6 credits
(one course from
two different sets)
Set 1 - Economics
3250:100
Introduction to Economics
(3 hours)
3250:100
Principles of Microeconomics
(3 hours)
3250:244
Introduction to Economic Analysis
(3 hours)
Set 2 - Geography
3350:100
Introduction to Geography
(3 hours)
Set 3 - Government and Politics
3700:100
Government & Politics in United States (4 hours)
3700:150
World Politics and Governments
(3
hours)
Set 4 - Psychology
3750:100
Introduction to Psychology
(3 hours)
Set 5 - Sociology/Anthropology
3850:100
Introduction to Sociology
(4 hours)
3870:150
Cultural Anthropology
(4 hours)
5100:150
Democracy in Education
(3 hours)
Set 6 - United States History
3400:250
US History to 1877
(4 hours)
3400:251
US History since 1877
(4 hours)
Set 7 - Science/Technology/Society
3600:125
Theory and Evidence
(3 hours)
Each student is
required to take 1 hour of physical education/wellness classes.
Physical
Education/Wellness: 1 credit
5540: 120-183 Physical
Education
(0.5-1.0 hours)
5550: 150
Concepts of Health and Fitness
(3 hours)
5550: 194
Sports Officiating
(2 hours)
5550: 211
First Aid and Cardiopulmonary Resuscitation
(2 hours)
5570; 101
Personal Health
(2 hours)
7400: 133
Nutrition Fundamentals
(3 hours)
7900: 119/120 Modern
Dance I/II; Intro. to Modern Dance I/II (2
hours)
7900: 124/125 Jazz
Dance I/II; Intro. to Jazz Dance I/II
(2 hours)
7900: 144
Tap Technique I; Intro. to Tap I
(2 hours)
Students are
introduced to the culture of the Western part of the world through the required
University College courses:
Humanities: 10
credits - 3 courses
Required:
3400: 210
Humanities in the Western Tradition
(4 hours)
Students may select one course from two different sets below:
Set 1 - Fine Arts