Undergraduate Computer Science Course Descriptions
CSCI 103
Survey of Computer Science
One Credit Hour
Required of all computer science majors before taking any course
beyond CSCI 202.
The computer is examined as a machine, problem-solving tool, and
information repository. An overview of the discipline of computer science is presented.
Students will receive hands-on experience with the computing facilities at The Citadel,
and they will learn how to research technical topics and present the results in written
and oral form.
CSCI 110
Microcomputer Applications
Three Credit Hours
Required for all business administration majors.
This course is intended for students having little or no computer experience.
An introduction to computer systems and computer applications is
presented in a Windows environment. Students learn to use software packages for
word processing, database management, spreadsheets, and communications, with
applications to management and social sciences.
CSCI 201
Introduction to Computer Science I
Four Credit Hours
Required of all mathematics and computer science majors.
No previous computer programming experience is needed for this
course.
An introduction to problem solving and algorithm development using
Java.
Topics include computer organization, operating systems,
structured programming, and program modularization. Assignments involve
designing, coding, debugging, and documenting computer programs.
Lecture: three hours; laboratory: two hours.
CSCI 202
Introduction to Computer Science II
Four Credit Hours
Prerequisite: CSCI 201 with a grade of “C” or higher;
prerequisite or corequisite: MATH 206.
Required for B. S. degree in computer science.
A continuation of the material covered in CSCI 201. This course
emphasizes object-oriented programming and a disciplined approach to program
development. Topics include data abstraction, recursion, inheritance,
polymorphism, linked data structures, stacks, and queues.
Lecture: Three hours; laboratory: two hours.
CSCI 216
Management Information Systems
Three Credit Hours
Prerequisite: Sophomore standing
Computer-oriented information systems. Program construction in
Visual Basic with applications in the management and social sciences is
presented in a microcomputer environment. Topics include data organization and
collection, file organization, sort and search techniques, database
construction, and manipulating data created in Microsoft Access using Visual
Basic.
CSCI 217
Web Resources and Design
Three Credit Hours
Prerequisite: Sophomore standing
This course provides an introduction to Internet features and web
page design. Topics will include finding and evaluating resources, legal issues
such as copyright, web design issues, HTML basics, and a brief description of
Java applets, JavaScript, and application development.
CSCI 223
Data Structures and Algorithms
Three Credit Hours
Prerequisites: CSCI 202 and MATH 206
Required for B. S. degree in computer science.
Formal specification and implementation of abstract data types,
and analysis of algorithms. Topics include list and set representation methods,
sorting, trees, and graphs. Data structures used include arrays, queues, binary
trees, hash tables, priority queues, search trees, balanced trees.
CSCI 305
Computer Organization and Programming
Three Credit Hours
Prerequisites: CSCI 202 and MATH 206
Required for B. S. degree in computer science.
An introduction to computer architecture and assembly language
programming. Relationship of the conventional machine level of a modern computer
system with its other layers. Topics are chosen from addressing; machine
instructions; I/O; subroutines; parameters; recursion; stacks; coroutines;
exceptions; interrupts; number systems and arithmetic; and the physical,
digital, and the microprogramming levels.
CSCI 317
Computer Networks and Internets
Three Credit Hours
Prerequisites: CSCI 223 and CSCI 305
Required for B. S. degree in computer science.
An introduction to data communications and computer networking.
Topics include LAN technologies, packet switching networks, internetworking of
heterogeneous network technologies, internetworking protocol suites (with
emphasis on TCP/IP), the client/server paradigm, the BSD Socket interface,
network security, and important network applications.
CSCI 320
Database Design
Three Credit Hours
Prerequisites: CSCI 202 or CSCI 216
Required for B. S. degree in computer science.
An introduction to the logical and physical structures of
computer database systems. Topics include data models, query languages, relational
database design, database constraints, and file structure. Students will be
required to complete a project involving database design and implementation.
CSCI 327
Computer Security
Three Credit Hours
Prerequisites: CSCI 202 and MATH 206
A survey of the principles and practices related to computer
security emphasizing the problems of security associated with computer networks. Topics
include cryptography, privacy, authentication, access control and authorization, security
policies, legal and ethical issues. A significant component of the course is the
investigation of attacks commonly used by computer criminals and strategies that can
be used to thwart the attacks.
CSCI 355
Programming Languages
Three Credit Hours
Prerequisite: CSCI 223; prerequisite or corequisite: CSCI 305
Required for B. S. degree in computer science.
Programming language concepts and constructs with emphasis on the
run-time behavior of programs. Topics include imperative, functional, logic and
object-oriented programming paradigms, language syntax and semantics, and
global properties of programming languages including scope, parameter passing,
storage allocation and the binding time of constituents.
CSCI 365
Object Oriented Programming Using C++
Three Credit Hours
Prerequisite: CSCI 223
This course provides a solid foundation for object-oriented
programming using the C++ programming language. It emphasizes the effective use
of the advanced language features, presented in the context of modern software
engineering themes of modularity, abstraction, information hiding, and
reusability. Fundamental principles of object-oriented design and programming
are stressed while covering the language details.
CSCI 375
Enterprise Java
Three Credit Hours
Prerequisite: CSCI 223
A project-oriented course that introduces advanced Java
technologies for building distributed enterprise and web applications. Topics
include threads, networking, security, JDBC, servlets, and JavaServer Pages (JSP).
CSCI 405
Operating Systems
Three Credit Hours
Prerequisites: CSCI 223 and CSCI 305
Required for B. S. degree in computer science.
An introduction to the concepts of modern operating system
design, the architectural features of modern computer systems, and a study of the
implementations of these components in actual operating systems. Topics include
data structures and algorithms to support process control, concurrency, and
scheduling; memory management, including virtual memory architectures; I/O and
file management; and networks and distributed systems.
CSCI 407
Computer Graphics
Three Credit Hours
Prerequisite: CSCI 223 and MATH 240
An introduction to the fundamental principles of two- and
three-dimensional computer graphics. Topics include graphics systems, transformations,
clipping, animation, lighting, shading, color, and hidden surface removal. Graphics
principles are applied and reinforced through the use of a modern graphics application
programming interface (API) to implement a series of programming projects.
CSCI 412
Compiler Design
Three Credit Hours
Prerequisite: CSCI 223 and CSCI 305
A study of the component operations of a compiler, including
lexical analysis, syntax analysis, scope analysis, and code generation, and a
discussion of related implementation issues. A significant part of the course
will be a project to develop a compiler for a simplified programming language.
CSCI 420
Software Engineering
Three Credit Hours
Prerequisite: CSCI 223
Required for B. S. degree in computer science.
An introduction to current techniques used in large-scale
software development. Topics include requirements analysis, functional specification,
systems design, implementation, testing, maintenance, project management, and
professional ethics.
CSCI 421
Software Engineering Practicum
Three Credit Hours
Prerequisite: CSCI 420
A team-based project class to apply software engineering practices
in a realistic environment. The purpose of the course is to give students an
opportunity to construct real-world software in a group using standard software
engineering practices.
CSCI 455
Artificial Intelligence
Three Credit Hours
Prerequisite: CSCI 355
A survey of artificial intelligence concepts, theory
and practice. Topics include AI languages, knowledge representation, search
strategies, logical and probabilistic reasoning, machine learning, natural language
processing, expert systems, computer vision and AI robotics. Students will implement
intelligent systems in software and/or hardware.
CSCI 490
Topics in Computer Science
Three Credit Hours
Prerequisite: Permission of the instructor.
Selected topics in computer science. The offering of this course
will depend upon the interest of the students, the availability of an instructor, and
approval of the department head. Since the content of the course may change, a student
may repeat the course for credit with the consent of the department head.
CSCI 491
Internship
Three Credit Hours
Prerequisite: Senior standing
Open to senior computer science majors with a CSCI
GPA of at least 2.500.
This course gives senior students real-world work experience to
complement the classroom education they have already received. Interns will
learn about the variety of issues involved in developing, implementing, and
managing computing resources in a real-world setting. Interns will spend ten to
twelve hours per week in an area business working alongside an experienced
computing professional or as part of a development team.
CSCI 495
Senior Seminar in Computer Science
Three Credit Hours
Required for B. S. degree in computer science. Open only to seniors.
Important topics in computer science will be studied in areas
ranging from theoretical computer science to social, professional, and ethical issues.
Students will be required to make oral and written presentations.
CSCI 499
Senior Research Project
Three Credit Hours
Prerequisite: Senior standing and approval of department head
Open to senior computer science majors with a CSCI
GPA of at least 2.500.
A research project with a required formal paper. Recommended
for students planning graduate work. Enrollment based upon a written proposal accepted
by the instructor and approved by the department head.
|