 |
Computer
Science Catalog
Course Descriptions
Lower
Division Courses
CSCI 105:
Computing and Society (3). Ethical, social, legal, and economic issues
as they relate to the computer science profession; ethical theory;
history of computing; impact of computers on society; computer
professional's code of ethics; information privacy; information
reliability; computer laws, crimes, and punishments; intellectual
property; ethical concerns relating from emerging technologies.
CSCI
110:
Human-Computer Interaction (3). A SLU2000 freshman seminar.
Prerequisite: Three years high school math. Introduction to the design,
implementation, and
evaluation of software user interfaces. Development of web-based
multimedia applications using HTML and JavaScript. Security and
encryption issues. Internationalization and localization. Offered occasionally.
CSCI 111:
Introduction to Computer Programming with Fortran 90 (3). Prerequisite:
MATH 120 or equivalent. Use of computers as problem-solving tools;
construction and implementation of algorithms in the FORTRAN
programming language; decision structures, loops, arrays, and modular,
structured programming techniques. Assignments cover a range of
scientific and engineering applications. Credit will
not be given for both CSCI 111 and CSCI 145 or CSCI 150. Spring
semester.
CSCI 112:
Web Development (3). Prerequisite:
MATH 120 or equivalent. Teaches students some fundamental Web development and computer programming skills. Covers basics of Web page design with HTML and JavaScript computer languages.
CSCI 140:
Introduction
to Computer Science (3). A SLU2000 freshman seminar.
Prerequisite: Three years high school math. A broad survey of
the
computer science discipline, focusing on the
computer's role in representing, storing, manipulating, organizing and
communicating information. Topics include hardware, software,
algorithms, operating systems, networks. Note: this class may be taken
concurrently with CSCI 150.
CSCI 145:
Scientific
Programming (3). Corequisite: MT A142 or MT A132. Elementary
computer programming concepts with an emphasis on problem
solving and applications to scientific and engineering
applications. Topics include data acquisition and analysis,
simulation and scientific visualization. Credit not given for
both CSCI 145 and CSCI 150. Both semesters.
CSCI 146: Object
Oriented Practicum (1). Prerequisite: CSCI 145 or equivalent.
Labs and lectures in object oriented programming to supplement
knowledge gained in CSCI 145 for students wishing to continue on
to CSCI 180, who have not taken CSCI 150. Offered on an
as-needed basis.
CSCI 150: Introduction to Object Oriented
Programming (4). Prerequisite: MATH 120 or equivalent. An
introduction to computer programming based upon early coverage of
object-oriented principles such as classes, methods, inheritance and
polymorphism, together with treatment of traditional flow of control
structures. Good software development practices will also be
established, including issues of design, documentation, and testing.
Both semesters.
CSCI 167 Statistics and Computers (3). Prerequisite:
MATH 120 or the equivalent. Introduction to data analysis and
hypothesis
testing. Distributions, sampling, estimation, confidence intervals.
T-test, analysis of variance, correlation and regression. Crosstables
and Chi-square. Use of a statistical package such as SAS, the
Statistical Analysis System. Spring semester.
CSCI 180: Data
Structures (4). Prerequisites: CSCI 146
or CSCI 150; CSCI 140 or MATH 135 or MATH 266. The design, implementation and use of data structures. Principles of
abstraction, encapsulation and modularity to guide in the creation of
robust, adaptable, reusable and efficient structures. Specific data
types to include stacks, queues, lists, priority queues, dictionaries,
trees and graphs.
CSCI 214: Advanced
Data Structures and Algorithms (3) Prerequisite CSCI 180.
Advanced data structures and object-oriented design. Advanced topics in
searching and sorting; trees, heaps, graphs; algorithm and complexity
analysis; advanced file processing and principles of databases. Fall
Semester.
CSCI 224: Computer
Architecture (3). Prerequisite: CSCI 146 or CSCI 150; CSCI 140 or MATH
135
or MATH 266. Introduction to the organization and architecture of
computer systems, including aspects of digital logic, data
representation, assembly level organization, memory systems and
processor architectures. Spring semester.
CSCI 290: Object Oriented Software Design (3).
Prerequisite: CSCI 180. An implementation-based study of
object-oriented software
development. Teams will design and create medium-scale applications.
Additional focus on the design and use of large object-oriented
libraries, as well as social and professional issues.
CSCI 293: Special Topics (1-4).
CSCI 298: Independent Study (0-3) Prior
approval of sponsoring professor and chairperson required.
Upper
Division Courses
CSCI 305:
Microprocessors (3).
Prerequisite. CSCI 150 or CSCI 145. Corequisite: CSCI 306. Review of
number
systems.
Microprocessor/ microcomputer structure, input/output. Signals and
devices. Computer arithmetic, programming, interfacing and data
acquisition. Fall semester. Crosslisted as EE-P305.
CSCI 306:
Microprocessors Laboratory (1).
Corequisite: CSCI 305. Laboratory experiments to emphasize material
covered in CSCI 305. Fall semester.Crosslisted with EE-P306.
CSCI
314:
Algorithms (3). Prerequisite: CSCI 180, MATH 143. Introduction to
analysis and complexity
of
algorithms. Big-O notation. Running time analysis of algorithms for
traversing graphs and trees, searching and sorting. Recursive versus
iterative algorithms. Complexity, completeness, computability.
Spring semester.
CSCI 324:
Operating Systems (3).
Prerequisites: CSCI 180 and CSCI 224 or EE-P311. Theory and practice of
operating systems, with emphasis on one of the UNIX family of operating
systems. Process management and scheduling; threads and
synchronization; memory management and virtual memory; file systems;
network protocols; client-server systems. Fall semester.
CSCI 327
Compilers (3). Prerequisite: CSCI 180 and CSCI 224 or EE-P311.
Introduction to the theory and techniques of compiler design: lexical
analysis, finite state automata, context-free grammas, top-down and
bottom-up parsing, syntax analysis, code generation. Other important
issues such as optimization, type-checking, and garbage collection will
be discussed. Offered occasionally.
CSCI 334: Network Programming (3).
Prerequisite: CSCI 324. Transmission media; packets, frames and
error-detection; LAN and WAN technologies; routing; Internet
architecture and protocols; network performance; host computers;
routers; protocol layers; internet protocol addresses; datagrams;
encapsulation; fragmentation; reassembly; Internet Control Message
Protocol; network security and legal issues. Spring semesters.
CSCI 344:
Programming Languages (3) Prerequisite: CSCI 290. Overview of
programming languages: procedural and functional languages. Exposure to
functional languages. Analysis of solution strategies to variable
binding and function calls. Problem solving paradigms and linguistic
issues.
CSCI 357: Computer Graphics (3). Prerequisite:
MATH 244 or linear algebra, CSCI 180. Applications and implementation
of
computer graphics, algorithms and mathematics for creating two and
three dimensional figures, animations and two and three dimensional
transformations, interaction, windowing, viewing, and perspective
techniques, lighting, coding using the graphics library
OpenGL. Spring semester.
CSCI
371
Databases (3). Prerequisite: CSCI 180. Fundamentals of Database
systems: the relational model, file organization and indexes,
relational algebra, structured query language, the entity relationship
model, normalization, object databases. Fall semester.
CSCI 386: Internship
with Industry
(0-3). Department permission required.
CSCI
390: Software
Engineering
(3).
Prerequisite: CSCI 290. Theory and practice of software engineering.
Design and implementation of software systems. Levels of abstraction as
a technique in program design. Organized around major group programming
projects. Spring semester.
CSCI 393: Special Topics (1-4).
CSCI 398: Independent Study (0-3) Prior
approval of sponsoring professor and chairperson required.
CSCI
413:
Automata (3). Prerequisite: CSCI 180. The theory of automata and finite
state
machines. Regular
languages and automata. Algebraic coding theory and shift registers.
Algebraic machine theory. Offered occasionally.
CSCI 425 Advanced Operating Systems
(3). Prerequisite: CSCI 324. Parallel processes; processor
problems; linear address space and tree structured spaces of objects;
resource allocation, queuing and network control policies; system
balancing and thrashing; job allocation and process scheduling;
multiprogramming systems; protection mechanisms for accessing jobs;
pipelining and parallelism; distributed systems. Offered occasionally.
CSCI 434: Network
Programming II (3). Prerequisite: CSCI 334. Client-server
interactions;
socket interface; Domain Name Systems; e-mail representation and
transfer; file transfer and remote file access; security and legal
aspects of network management; web-servers and technologies; CGI and
Java technologies. Offered occasionally.
CSCI 462: Artificial Intelligence
(3) Prerequisite CSCI 180. Techniques of knowledge representation,
including artificial neural networks and object-attribute-value
triples; methods of inference; pattern matching techniques; inexact
reasoning and fuzzy logic techniques; introduction to exert systems;
advanced search techniques; individual AI projects. Offered occasionally.
CSCI 485: Co-op with Industry (0).
Given for industry experience when CSCI 486 has already been
taken.
CSCI 486: Internship with Industry
(0-3). Chairperson permission required.
CSCI 490: Senior
Design Project (3). For students in the Parks BS track. Prerequisite:
Senior status in computer
science. Semester-long computer science design projects by teams
selected to cover as many areas of computer science as possible;
documentations and formal presentations are required.
CSCI 491: Capstone Project (3).
Prerequisite: Senior Computer Science major; All required 200 level CS
courses and six additional hours of computer science. Some projects may
have more specific prerequisites. Either a research project or a design
project. Public presentation of the project required.
CSCI 493: Special Topics (1-4).
CSCI 495: Senior Residency (0). Required
for graduating seniors.
CSCI 498: Advanced Independent Study (0-6).
Prior permission of sponsoring professor and chairperson required.


|