Undergraduate Courses in Computer Science

CPSC 1010/1011, 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: MATH 1050 or satisfactory score on the Clemson Mathematics Placement Test or consent of instructor.

CPSC 1020/1021, Computer Science II 4(3,2) Continuation of CP SC 101. Continued emphasis on problem solving and program development techniques. Examines typical numerical, nonnumerical, and data processing problems. Introduces basic data structures. Credit may not be received for both CPSC 1020 and 2100. Preq: CPSC 1010 with a C or better.

CPSC 1040/1041 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 CPSC 1010, 1110, or 2100.

CPSC 1110/1111 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.

CPSC 1150 Introduction to Computational Science 3(3,0) Introduction to systems thinking. Includes development of dynamical systems models using visual modeling tools and development of dynamical systems using agent based software. Class material investigates elementary science and engineering models.

CPSC 1200/1201 Introduction to Information Technology 3(2,2) Investigation of ethical and societal issues based on the expanding integration of computers into our everyday lives. Considers historical background, terminology, new technologies and the projected future of computers. Includes practical experience with common computer software technologies. Will not satisfy Computer Science Requirements in any Computer Science major.

CPSC 1610 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.

CPSC 2100/2101 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 CPSC 1020 and 2100. Preq: CPSC 1110 or equivalent; satisfactory performance on a pretest.

CPSC 2120/2121 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. Preq: CPSC 1020 or 2100 with a C or better.

CPSC 2150/2151 Software Development Foundations 3(2,2) Intensive study of software development foundations. Advanced coverage of programming language primitives, function-level design principles, and standard development and debugging tools. Introductory coverage of module-level design principles, program specification and reasoning principles, and validation and verification techniques. Preq: CPSC 1020 or 2100 with a C or better.

CPSC 2310/2311 Introduction to Computer Organization 4(3,2) Study of the machine architectures on which algorithms are implemented and requirements of architectures that support high-level languages, programming environments, and applications. Preq: CPSC 1020 or 2100 with a C or better.

CPSC 2810 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.

CPSC 2910 Seminar in Professional Issues I 1(1,0) Considers the impact of computer use on society. Discusses ethical use of software and protection of intellectual property rights. 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: CPSC 1020 or 2100, or consent of instructor.

CPSC (ECE)3220 Introduction to Operating Systems 3(3,0) Detailed study of 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 CPSC 3220 and 3320. Preq: CPSC 2150 and 2310 with a C or better; or ECE 2230 and 2720 with a C or better.

CPSC 3320 Computer Systems 3(3,0) Introduces design, integration, and use of hardware and software components in standard computer systems. Emphasizes computer organization at the component level, interfacing, basic operating system functions, and system utilities. Credit may not be received for both CPSC (ECE) 3220 and 3320. Preq: CPSC 2120, 2150, 2310 with a C or better.

CPSC 3500 Foundations of Computer Science 3(3,0) Development of the theoretical foundations 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: CPSC 2120 and MATH 1190 with a C or better.

CPSC (ECE)3520 Programming Systems 3(3,0) See ECE 3520.

CPSC 3600 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: CPSC 2120, 2150 with a C or better.

CPSC 3620 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: CPSC 3600 with a C or better.

CPSC 3710 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: CPSC 3600.

CPSC 3720 Introduction to Software Engineering 3(3,0) Intensive introduction to software engineering. Focuses on each major phase of the software lifecycle. Introductory coverage of requirements analysis, requirements modeling, design modeling, and project management. Intermediate coverage of module-level design principles, program specification and reasoning principles, and program validation and verification techniques. Preq: CPSC 2120 and 2150 with a C or better.

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

CPSC 4140, 6140 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: CPSC 2120 and 2150 with a C or better, or equivalent.

CPSC 4160, 6160 2-D Game Engine Construction 3(3,0) Introduction to tools and techniques necessary to build 2-D games. Techniques draw from subject areas such as software engineering, algorithms, and artificial intelligence. Students employ techniques such as sprite animation, parallax scrolling, sound, AI incorporated into game sprites, and the construction of a game shell. Preq: CPSC 2120 and 2150 with a C or better.

CPSC 4240, 6340 System Administration and Security 3(3,0) Covers topics related to the administration and security of computer systems. Primary emphasis is on the administration and security of contemporary operating systems. Preq: CPSC 3600 and (ECE) 3220 or 3320 with a C or better.

CPSC 4280, 6280 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. Also includes runtime organization and environment and implementation models. Preq: CPSC 2310, 3500, 3600 with a C or better.

CPSC 4550, 6550 Computational Science 3(3,0) Introduction to the methods and problems of computational science. 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: MATH 1080, 3110, and previous programming experience in a higher level language.

CPSC 4630, 6630 On-line 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: CPSC 4620.

CPSC 4720, H4720, 6720 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. Emphasizes the application of these techniques to large-scale software implementation projects. Also includes additional topics such as mathematical foundations of structured programming and verification techniques. Preq: CPSC 3600 and 3720.

CPSC 4810, H4810, 6810 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. Emphasizes independent study and projects. May be repeated for a maximum of six credits, but only if different topics are covered. Preq: Consent of instructor.

CPSC 4910/4911 Seminar in Professional Issues II 3(2,2) Considers the impact of computing system development on society. Discusses ethical issues in the design and development of computer software. Students discuss standards for professional behavior, the professional's responsibility to the profession, and techniques for maintaining currency in a dynamic field. Preq: Senior standing.

CPSC H4950 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.