COMPUTER SCIENCE: 2005-2006

Professors: R. M. Geist III, S. M. Hedetniemi, S. T. Hedetniemi, D. P. Jacobs, P. K. Srimani, Chair; J. M. Westall, Jr.; Associate Professors: A. T. Duchowski, W. Goddard, H. C. Grossman, A. W. Madison, B. A. Malloy, J. D. McGregor, R. P. Pargas, M. Sitaraman, M. K. Smotherman, D. E. Stevenson; Assistant Professors: T. A. Davis, J. O. Hallstrom, J. J. Martin, Z. Wang, M. C. Weigle; Lecturers: C. Hochrine, J. H. Jones, R. S. Lambert, R. M. Lowe, C. F. Pellerin, P. D. Sterling


CP SC 101, H101 Computer Science I 4(3,2) Introduction to modern problem solving and programming methods. Special emphasis is placed on algorithm development and software life cycle concepts. Includes use of appropriate tools and discusses ethical issues arising from the impact of computing upon society. Intended for students concentrating in computer science or related fields. Preq: MTHSC 105 or satisfactory score on the Clemson Mathematics Placement Test or consent of instructor.

CP SC 102, H102 Computer Science II 4(3,2) Continuation of CP SC 101. Continued emphasis on problem solving and program development techniques. Typical numerical, nonnumerical, and data processing problems are examined. Basic data structures are introduced. Credit may not be received for both CP SC 102 and 210. Preq: CP SC 101 with a C or better.

CP SC 104 Introduction to the Concepts and Logic of Computer Programming 2(1,2) Introduction to the concepts and logic of computer programming. Simple models are used to introduce basic techniques for developing a programmed solution to a given problem. Problem solving techniques are considered. Not open to students who have received credit for CP SC 101, 111, 157, or 210.

CP SC 110, H110 Elementary Computer Programming 3(3,0) Introduction to computer programming and its use in solving problems, intended primarily for technical majors. Basic instruction in programming techniques is combined with tools use and discussions of ethical issues arising from the impact of computing on society.

CP SC 111 Elementary Computer Programming in C/C++ 3(2,2) Introduction to computer programming in C/C++ and its use in solving problems. Intended primarily for technical majors. Basic instruction in programming techniques is combined with tools use and discussions of ethical issues arising from the impact of computing on society.

CP SC 120 Introduction to Information Technology 3(2,2) Investigation of ethical and societal issues based on the expanding integration of computers into our everyday lives. Historical background, terminology, new technologies and the projected future of computers are considered. Practical experience with common computer software technologies is included. Will not satisfy computer science requirements in any computer science major.

CP SC 157 Introduction to C Programming 2(2,0) Introduction to basic programming techniques. The C programming language is used.

CP SC 161 Introduction to Visual Basic Programming 3(2,2) Introduction to programming using the Visual Basic language. Topics include simple and complex data types, arithmetic operations, control flow, files, and database programming. Several projects are implemented during the semester.

CP SC 210 Programming Methodology 4(3,2) Introduction to programming techniques and methodology. Topics include structured programming, stepwise refinement, program design and implementation techniques, modularization criteria, program testing and verification, basic data structures, and analysis of algorithms. Credit may not be received for both CP SC 102 and 210. Preq: CP SC 111 or equivalent; satisfactory performance on a pretest.

CP SC 212 Algorithms and Data Structures 4(3,2) Study of data structures and algorithms fundamental to computer science; abstract data-type concepts; measures of program running time and time complexity; algorithm analysis and design techniques. Credit may not be received for both CP SC 212 and 340. Preq: CP SC 102 or 210 with a C or better.

CP SC 215 Tools and Techniques for Software Development 3(2,2) Intensive course on software development using an imperative language. Topics include typical program development tools such as debuggers and "make" files, software development and testing techniques such as separate module development and testing, pointers and explicit heap management, and low-level file I/O. Preq: CP SC 102 or 210 with a C or better.

CP SC 220 Microcomputer Applications 3(3,0) Applications of microcomputers to formulate and solve problem models. Emphasis is placed on applications development in database and spreadsheet environments. Current software products are used. Preq: CP SC 120 or MGT 218 or equivalent.

CP SC 221 Introduction to a Computer Science Language 1(0,2) Introduction to the systems programming environment; languages and interfaces for programming operating systems tasks; use of the C programming language and UNIX operating system. Preq: CP SC 102 or 210 with a C or better.

CP SC 231 Introduction to Computer Organization 4(3,2) Study of the machine architectures on which algorithms are implemented; requirements of architectures that support high-level languages, programming environments, and applications. Preq: CP SC 102 or 210 with a C or better.

CP SC 281 Selected Topics in Computer Science 1-4(0-3,0-6) Areas of computer science in which new trends arise. Innovative approaches to a variety of problems in the use and understanding of basic computing concepts are developed and implemented. May be repeated for a maximum of eight credits, but only if different topics are covered. Preq: Consent of instructor.

CP SC 291 Seminar in Professional Issues I 1(1,0) Impact of computer use on society is considered. Ethical use of software and protection of intellectual property rights are discussed. The profession is viewed historically; organizations important to the profession are discussed; the development process for standards is presented; and students are introduced to the professional literature. Preq: CP SC 102 or 210, or consent of instructor.

CP SC 322 Introduction to Operating Systems 3(3,0) Detailed study of the management techniques for the control of computer hardware resources. Topics include interrupt systems, primitive level characteristics of hardware and the management of memory, processor, devices, and data. Credit may not be received for both CP SC 322 and 332. Preq: CP SC 215, 231 with a C or better.

CP SC 330 Computer Systems Organization 3(3,0) Introduction to the structure of computer systems. Various hardware/software configurations are explored and presented as integrated systems. Topics include digital logic, basic computer organization, computer arithmetic, memory organization, input/output organizations, interrupt processing, multiprocessors, and cluster computers. Preq: CP SC 212, 215, 231 with a C or better.

CP SC 332 Computer Systems 3(3,0) Introduction to design, integration, and use of hardware and software components in standard computer systems. Emphasis is on computer organization at the component level, interfacing, basic operating system functions, and system utilities. Credit may not be received for both CP SC 322 and 332. Preq: CP SC 212, 215, 231 with a C or better.

CP SC 340 Algorithms and Data Structures 3(3,0) Basic concepts of data structures such as queues, stacks, and lists; methods of proof as they relate to program verification; sets, functions, and relations as they relate to the analysis of algorithms. Includes the study of algorithms, time complexity, and design techniques. Credit may not be received for both CP SC 212 and 340. Preq: CP SC 102 or 210.

CP SC 350 Foundations of Computer Science 3(3,0) Development of the theoretical fundations of programming, algorithms, languages, automata, computability, complexity, data structures, and operating systems; a broad range of fundamental topics is consolidated and extended in preparation for further study. Preq: CP SC 212 and MTHSC 119 with a C or better.

CP SC 360 Networks and Network Programming 3(3,0) Introduction to basic concepts of computer network technologies and network programming. Topics include network programming, layered protocol architectures, local and wide area networks, internetwork and intranetwork concepts, security. Socket level programming is introduced and used throughout the course. Preq: CP SC 212, 215 with a C or better.

CP SC 361 Data Management Systems Laboratory 1(0,2) Introduction to mainframe environments typical of large-scale data processing applications; programming languages, control languages, and file utilities; use of COBOL language and IBM JCL. Preq: CP SC 102 or 210; or equivalent. Coreq: CP SC 360.

CP SC 362 Distributed and Cluster Computing 3(3,0) Introduction to the basic technology of and programming techniques for distributed and cluster computing. Standard techniques for developing parallel solutions to problems are introduced and implemented. Software systems that provide high-level abstractions for data communications are considered. Preq: CP SC 360 with a C or better.

CP SC 371 Systems Analysis 3(3,0) Incorporates a study of the decision-making process at all levels with the logical design of information systems. Extensive study of the system life cycle with emphasis on current as well as classical techniques for describing data flows, data structures, file design, etc. Preq: CP SC 360.

CP SC 372 Introduction to Software Development 3(3,0) Techniques and issues in software design and development; tools, methodologies, and environments for effective design, development, and testing of software; organizing and managing the development of software projects. Preq: CP SC 212 and 215 with a C or better.

CP SC H395 Honors Seminar 1(1,0) Research topics in various areas of computer science are presented. Methods for identifying and initiating research projects in various areas of computer science are considered. May be repeated for a maximum of two credits. Preq: Admission to Departmental Honors Program.

CP SC 405, 605 Introduction to Graphical Systems Design 3(3,0) Principles, computational techniques, and design concepts needed for designing systems for effective graphical displays. Preq: CP SC 212, 215, MTHSC 108, 311 with a C or better.

CP SC 411, 611 Virtual Reality Systems 3(3,0) Design and implementation of software systems necessary to create virtual environments. Techniques for achieving real-time, dynamic display of photorealistic, synthetic images are discussed. Includes hands-on experience with electromagnetically-tracked, head-mounted displays and requires, as a final project, the design and construction of a virtual environment. Preq: CP SC 405 with a C or better.

CP SC 412, 612 Eye Tracking Methodology and Applications 3(3,0) Introduction to the human visual system; visual perception; eye movements; eye tracking systems and applications in psychology, industrial engineering, marketing, and computer science; hands-on experience with real time, corneal-reflection eye trackers, experimental issues. Final project requires the execution and analysis of an eye tracking experiment. Preq: CP SC 360, MKT 431, or PSYCH 310.

CP SC 414, 614 Human and Computer Interaction 3(3,0) Survey of human and computer interaction, its literature, history, and techniques. Covers cognitive and social models and limitations, hardware, and software interface components, design methods, support for design, and evaluation methods. Preq: CP SC 212 and 215 with a C or better, or equivalent.

CP SC 424, 634 System Administration and Security 3(3,0) Topics related to the administration and security of computer systems are covered. Primary emphasis is placed on the administration and security of contemporary operating systems. Preq: CP SC 360 and 322 or 332 with a C or better.

CP SC 428, 628 Design and Implementation of Programming Languages 3(3,0) Overview of programming language structures and features and their implementation. Control and data structures found in various languages are studied. Runtime organization and environment and implementation models are also included. Preq: CP SC 231, 350, 360 with a C or better.

CP SC 429, H429, 629 Translation of Programming Languages 3(3,0) Techniques and considerations for compiling and interpreting programming languages. Topics include scanning, parsing, optimization, code generation, and their theoretical foundations. Implementation of a compiler or a major component of a compiler normally is a term project. Preq: CP SC 350, 428.

CP SC 455, 655 Computational Science 3(3,0) Introduction to the methods and problems of computational science. Course uses problems from engineering and science to develop mathematical and computational solutions. Case studies use techniques from Grand Challenge problems. Emphasizes the use of networking, group development, and modern programming environments. Preq: MTHSC 108, 311, and previous programming experience in a higher level language.

CP SC 462, H462, 662 Database Management Systems 3(3,0) Introduction to database/data communications concepts as related to the design of online information systems. Problems involving structuring, creating, maintaining, and accessing multiple-user databases are presented and solutions developed. Comparison of several commercially available teleprocessing monitor and database management systems is made. Preq: CP SC 360.

CP SC 463, 663 Online Systems 3(3,0) In-depth study of the design and implementation of transaction processing systems and an introduction to basic communications concepts. A survey of commercially available software and a project using one of the systems are included. Preq: CP SC 462.

CP SC 464, 664 Introduction to Computer Architecture 3(3,0) Survey of von Neumann computer architecture at the instruction-set level. Fundamental design issues are emphasized, illustrated using historical and current mainframe, supermini, and micro architecture. Preq: CP SC 330 or consent of instructor.

CP SC 472, H472, 672 Software Development Methodology 3(3,0) Advanced topics in software development methodology. Techniques such as chief programmer teams, structured design and structured walk-throughs are discussed and used in a major project. Emphasis is on the application of these techniques to large-scale software implementation projects. Additional topics such as mathematical foundations of structured programming and verification techniques are also included. Preq: CP SC 360 and 372.

CP SC 481, H481, 681 Selected Topics 1-3(1-3,0) Areas of computer science in which nonstandard problems arise. Innovative approaches to problem solutions which draw from a variety of support courses are developed and implemented. Emphasis is on independent study and projects. May be repeated for a maximum of six credits, but only if different topics are covered. Preq: Consent of instructor.

CP SC 491 Seminar in Professional Issues II 1(1,0) Considers the impact of computing system development on society. Discusses ethical issues in the design and development of computer software. Standards for professional behavior, the profes-sional's responsibility to the profession, and techniques for maintaining currency in a dynamic field are discussed by students. Preq: Senior standing.

CP SC H495 Senior Thesis Research 1-3(1-3,0) Directed individual research project for honors students supervised by departmental faculty. May be repeated for a maximum of six credits. Preq: Senior standing.