Citadel Logo
Department of Mathematics
and Computer Science
   
Home

Academic
Programs


Courses

Student
Links


Faculty
Links


Faculty
Directory


Department
News


Search

Citadel
Home




Valid HTML 4.01!

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.