Apr 24, 2024  
2016-2017 Undergraduate Catalog (as of 03-10-17) 
    
2016-2017 Undergraduate Catalog (as of 03-10-17) [ARCHIVED CATALOG]

Course Descriptions


 

Computer Science

CSCI 200-Level or Above

All computer science majors must attain an overall GPA of at least 2.000 in all computer science courses taken at the 200 level or above.

  
  • CSCI 110 Computer Fluency (3)

    An introduction to computing providing the student with the ability to understand and use emerging technology effectively. Topics include, but are not limited to: how computers work, the ubiquity of computing, applications and operating systems software, cloud computing, the Internet and networks, and computing issues. Lectures three hours per week.
    Course Frequency: Fall and Spring
  
  • CSCI 112 Communications Technology and the Internet (3)

    An introduction to digital communications technology. Topics include networking concepts, Internet and intranet tools, protocols, and security. Also included are the infrastructure and governance of the Internet, with emphasis on personal, business, social, legal, and ethical implications. Lectures three hours per week.
    Course Frequency: Fall and Spring
  
  • CSCI 114 Electronic Publishing and Design (3)

    An investigation of electronic publishing, design theory and practice. Through the use of advanced application software skills, students will explore the tools of electronic communication, such as desktop publishing, website design, introductory graphics, and Internet resources. Lectures three hours per week.
    Course Frequency: Spring
  
  • CSCI 115 Website Design (3)

    A course that introduces the theory and the best current practices of Web page design, markup and presentation. Topics include the use of XHTML for information structure and CSS for presentation and style. The course will also cover HTML standards, XHTML forms, media types, layout and positioning, tables and lists and accessibility.
    Course Frequency: Fall and Spring
  
  • CSCI 120 Animation and Virtual Worlds (3)

    This course allows students to author on-screen movie animations and interactive games while learning the fundamentals of visual storytelling, lighting, and cameras using a 3D animation package. Students will learn to think algorithmically and abstractly while gaining an appreciation for the complexity of building software systems and a skill set for writing elegant code.
    Course Frequency: Fall
    Cross-listing: CITA 120  
  
  • CSCI 140 Graphic Design and Digital Media (3)

    A course introducing the creative side of computing in the context of applying graphic design principles in digital media. It emphasizes computer programming related to image processing. Students will produce raster and vector graphics, motion graphics, and interactive web applications while implementing the fundamental of graphic design.
    Course Frequency: Fall
    Cross-listing: CITA 140  
  
  • CSCI 180 Computers, Music and Art (3)

    A course introducing the creative side of computing in the context of music, sounds, images, and other digital artifacts. Emphasis will be given to computer programming for music making, live performance, and interaction. Students will develop several digital artifacts and elementary musical compositions.
    Course Frequency: Fall
    Cross-listing: CITA 180  
  
  • CSCI 199 Special Topics in Computing (3)

    A course focusing on selected topics from the beginning level of computer science. Such topics include basic networking concepts, scripting languages, and topical issues in computing. This course may be repeated for additional credit.
    Course Frequency: Occasional
    Repeatable: For up to 6 credit hours.
  
  • CSCI 215 Website Programming (3)

    A course teaching the design and development of interactive Web pages and client-side based Web programs using Rich Internet Applications (RIAs). Students will learn how to manage elements of a Web page using the Document Object Model (DOM), create and validate forms and communicate with Web servers using current Web technologies.
    Prerequisite(s): CSCI 115  or permission of the department chair
    Course Frequency: Fall and Spring
  
  • CSCI 220 Computer Programming I (3)

    An introduction to programming and problem solving. Topics include data types, variables, assignment, control structures (selection and iteration), lists, functions, classes, and an introduction to object-oriented programming. Lectures three hours per week.
    Prerequisite(s): CSCI 120  or CSCI 180  or CSCI 215  or MATH 105  or MATH 111  or higher math or permission of the department.
    Co-requisite(s): CSCI 220L  
    Course Frequency: Fall and Spring
  
  • CSCI 220L Programming I Laboratory (1)

    This course is designed to apply the concepts being covered in CSCI 220 . Exercises will be assigned each week within a structured setting. Laboratory three hours per week.
    Co-requisite(s) or Prerequisite(s): CSCI 220 .
    Course Frequency: Fall and Spring
  
  • CSCI 221 Computer Programming II (3)

    This course further develops object-oriented programming introduced in CSCI 220 . Topics include file input/output, inheritance and polymorphism, exceptions, error handling and algorithm analysis. Lectures three hours per week.
    Prerequisite(s): CSCI 220  with a grade of C- or better and CSCI 220L  with a grade of C- or better
    Co-requisite(s) or Prerequisite(s): MATH 207  
    Course Frequency: Fall and Spring
  
  • CSCI 230 Data Structures and Algorithms (3)

    This course reviews and develops the abstract data type as mathematical models. Data structures and algorithms are developed as the objects and operations of abstract data types. Topics include lists, stacks, queues, trees, graphs, searching, sorting, and analysis of the efficiency of algorithms. Lectures three hours per week.
    Prerequisite(s): CSCI 221  with a grade of C- or better and MATH 207 .
    Course Frequency: Fall and Spring
  
  • CSCI 250 Introduction to Computer Organization and Assembly Language Programming (3)

    An introduction to an assembly language and its implementation in hardware. Topics include the binary and hexadecimal numbering systems, the fetch-execute cycle, the components of the central processing unit, floating point processing, memory, the assembler, and the linker. Programming exercises are developed in the assembly language of a commonly available processor. Lectures three hours per week.
    Prerequisite(s): CSCI 220  with a grade of C- or better and CSCI 220L  with a grade of C- or better
    Co-requisite(s) or Prerequisite(s): MATH 207 .
    Course Frequency: Fall and Spring
  
  • CSCI 280 Game Programming (3)

    A course introducing principles of game programming, including computer modeling, data visualization and animations, media transformations, and video game ethics. Students will be exposed to several game engines, a scripting language, and develop at least one game.
    Prerequisite(s): CSCI 120  or CSCI 180 , CSCI 220  with a grade of C- or better, or permission of the instructor
    Course Frequency: Spring
    Cross-listing: CITA 280  
  
  • CSCI 299 Special Topics in Computer Science (3)

    A course focusing on a selected topic from the intermediate level of computer science. Such topics include languages not otherwise taught in the computer science curriculum, software and hardware interfacing, system usage, and specific applications programs. This course may be repeated for additional credit.
    Prerequisite(s): CSCI 220  with a grade of C- or better and CSCI 220L  with a grade of C- or better
    Course Frequency: Occasional
    Repeatable: May be repeated for credit when course content varies.
  
  • CSCI 310 Advanced Algorithms (3)

    A course that covers algorithms, focusing on computational complexity, approximation, classification, and optimization. Algorithms covered include evolutionary and genetic algorithms, gradient descent techniques, discrete optimization, branch-and-bound, dynamic and stochastic programming, combinatorial optimization and approximation algorithms.
    Prerequisite(s): CSCI 230  with a grade of C- or better and MATH 207 .
    Course Frequency: Fall
  
  • CSCI 315 Server-Side Web Programming (3)

    This course focuses on service-side web development using current technologies. The course balances conceptual topics with practical skills for designing, implementing, and modeling web services and data structures. Students learn key technologies and the roles they play in distributed computing. Topics include: serialization, service-side databases, and security issues.
    Prerequisite(s): CSCI 215  and CSCI 221  
    Course Frequency: Fall
  
  • CSCI 320 Programming Language Concepts (3)

    This course introduces the formal study of programming language specifications and develops an understanding of the structure and run-time organization of imperative programming languages. Topics include data types, control structures, functional programming, logic programming, procedure mechanisms, and data abstraction. Lectures three hours per week.
    Prerequisite(s): CSCI 230  with a grade of C- or better and MATH 207 .
    Course Frequency: Fall and Spring
  
  • CSCI 325 Functional and Logic Programming (3)

    This course introduces various approaches to declarative (non-procedural) programming languages. Topics include mathematical functions and the lambda calculus; functional programming; sentential and predicate logic; and logic programming. Lectures three hours per week.
    Prerequisite(s): CSCI 221  with a grade of C- or better and MATH 207  
    Course Frequency: Occasional
  
  • CSCI 332 Database Concepts (3)

    A course that introduces the student to the basic concepts, organization and implementation models of databases, with an emphasis on the relational model. Among the topics covered are data models, query languages, relational database design using normal forms and database programming, and information assurance and security. Problems will be assigned using a relational DBMS and SQL. Lectures three hours per week.
    Prerequisite(s): CSCI 221  with a grade of C- or better and MATH 207 .
    Course Frequency: Fall and Spring
  
  • CSCI 334 Data Mining (3)

    A course covering data mining concepts, methodologies, and programming. Topics include decision tables and trees, classification and association rules, clustering, pattern analysis, and linear and statistical modeling. Additional topics may include data cleaning and warehousing and techniques for text and web mining.
    Prerequisite(s): CSCI 221  with a grade of C- or better, MATH 207 , and MATH 250 .
    Course Frequency: Spring
  
  • CSCI 340 Operating Systems (3)

    The course will introduce operating systems principles with an emphasis on multiprogramming systems. Among the concept areas covered are real and virtual storage management, processor management, process synchronization and communication, IO management, and file management. Lectures three hours per week.
    Prerequisite(s): CSCI 230  with a grade of C- or better, CSCI 250  with a grade of C- or better, and MATH 207 .
    Course Frequency: Fall and Spring
  
  • CSCI 350 Digital Logic and Computer Organization (3)

    A course designed to introduce the student to the basic principles of digital-logic design. Topics covered will include Boolean algebra and gate networks, flip-flops and logic design, the arithmetic-logic unit, memory units, input-output devices and interfacing, control units, and digital circuits. Lectures three hours per week.
    Prerequisite(s): CSCI 250  with a grade of C- or better
    Co-requisite(s) or Prerequisite(s): MATH 307  
    Course Frequency: Spring
  
  • CSCI 360 Software Architecture and Design (3)

    This course covers the object-oriented analysis and design of software. Topics include the unified modeling-language, domain modeling, software architecture, design processes, principles, heuristics, and patterns. Student teams analyze, design, and implement a software system. Related ethical issues are explored. Lectures three hours per week.
    Prerequisite(s): CSCI 230  with a grade of C- or better
    Co-requisite(s) or Prerequisite(s): COMM 104  
    Course Frequency: Fall and Spring
  
  • CSCI 362 Software Engineering (3)

    This course examines the discipline and practice of software engineering, providing historical and contemporary views, while examining software development process models with emphasis on the pertinent roles, activities, and artifacts present at each stage of development. Related ethical issues are explored. Lectures three hours per week.
    Prerequisite(s): CSCI 230  with a grade of C- or better
    Course Frequency: Fall
  
  • CSCI 380 User Interface Development (3)

    Introduction to human-computer interaction and user interface development. Topics include human factors of interactive software, interactive styles, design principles and considerations, development methods and tools, interface quality, and evaluation methods. Stresses the importance of good interfaces and the relationship of user interface design to human-computer interaction. Lectures three hours per week.
    Prerequisite(s): CSCI 221  with a grade of C- or better
    Co-requisite(s) or Prerequisite(s): MATH 207  
    Course Frequency: Fall
  
  • CSCI 392 Seminar on Computing and Society (3)

    A seminar course to prepare majors for careers in CS by discussing and studying professional, ethical, legal, and social issues and responsibilities in computing. Local and global impact of computing on individuals, organizations, and society will also be addressed. Oral presentations and written work will be required.
    Prerequisite(s): CSCI 221  with a grade of C- or better
    Course Frequency: Fall and Spring
  
  • CSCI 397 Research Experience in Computer Science (0)

    A student works under faculty supervision to learn a research method, to explore possible research topics, or to continue an ongoing study. The faculty member helps the student to determine the course goals and objectives, and supervises the execution of the project. The student will provide a written report to the faculty at the end of the semester. Students will receive a grade of “S” (satisfactory) or “U” (unsatisfactory) for the course.
    Prerequisite(s): Only majors may take a Zero Credit Research course. Permission of the instructor and approval of the department chair.
    Course Frequency: Occasional
  
  • CSCI 399 Tutorial (3)

    Individual instruction given by a tutor in regularly scheduled meetings (usually once a week).
    Prerequisite(s): Junior standing plus permission of the tutor and the department chair.
    Course Frequency: Occasional
    Repeatable: For up to 12 credit hours.
  
  • CSCI 410 Automata and Formal Languages (3)

    Topics to include finite automata and regular expressions, pushdown automata and context-free grammars, the Chomsky hierarchy, Turing machines, undecidability and computational complexity. Lectures three hours per week.
    Prerequisite(s): MATH 307 .
    Course Frequency: Occasional
  
  • CSCI 420 Principles of Compiler Design (3)

    A course in the formal treatment of programming language translation and compiler design concepts. Topics include scanners, parsers, and translation. Lectures three hours per week.
    Prerequisite(s): CSCI 320  and MATH 307  
    Course Frequency: Occasional
  
  • CSCI 432 Concepts of Database Implementation (3)

    A course to study aspects of the implementation of some of the concepts from CSCI 332 . Topics include file organization on secondary storage devices, buffer management, B-trees, hash tables, join algorithms and query from an advanced standpoint: device management, physical database design, query processing, and optimization. Lectures three hours per week.
    Prerequisite(s): CSCI 332  and MATH 307 .
    Course Frequency: Occasional
  
  • CSCI 440 Computer Networks (3)

    An introduction to networking theory and practice. Topics include transmission media and modulation; error detection; protocols - particularly TCP/ IP; packet switching and circuit switching; physical, data link, network, transport, and application layers; LANs and WANs; network topologies; internetworking and the Internet; queuing theory and mathematical analysis of networks.
    Prerequisite(s): CSCI 340 , MATH 250 , and MATH 307 .
    Course Frequency: Occasional
  
  • CSCI 450 Architecture of Advanced Computer Systems (3)

    A course designed to introduce the student to the basic principles behind the architecture of high-speed computer systems. Topics to be covered include performance and cost measures for computer systems, memory-hierarchy design, pipeline techniques, vector processor architectures, and parallel algorithms. Lectures three hours per week.
    Prerequisite(s): CSCI 340  or CSCI 350 .
    Course Frequency: Occasional
  
  • CSCI 459 Service-Oriented Computing (3)

    This course explores both Service-Oriented Architecture (SOA) and Business Process Management (BPM) enterprise software layers. Students will learn how business and IT concerns can be aligned. Students gain experience with service-oriented software development, process modeling and execution, and securing services.
    Prerequisite(s): CSCI 221 , CSCI 230  or CSCI 315  
    Course Frequency: Spring
  
  • CSCI 462 Software Engineering Practicum (3)

    This course provides hands-on experience in the practice of group-based software development. Student teams utilize development tools and techniques to implement software solutions to moderately complex problems. This project-based component provides a framework in which students gain both understanding and insight into the application of software engineering principles. Lectures three hours per week.
    Prerequisite(s): Senior standing, COMM 104 , CSCI 230  with a grade of C- or better and either CSCI 360  or CSCI 362  
    Course Frequency: Spring
  
  • CSCI 470 Principles of Artificial Intelligence (3)

    A course introducing fundamental techniques for artificial intelligence. Among topics covered are heuristic search, knowledge representation, intelligent agents, reasoning, neural networks, genetic algorithms, and artificial intelligence programming. Additional topics may include Bayesian networks, natural language processing, machine learning, rule-based systems, robotics, and data science.
    Prerequisite(s): CSCI 230  with a grade of C- or better
    Course Frequency: Spring
  
  • CSCI 480 Principles of Computer Graphics (3)

    An introduction to the fundamental principles of computer graphics. Among the topics covered are graphics hardware, 2-D graphics (including line and circle drawing, transformations, windows, viewports and clipping), 3-D perspective graphics, back-face removal, one or more hidden-surface graphics and simple light models. Lectures three hours per week.
    Prerequisite(s): CSCI 230  with a grade of C- or better and MATH 120  or MATH 105  
    Course Frequency: Occasional
  
  • CSCI 490 Special Topics (3)

    An intensive investigation of an area of current interest in computer science. Examples of special topics include: Image Processing; Systems Programming; Computability; Design Patterns. Lectures three hours per week.
    Prerequisite(s): Permission of the instructor.
    Course Frequency: Occasional
    Repeatable: May be repeated for credit when course content varies.
  
  • CSCI 499 Bachelor’s Essay (6)

    A year-long research and writing project done during the senior year under the close supervision of a tutor from the department. The student must take the initiative in seeking a tutor to help in both the design and the supervision of the project. A project proposal must be submitted in writing and approved by the department prior to registration for the course.
    Course Frequency: Occasional

Computing in the Arts

  
  • CITA 120 Animation and Virtual Worlds (3)

    This course allows students to author on-screen movie animations and interactive games while learning the fundamentals of visual storytelling, lighting, and cameras using a 3D animation package. Students will learn to think algorithmically and abstractly while gaining an appreciation for the complexity of building software systems and a skill set for writing elegant code.
    Course Frequency: Fall
    Cross-listing: CSCI 120  
  
  • CITA 140 Graphic Design and Digital Media (3)

    A course introducing the creative side of computing in the context of applying graphic design principles in digital media. It emphasizes computer programming related to image processing. Students will produce raster and vector graphics, motion graphics, and interactive web applications while implementing the fundamental of graphic design.
    Course Frequency: Fall
    Cross-listing: CSCI 140  
  
  • CITA 180 Computers, Music, and Art (3)

    A course introducing the creative side of computing in the context of music, sounds, images, and other digital artifacts. Emphasis will be given to computer programming for music making, live performance, and interaction. Students will develop several digital artifacts and elementary musical compositions.
    Course Frequency: Fall
    Cross-listing: CSCI 180  
  
  • CITA 280 Game Programming (3)

    A course introducing principles of game programming, including computer modeling, data visualization and animations, media transformations, and video game ethics. Students will be exposed to several game engines, a scripting language, and develop at least one game.
    Prerequisite(s): CITA 120  or CITA 180 , CSCI 220  with a grade of C- or better, or permission of the instructor.
    Course Frequency: Spring
    Cross-listing: CSCI 280  
  
  • CITA 395 CITA Seminar (3)

    A seminar course to develop a proposal for the capstone project that synthesizes creativity in the arts with the tools and conceptual modeling systems of computing. Through readings, discussion, and writing, students will explore using computational tools/techniques to achieve an artistic vision, or develop new tools/techniques to assist the creative process.
    Prerequisite(s): Declared CITA major, CSCI 280 /CITA 280 , CSCI 221  with a grade of C- or better, 9 hours in an art concentration.
    Course Frequency: Fall
  
  • CITA 495 Capstone Practicum (3)

    A capstone course to provide a synthesizing experience for CITA majors across all concentrations. Students will read and analyze the latest research in the expanding field of computing in the arts, and will develop individual software projects integrating computing in the arts.
    Prerequisite(s): Senior standing, declared CITA major, CITA 395 , CSCI 230  with a grade of C- or better
    Course Frequency: Spring

Data Science

  
  • DATA 495 Data Science Capstone (3)

    A capstone course for the application of knowledge discovery and data mining tools and techniques to large data repositories or data streams. This project based course provides students with a framework in which students gain both understanding and insight into the application of knowledge discovery tools and principles on data within the student’s cognate area. This course is intended only for data science majors.
    Prerequisite(s): DATA 210   
    Co-requisite(s) or Prerequisite(s): CSCI 470  and MATH 441  
    Course Frequency: Spring

Mathematics

Before enrolling in a mathematics course, all entering students are required to take the ALEKS Math Placement Test, regardless of coursework completed at another institution or IB or AP credit earned. Entering students are encouraged to consult with their major academic advisor, the Academic Advising and Planning Center, or a member of the Department of Mathematics.

  
  • MATH 451 Linear Programming and Optimization (3)

    This course provides an introduction to deterministic models in operations research. Topics include linear programming, network analysis, dynamic programming, and game theory.
    Prerequisite(s): MATH 203 , MATH 221 , and CSCI 220  or MATH 245 , or permission of the instructor.
    Course Frequency: Fall
    Cross-listing: MATH 551
  
  • MATH 452 Operations Research (3)

    This course provides an introduction to probabilistic models in operations research. Topics include queueing theory, applications of Markov chains, simulation, integer programming and nonlinear programming.
    Prerequisite(s): MATH 203  and MATH 221 , and either CSCI 220  or MATH 245 .
    Course Frequency: Spring
    Cross-listing: MATH 552
  
  • MATH 470 Mathematical Modeling (3)

    An introduction to the theory and practice of building and studying mathematical models encountered in the physical, social, life, and management sciences. The course will discuss discrete, continuous, and probabilistic models. Topics may include iterated maps, population models, phase space analysis of dynamical systems, stability of solutions, bifurcations, chaos, random simulations, data analysis, Markov chains, game theory, graph theory, and voting theory.
    Prerequisite(s): MATH 203  and MATH 323 , and either MATH 246  or CSCI 220 , or permission of the instructor. MATH 430  is recommended.
    Course Frequency: Spring
  
  • MATH 475 Statistical Consulting (3)

    This course provides statistics students with the opportunity to apply statistical methods of data analysis to practical problems coming from actual clients, both students and professors from other disciplines as well as business and industry clients from the Charleston area.
    Prerequisite(s): MATH 350  and one of the following: MATH 440 , MATH 441 , MATH 451 , MATH 452 , or CSCI 334 .
    Course Frequency: Occasional