|
P = Prerequisite, R = Recommended, C = Concomitant
I = Fall Semester, II = Spring Semester, S = Summer Session(s)
CSCI A106 Introduction to Computing (3 cr.) Fundamentals of computer hardware and software; use
of packaged programs in areas such as word processing, spreadsheets, database management, communications, graphics;
the role and impact of computers in society. Course is designed for people with little or no computer experience.
One class per week is spent in the microcomputer teaching laboratory. Students may not receive credit for both BUS
K201 and CSCI A106. May not be taken for graduation credit after CSCI C101 or CSCI C201.
CSCI A107 Programming Within Applications (4 cr.) P: CSCI A106 or equivalent. Advanced study and
use of the Microsoft productivity suites: Word, Excel, Outlook, Access, PowerPoint. Programming within applications
using Visual BASIC for Applications. Elementary database design and development. Advanced features of the Windows
operating system. Design, construction and publishing of Web pages. May not be taken for graduation credit after
CSCI C101 or CSCI C201.
CSCI A150 Understanding Operating Systems (1 cr.) P: CSCI A106 or equivalent. Study of the basic
concepts of operating systems. Understanding the role of operating systems in providing a virtual machine interface.
Understanding the relationship between the hardware and operating system. Survey of the user level operating system
facilities and commands. May not be taken for graduation credit after CSCI C101 or CSCI C201.
CSCI A201 Introduction to Programming (4 cr.) R: MATH M014, CSCI A106. Fundamental programming
constructs, including loops, arrays, classes, and files. General problem-solving techniques. Emphasis on modular
programming, user-interface design, and developing good programming style. Not intended for computer science majors.
May not be taken for graduation credit after CSCI C101 or CSCI C201.
CSCI A338 Network Technologies and Administration (3 cr.) P: CSCI A150. Introduction to network
principles and current network technology, both hardware and software. Network administration tools and techniques.
Laboratory provides practical experience. May not be taken for graduation credit after CSCI C101 or CSCI C201.
CSCI A340 Introduction to Web Programming (3 cr.) P: CSCI A201 or CSCI C101. An introduction to
programming Web documents, including HTML, JavaScript and Perl. Creation of a simple Web site, including a home page
with dynamic elements, using both client-side and server-side techniques. Not intended for computer science
majors.
CSCI A505 Object-Oriented Programming (4 cr.) Provides students with background in computer
programming skills. The focus is on a fundamental understanding of the programming process, particularly object
oriented, related to business and managerial applications. Students will be expected to create working programs in a
suitable language, such as Visual BASIC, C++, or Java (or whatever language is appropriate as circumstances change),
but more emphasis will be placed on design principles and concepts such as "object," "class," and "interface" than on
coding proficiency.
CSCI A510 Database Management Systems (3 cr.) P: CSCI A505; C: BUSB A505. Provides students with
a background in database management systems development and application. Emphasizes fundamental understanding of
database management systems as they relate to businesses and management computer applications. Students will be exposed
to various logical data models including hierarchical, network, relational, and object-oriented. Topics covered include
file systems and databases, the relational database model structured query language, entity relationship modeling,
normalization of database tables, database design, conceptual design, conceptual design verification, logical design
implementation, transaction management concurrence control distributed database management systems, object-oriented
databases, client/server systems, data warehouse, databases and the internet, and database administration.
CSCI A515 Telecommunications (4 cr.) P: CSCI A505. Provides students with a background in
telecommunications and computer networking. Emphasizes fundamental understanding of telecommunications as they relate
to business and management computer applications. Students are expected to become conversant with telecommunication
systems design principles and concepts, not to develop the network building skills associated with a technician.
CSCI B424 Parallel and Distributed Programming (3 cr.) P: CSCI C243, MATH M301. Overview of parallel
computers, shared memory, message passing, MIMD and SIMD classifications. Understanding and use of message passing and
synchronization facilities such as MPI. Study of parallel programming models such as master-slave, client-server,
task-farming, divide-and-conquer and pipelining. Performance analysis of parallel systems, execution time, time
complexity, load balancing and scalability. Credit not given for both CSCI B424 and CSCI B524.
CSCI B438 Computer Networks (3 cr.) P: CSCI C243, CSCI 335. Fundamental concepts and technologies
used in design of computer networks. Architecture and design philosophy of Internet and basic performance issues.
Low-level technologies like Ethernet and wireless. Packet switching and virtual circuits. Core protocols of the Internet,
such as TCP and IP. Error control, congestion control, and routing.
CSCI B481 Interactive Computer Graphics (3 cr.) P: CSCI C243, MATH M301. An introduction to
interactive programming: design and implementation of graphical user interfaces (GUI). Fundamentals of modern interactive
graphics: hardware, software, data structures, mathematical manipulation of graphical objects, algorithms for two- and
three-dimensional graphics. No prior background in graphics is needed, although a good background in C++ programming and
data structures is required. Some familiarity with computer architecture is assumed.
CSCI B503 Algorithms Design and Analysis (3 cr.) P: CSCI C251, MATH M209 or MATH M216. Models,
algorithms, recurrences, summations, growth rates. Probabilistic tools, upper and lower bounds, worst-case and
average-case analysis, amortized analysis, dynamization. Comparison-based algorithms: search, selection, sorting, hashing.
Information extraction algorithms (graphs, databases), Graphs algorithms: spanning trees, shortest paths, connectivity,
depth-first, breadth-first search.
CSCI B524 Parallelism in Programming Languages and Systems (3 cr.) P: CSCI C243, MATH M301. Overview
of parallel computers, shared memory, message passing, MIMD and SIMD classifications. Understanding and use of message
passing and synchronization facilities such as MPI. Study of parallel programming models such as master-slave,
client-server, tast-farming, divide-and-conquer and pipelining. Performance analysis of parallel systems, execution time,
time complexity, load balancing and scalability. Credit not given for both B424 and B524.
CSCI B538 Networks and Distributed Computing (3 cr.) P: CSCI B438; R: CSCI C435. Advanced concepts
and technologies of computer networks. Protocols and protocol stacks. Client-server models. Distributed object technology.
High-performance and high-bandwidth techniques. Distributed operating systems.
CSCI B541 Hardware System Design I (3 cr.) P: CSCI C243, CSCI C335, PHYS P303. Structured approach to
hardware design, emphasizing hardwired and microprogrammed control. Boolean algebra, hardware building blocks,
architecture and control, implementation issues. In the laboratory, students build a working computer using hardware
prototyping technologies. Basic training in the use of design and simulation software. Lecture and laboratory. Credit not
given for both CSCI B541 and CSCI C421.
CSCI B551 Elements Of Artificial Intelligence (3 cr.) P: CSCI C463. Major issues and approaches in
artificial intelligence. Principles of reactive, goal-based, and utility-based agents. Problem-solving and search.
Knowledge representation and design of representational vocabularies. Inference and theorem proving, reasoning under
uncertainty, and planning. Overview of machine learning.
CSCI B561 Advanced Database Concepts (3 cr.) P: CSCI C442. Database models and systems: specially
relational and object-oriented; relational database design theory; structures for efficient data access; query
languages and processing; database applications development; views. Transaction management: concurrency and
recovery.
CSCI B581 Advanced Computer Graphics (3 cr.) P: CSCI C481. Introduction to graphics hardware and
software. Two-dimensional graphics methods, transformations, and interactive methods. Three-dimensional graphics,
transformations, viewing geometry, object modeling and interactive manipulation methods. Basic lighting and shading.
Video and animation methods. A selection of topics from contemporary computer graphics incorporating and extending the
material in CSCI C481, such as advanced rendering, procedural modeling, and data visualization. Topics will include
exposure to current research as well as providing an historic perspective. A sampling of research papers and a project
in computer graphics form a substantial portion of this course.
CSCI B582 Image Synthesis (3 cr.) P: CSCI C481. Raster image display: color theory, gamma
correction, and filtering. Advanced shading methods: local illumination models, global illumination models. Surface
display, including ray tracing and Z-buffering. Solid modeling; spline surfaces, CSG, superquadrics, and deformations.
Scientific visualization: isosurfaces and volume rendering.
CSCI B651 Natural Language Processing (3 cr.) P: CSCI C463. Theory and methods for natural language
processing. Algorithms for sentence parsing and generation. Context-free and unification grammars. Question-and-answer
systems. Analysis of narratives. Finite-state approaches to computational phonology and morphology. Machine translation.
Machine learning of natural language. Speech recognition. Neural-network and statistical alternatives to symbolic
approaches.
CSCI B661 Database Theory and Systems Design (3 cr.) Database models: relational, deductive,
complex-object, object-oriented. Query languages: relational algebra and calculus, datalog, fixpoint logics,
object-oriented query languages. Transaction management theory: concurrency control, recovery, distribution.
Post-relational and object-oriented database systems.
CSCI B665 Software Engineering Management (3 cr.) (Course currently under development.)
CSCI C101 Computer Programming I (4 cr.) P: MATH M014 or equivalent. Fundamental concepts of
algorithm development, computer programming, and data structuring.
CSCI C151 Multiuser Operating Systems (2 cr.) P: CSCI C101. Survey of the operating system
facilities and commands. Installation and maintenance of operating systems such as Linux. Understanding process
management, file systems, memory and virtual memory management issues. Understanding networking and its role in modern
computing environment. Operating system security. Writing shell scripts and batch files.
CSCI C201 Computer Programming II (4 cr.) P: CSCI C101. Fundamental concepts of computer science,
including top-down design, data structures, structured control flow, modular programming, recursion, and standard
algorithms.
CSCI C243 Introduction to Data Structures (4 cr.) P: CSCI C151, CSCI C201. Abstract data types and
their implementations using various data structures and algorithms; elementary algorithm analysis; space/time trade-offs;
sorting and searching; finite graph algorithms; introduction to object-oriented design and programming; software
engineering principles.
CSCI C251 Foundations of Digital Computing (3 cr.) P: CSCI C243, a course in calculus. Mathematical
foundations of computing, including mathematical induction, propositional logic, proofs of correctness. Turing machines,
computability, and the halting problem.
CSCI C297 Sophomore Topics in Computer Science (2-3 cr.) Contents and prerequisites vary from year
to year. This course may count toward a minor but not a major. The department uses this course to present current and
future trends in computing.
CSCI C308 System Analysis and Design (4 cr.) P: CSCI C243. The software development life cycle;
structured top-down and bottom-up design; data flow diagramming; entity relationship modeling; study of computer-aided
software engineering; I/O design and validation; file and database design; design of user interfaces; comparison of
structured vs. object-oriented design. A team project will be completed.
CSCI C311 Organization of Programming Languages (3 cr.) P: CSCI C243, CSCI C335. Design and
implementation of programming languages: syntax; semantics; comparison of programming paradigms such as imperative,
functional, logic, and object-oriented. Implementation of concepts such as binding, scope, looping, branching,
subprograms and parameter passing, tasks and concurrency, heap management, exception handling, templates, inheritance,
overloading.
CSCI C335 Computer Structures (4 cr.) P: CSCI C201. Computer architecture and machine language;
internal data representation; assembly systems; macros; program segmentation and linking; I/O devices; serial
communication. Projects to illustrate basic machine structure and programming techniques.
CSCI C421 Computer Organization (3 cr.) P: CSCI C243, CSCI C335, PHYS P303. Principles of logic
design; addressing; central processing units; microprogrammed versus hardwired control; input-output organization,
interrupts; other topics chosen by the instructor.
CSCI C431 Assemblers and Compilers I (3 cr.) P: CSCI C311. Analysis and implementation of a
compiler for a high-level programming language. Relationship between regular languages, finite automata, lexical
analysis, and scanner generators such as lex. Relationship between context-free grammars, stack machines, parsers, and
parser generators such as yacc and llgen. Symbol tables and semantic analysis for translating declarations,
expressions, assignments, I/O, control structures, and subroutines. Large programming project.
CSCI C435 Operating Systems (4 cr.) P: CSCI C251, CSCI C308, CSCI C335. R: CSCI C311. Design and
implementation of operating systems: the process model, process synchronization, semaphores, deadlock management,
multi-tasking, multi-threading, interprocess communication, process scheduling, memory management, paging, segmentation,
virtual memory management, file system design and implementation, I/O device drivers, interrupt handlers and spoolers.
Students will complete the design and implementation of a simulated multi-tasking operating system.
CSCI C441 Information Organization and Retrieval (3 cr.) P: CSCI C243. Fundamental structures and
algorithms for the management of secondary storage devices: persistence; sharability; file and database organization;
fields; records; transactions; hardware concepts of storage devices; sequential, random, indexed, hashed, and B-tree
files; operations on files; search; sort; performance issues.
CSCI C442 Database Systems (3 cr.) P: CSCI C308. The fundamental concepts, theory, and practices in
the design and implementation of database management systems: data independence; data modeling; entity relationship
modeling; functional dependencies; normalization; relational, hierarchical, network, and object-oriented data models;
relational algebra; relational calculus; data definition and manipulation languages; recovery; concurrency; security;
integrity of data.
CSCI C455 Analysis of Algorithms (3 cr.) P: CSCI C251, MATH M209 or MATH M216, and
a course in probability. Mathematical analysis of time and space requirements for algorithms, using combinatorics,
recurrence relations, and elementary probability theory. Advanced graph algorithms. Tractable and intractable
problems.
CSCI C463 Artificial Intelligence (3 cr.) P: CSCI C251. R: CSCI C311. Techniques and principles of
artificial intelligence and implementations of some of these techniques. Various formalisms for representing knowledge,
and relationships of this to such tasks as inference, game playing, planning. and machine learning.
CSCI C481 Interactive Computer Graphics (3 cr.) P: CSCI C243 and MATH M301. Computer graphics
techniques. Introduction to graphics hardware and software. Two-dimensional graphics methods, transformations and
interactive methods. Three-dimensional graphics, transformations and viewing geometry. Three-dimensional object
modeling and interactive manipulation methods. Basic lighting and surface shading. Introduction to video and animation
methods.
CSCI C490 Seminar in Computer Science (1-3 cr.) P: Varies. Special topics in computer science. May
be repeated to earn a maximum of 6 credit hours.
CSCI P536 Advanced Operating Systems (3 cr.) P: CSCI C435. Advanced topics in operating systems,
such as: multi-tasking, synchronization mechanisms, distributed system architecture, client-server models, distributed
mutual exclusion and concurrency control, agreement protocols, load balancing, failure recovery, fault tolerance,
cryptography, multiprocessor operating systems.
CSCI P565 Software Engineering I (3 cr.) P: CSCI C308. Analysis, design and implementation of
software systems. Requirements specification: data and process modeling. Software design methodologies. Software
quality assurance: testing and verification. Software development processes.
CSCI Y398 Internship-Professional Practice (3 cr.) P: CSCI C308, CSCI C335 and one other CSCI course
above the level of CSCI C243. Enrollment requires that the student be accepted as a temporary employee of an
organization or business outside the university. The work must offer the student challenging computer experience in a
closely supervised position. The student will report weekly to the faculty member in charge. Prior approval of the
position is required.
CSCI Y790 Graduate Independent Study (1-6 cr.) Independent study under the direction of a faculty
member, culminating in a written report. May be repeated for credit. R grade not allowed. The different departmental
options for independent study are: research and reading, software system development, master's research project,
master's software project, and a university master's thesis.
‹‹ Back to Top
|