COSC
107 Introduction to Computer Science (4)
Exploration
of the foundations of computing as a science, including how computing represents
the effective merger of science, mathematics, and engineering. Incorporates
hands-on experience to illustrate how computers operate based on simple
principles of logic and abstraction; demonstrates how to communicate with
them via algorithms and use of a simple programming language; evaluates
limitations; examines alternative computing paradigms; considers emerging
technologies; contemplates major innovations such as the Internet, virtual
reality, and intelligent systems; and surveys a variety of issues facing
society. Not a computer literacy course. Prereqs: Basic computer literacy
(familiarity with file/folder manipulation, word processing, and spreadsheet
applications); mathematics background suitable for placement into Precalculus.
COSC
110 Introduction to Programming (4)
Introduction
to the fundamental techniques of programming as a foundation for more advanced
study of computer science and as a tool for other disciplines. Includes
introduction to object-oriented programming using Java. Focus on development
of effective software engineering practice, emphasizing such principles
as design, decomposition, encapsulation, procedural abstraction, testing,
and software reuse. Topics include programming constructs, problem-solving
strategies, the concept of an algorithm, recursion, fundamental data structures,
and an introduction to machine representation, graphics, networking, and
interactive development environments. Prereqs: Basic computer literacy
(familiarity with file/folder manipulation, word processing, and spreadsheet
applications); mathematics background suitable for placement into Precalculus.
COSC
200 Discrete Structures for Computer Science (4)
Introduction
to discrete mathematics as it is used in computer science, fostering logical
methods of problem solving and thinking. Topics include functions, relations,
sets, propositional and predicate logic, simple circuit logic, proof techniques,
finite state machines, Turing machines, elementary formal language theory,
graph theory, Boolean algebra, computability, complexity, elementary combinatorics,
and discrete probability. Prereqs: Mathematical preparation sufficient
to take calculus at the college level. Offered: Fall.
COSC
210 Data Structures and Algorithms (4)
Extension
of previously acquired foundational programming experiences, with particular
emphasis on the use of data abstraction and object-oriented programming
in the design and implementation of fundamental data structures and algorithms.
Topics include recursion, basic data structures, efficiency, complexity,
primary algorithms for searching, sorting, tree and graph manipulation,
hashing, inheritance, and polymorphism. Includes significant programming
experiences in a language such as Java. Prereqs: Grade of C or better in
COSC 110; grade of C or better in COSC 200 desirable as prereq, but may
be taken concurrently or with permission of the instructor.
COSC
305 Computer Organization and Architecture (4)
Study
of concepts of computer systems and computer architecture. Focus on fundamentals
of logic design, organization and structure of the major hardware components
of computers, and the mechanics of information transfer and control within
a computer system. Includes lab experiences in assembler language programming
and simulation of computer circuits, and investigation of different architectures
(composition and connection of larger blocks) supporting parallel computing
and data communications. Prereqs: COSC 200 and COSC 210, with grades of
C or better. Offered: Fall.
COSC
306 Principles of Bioinformatics (4)
Interdisciplinary
biological and computational approach to science to gain new insights into
complex living systems. Methods developed in this discipline address outstanding
questions in medicine, behavior, health, pharmacy, genetics, the environment,
and other biologically related areas. Co-listed as BIOL 306. Prereqs for
all
majors: BIOL 105, 110, or 203; or permission of the instructor. Additional
prereqs for computer science majors: COSC 200 and COSC 210, with grades
of C or better. Offered: Spring
COSC
315 Databases and Information Management (4)
Study
of underlying concepts and structures in the design and implementation
of database management systems. Includes lab experiences, such as implementation
of DBMS projects using commercially available software. Also covered: design,
creation, and maintenance of data files, and implementation of several
methods in high-level language(s); sorting and searching techniques, and
how they relate to various data structures; design and construction of
user interfaces; ethical issues involving security and privacy, and other
issues related to the use of distributed databases. Prereqs: COSC 200 and
COSC 210, with grades of C or better. Offered: Spring.
COSC
325 Languages and Theory (4)
Study
of the history of programming languages and styles; programming paradigms;
language features supporting parallel and distributed computing; formal
language theory, special purpose languages, automata, syntax, grammars,
semantics, bindings, symbol tables, data types, scoping, parameter passing,
abstract data types, computability and solvability, and complexity classes;
design and implementation of (part of) a compiler; simulation of theoretical
machines such as finite state automata; empirical comparisons of various
algorithms and programming paradigms; and utility of interactive tools
and environments. Prereqs: COSC 200, COSC 210, and MATH 240, with grades
of C or better. Offered: Spring.
COSC
335 Operating Systems and Networking (4)
Introduction
to the fundamentals of operating systems, networking, and communications;
in-depth treatment of operating systems and their interface with hardware,
applications, and system user; contemporary social and professional issues,
such as intellectual property, risks and liabilities, and system security
in the context of operating systems design; data communications and transmission
methods; wide- and local-area networks; and simulation of (parts of) an
operating system and of network protocols. Prereqs: COSC 200 and COSC 210,
with grades of C or better. Offered: Spring.
COSC
380 Scientific Methods of Computer-Based Instrumentation (4)
Survey
of computer-based instrumentation and software/hardware integration used
to develop experiments or tests critical in the modern laboratory or industrial
environment. Covers laboratory programming using fourth-generation visual
computer language, acquisition and conditioning of real-world signals,
and control of ASCII conversation-based bench-top instruments. Co-listed
as CHEM 380 and PHYS 380. Prereqs: PHYS 102 or PHYS 204, and COSC 110 or
equivalent. Offered: Fall, on rotation.
COSC
410 Computer Science Research/Internship (1-4)
Research
project or internship completed under the supervision of a faculty member,
with results presented in a written paper or other appropriate document
(e.g., user's manual, if the project involves software development). Cannot
substitute for required courses in the computer science major. May be repeated
for a total of eight credits. Prereqs: COSC 110, with a grade of C or better,
and permission of the instructor, in response to written proposal submitted
by the student.
COSC
420 Software Engineering (4)
Examination
of a range of topics integral to the design, implementation, and testing
of a medium-scale software system, with practical experience of implementing
such a project as a member of a programming team. Also includes material
on professionalism and ethical responsibilities in software development
and human-computer interaction. Prereqs: COSC 315, with a grade of C or
better. Offered: Fall.
COSC
460 Current Topics in Computing (4)
In-depth
exploration of a designated "topic of the year," providing a mechanism
for study of important topics of current interest in the rapidly changing
discipline of computer science. Includes research, simulation, and/or analysis
of various approaches related to the topic(s) under study. Major emphasis
on demonstration of maturity in use of various computer science tools in
investigations. Such tools include programming, software development, research
skills, communications skills, data structures, and algorithm analysis.
Prereqs: Grades of C or better in at least one 300-level COSC course and
MATH 240. Offered: Fall.
COSC
470 Artificial Intelligence and Advanced Computing Strategies (4)
Exploration
of one of the ultimate computer science objectives: simulating intelligence
in machines. Considers intelligent behavior in living beings, identifies
problems confronting AI researchers, and explores a variety of approaches
to the development of intelligent systems. Methodologies include traditional
knowledge representation, search, and heuristic strategies, as well as
alternative computational paradigms such as artificial neural networks.
Cognitive behaviors in machines are modeled via computer simulation and
robotics. Techniques presented draw on knowledge accumulated from a broad
range of disciplines. Prereqs: Permission of the instructor. Computer science
majors should have grades of C or better in at least one 300-level computer
science course and should be proficient in Java or C++. A math background
that includes calculus and advanced courses is helpful but not essential.
Offered: Spring.
COSC
495W Senior Seminar and Project (4)
Capstone
experience for computer science majors. Major emphasis on reviewing the
entire range of topics studied within the curriculum and providing individual
students an opportunity to accomplish a significant research or software
development project. Students give both oral and written presentations
of their projects and are required to take the Major Field Test (MFT) exam.
Topic, scope, and (if appropriate) software to be used in the project must
be approved in advance by the professor(s). Prereqs: Grades of C or better
in one 400-level and two 300-level COSC courses and MATH 240. Offered:
Spring. |