Drake University Course Catalog - Computer Science (CS)

10. PREVIEW OF COMPUTER SCIENCE 3 hrs.
The course presents a broad overview of Computer Science to provide students with an appreciation for and an understanding of the many different aspects of Computer Science. A comprehensive and rigorous exploration of computing is undertaken to lay a solid foundation to support further study. No background in Computer Science is assumed.

65. INTRODUCTION TO COMPUTER SCIENCE I - 3 hrs.
An introduction to the field of computer science is provided emphasizing problem solving using a high-level programming language. Algorithms, basic data representation, language control structures, debugging, and program verification will be discussed. Objects will be introduced, used, and created.

Prereq.: Four years of high school mathematics or MATH 20.

66. INTRODUCTION TO COMPUTER SCIENCE II - 3 hrs.
This course extends the work of CS 065. This object of the course is to understand data abstraction in computer science and to learn how to implement user-defined data types in an object-oriented language. Sorting, searching and tree traversal algorithms are used and analyzed. Preparation for further study in computer science.

Prereq.: CS 65 or equivalent.

73. COMPUTER LANGUAGE TOPICS - 1-3 hrs.
Introduction to specific programming and special purpose computer languages for students who are already familiar with a high-level programming language.

Prereq.: CS 65 or equivalent. Some topics may have additional prerequisites.

83. COMPUTER ETHICS - 3 hrs.
This course examines the ethical and social issues arising from advances in computer technology, and the responsibility that computer professionals and users have with regards to computer use. The course will serve to increase understanding of issues related to ethics, professional conduct and social responsibility as they arise in the field of computer science. Students will be exposed to the history of the discipline from a social point of view, and to various frameworks from which ethical and professional decisions must be made within the discipline. Additionally, the course serves to develop 1) the ability to think clearly; 2) habits of professional responsibility and behavior; and 3) effective writing and presentation skills.

Prereq.: Sophomore, junior, or senior standing required.

99. INDEPENDENT STUDY - 1-3 hrs.
Directed individual study in areas related to the student's needs or interests.

Prereq.: Consent of department.


114. SYMBOLIC LOGIC (PHILOSOPHY 114) - 3 hrs.
Study of the concepts and techniques of modern formal logic, including axiomatic developments of the sentential calculus and an examination of the first-order predicate calculus in a system of natural deduction.

130. COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE PROGRAMMING - 3 hrs.
Computer organization and architecture; internal representation of programs and data; assembly language programming; addressing techniques; macros; assemblers; linking; input/output concepts.

Prereq.: CS 65 or equivalent.

135. PROGRAMMING LANGUAGES - 3 hrs.
Principles of programming languages are studied from the perspectives of design and implementation. Syntactic and semantic features are examined in a variety of languages. Run-time structures for handling both data and control structures are introduced. The course concentrates on imperative and object-oriented paradigms, but also covers functional and logic languages.

Prereq.: CS 130.

137. DATA STRUCTURES AND ALGORITHM ANALYSIS - 3 hrs.
Formal and informal methods for analyzing the correctness and efficiency of algorithms. Implementation and analysis of advanced algorithms and data structures such as AVL trees, B-trees, hash-tables, heaps, and graph algorithms. Introduction to complexity theory and NP-Completeness.

Prereq.: MATH 54, CS 66.

139. THEORY OF COMPUTATION - 3 hrs.
Theoretical foundations of computing. Introduction to formal grammars, languages and automata theory. Mathematical analysis of the fundamental power and limitations of computing devices. Applications to pattern matching, problem specification, programming languages and compilers.

Prereq.: MATH 54, CS 66.

140. COOPERATIVE EDUCATION - 1-3 hrs.
Students who are in a work environment related to the major field of study may receive credit for applications of classroom knowledge to their job. The student meets regularly with the adviser to determine appropriate assignments. May be repeated up to a maximum of eight hours of credit. (Graded on a credit/no credit basis.)

Prereq.: At least junior standing or consent of instructor.

143. ARTIFICIAL INTELLIGENCE - 3 hrs.
Introduction to the theory, tools and methods of artificial intelligence. Topics include knowledge representation, predicate calculus, basic data structures, and problem solving strategies. A symbol manipulation language is used. Computer science aspects of artificial intelligence are emphasized. Applications from areas such as natural language understanding, vision or expert systems are examined.

Prereq.: CS 66, 130.

146. OBJECT-ORIENTED SOFTWARE / UML - 3 hrs.
Practical experience in state-of-the-art techniques for object-oriented software development, especially the use of "Unified Modeling Language (UML)." UML is now the de facto standard for expressing the intricate static and dynamic details of today's complex software products. The course focuses on learning to develop highly organized and maintainable programs, and on using UML and "Design Patterns" as a means for expressing their features and guiding their design. Team work is also stressed.

Prereq.: CS 66

147. COMPUTER GRAPHICS - 3 hrs.
Introduction to the drawing methods, geometrical transforms, and illumination models that are fundamental to computer graphics programming. The course is designed to be hands on in which students will implement several of the algorithms discussed in class using C/C++ and the OpenGL toolkit.

Prereq.: Knowledge of C and MATH 80 or consent of instructor.

150. DISCRETE STRUCTURES (MATHEMATICS 150) - 3 hrs.
Foundations of discrete mathematics and the problems that can be solved using finite processes and sets of elements that can be listed. Topics covered will include algorithms, graph theory, and combinatorics.

Prereq.: CS 65 and MATH 101.

160. OPERATING SYSTEMS - 3 hrs.
Introduction to the design, development and implementation of operating systems. Problems of resource allocation, concurrency, file system design, networking and the interface between hardware and software. Examination of actual operating system source code.

Prereq.: CS 130.

161. COMPILER CONSTRUCTION - 3 hrs.
This course provides an understanding of the various phases of the programming language translation process. Compiler principles and tools are examined, and applied to the development and implementation of a working language processor. Various parsing techniques are compared.

Prereq.: CS 66.

165. INTRODUCTION TO NUMERICAL ANALYSIS (MATHEMATICS 165) - 3 hrs.
A practical introduction to numerical computing. The primary focus is the concepts and tools involved in modeling real continuous mathematical or engineering problems on the digital computer. The effects of using floating point arithmetic, error analysis, iterative methods for solving equations, and numerical integration and differentiation will be studied.

Prereq.: CS 65, MATH 80 and 100.

172. DIGITAL COMPUTER ORGANIZATION - 3 hrs.
Exploration of how computers are constructed. Topics include the components of modern computer organization: the set of instructions, processor design and layout, clock speed, pipelining, access to cache, and virtual memory. Each one of these components will be studied in depth, in addition to basic digital circuits and combinational logic, with a focus on the decisions the must be made in order to develop an efficient computer.

Prereq.: CS 130.

195. TOPICS IN COMPUTER SCIENCE - 1-4 hrs.
Seminars in selected topics.

Prereq.: Consent of instructor.

199. INDEPENDENT STUDY - 1-3 hrs.
Directed individual study in areas related to the student's needs or interests.

Prereq.: Consent of department.


MATH-CS Homepage