Download Adobe Reader

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. Includes Honors sections. Preq or concurrent enrollment: MATH 1020 or MATH 1040 or MATH 1050 or MATH 1060 or MATH 1080 or MATH 2070. Students who do not meet the prerequisite, but who score a satisfactory score on the Clemson Mathematics Placement Test, or have AP or transfer credit for their math requirements, may request a registration override from the instructor. Coreq: CPSC 1011. 1011 Lab: Non-credit laboratory to accompany CPSC 1010. Coreq: CPSC 1010.

CPSC 1020/1021, Computer Science II 4 (3,2)  Continuation of CPSC 1010. 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. Includes Honors sections. Preq: CPSC 1010 with a C or better. Coreq: CPSC 1021. 1021 Lab: Non-credit laboratory to accompany CPSC 1020. Coreq: CPSC 1020.

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, CPSC 1110, CPSC 1570, or CPSC 2100. Coreq: CPSC 1041. 1041 Lab: Non-credit laboratory to accompany CPSC 1040. Coreq: CPSC 1040.

CPSC 1110/1111 Introduction to Programming in C 3 (2,2) Introduction to computer programming in C and its use in solving problems. Intended primarily for technical majors. Basic instruction in programming techniques, algorithms and standard Unix software development tools and utilities. Credit may not be received for both CPSC 1010 and CPSC 1110. Coreq: CPSC 1111. 1111 Lab: Non-credit laboratory to accompany CPSC 1110. Coreq: CPSC 1110.

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. Coreq: CPSC 1201. 1201 Lab: Non-credit laboratory to accompany CPSC 1200. Coreq: CPSC 1200.

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. Coreq: CPSC 1611. 1611 Lab: Non-credit laboratory to accompany CPSC 1610. Coreq: CPSC 1610

CPSC 1990 Creative Inquiry in Computing 1-3 (1-3)  Students engage in faculty-led research in the context of a team effort. May be repeated for a maximum of six credits.

CPSC 2070 Discrete Structures for Computing 3 (3)  Introduces ideas and techniques from discrete structures that are widely used in the computing sciences. Topics emphasize techniques of rigorous argumentation and application to the computing disciplines. Preq: CPSC 1010 or CPSC 1110; and MATH 1020 or MATH 1060.

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 and satisfactory performance on a pretest. Coreq: CPSC 2101. 2101 Lab: Non-credit laboratory to accompany CPSC 2100. Coreq: CPSC 2100.

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 with a C or better or CPSC 2100 with a C or better. Coreq: CPSC 2121. 2121 Lab: Non-credit laboratory to accompany CPSC 2120. Coreq: CPSC 2120.

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 with a C or better or 2100 with a C or better. Coreq: CPSC 2151. 2151 Lab: Non-credit laboratory to accompany CPSC 2150. Coreq: CPSC 2150.

CPSC 2200 Microcomputer Applications 3 (3) Applications of microcomputers to formulate and solve problem models. Emphasizes applications development in database and spreadsheet environments. Current software products are used. Students are expected to have experience with word processing and spreadsheet applications.

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 with a C or better or 2100 with a C or better. Coreq: CPSC 2311. 2311 Lab: Non-credit laboratory to accompany CPSC 2310. Coreq: CPSC 2310.

CPSC 2810 Selected Topics in Computer Science 1-4 (1-4) 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.

CPSC 2910 Seminar in Professional Issues I 1 (1) 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 CPSC 2100.

CPSC (ECE) 3220 Introduction to Operating Systems 3 (3) 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. May also be offered as ECE 3220. Preq: CPSC 2120 and CPSC 2310, each with a C or better; or ECE 2230 and ECE 2720, each with a C or better.

CPSC 3300 Computer Systems Organization 3 (3) 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: CPSC 2120 and CPSC 2310, each with a C or better.

CPSC 3500 Foundations of Computer Science 3 (3) 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 2070 and CPSC 2120, each with a C or better.

CPSC (ECE) 3520 Programming Systems 3 (3) Second course in programming languages and systems. Topics include assemblers, compilers, and syntactical methods; string manipulation and list processing; concepts of executive programs and operating systems; introduction to time-sharing systems. May also be offered as ECE 3520. Preq: ECE 2230; or CPSC 2120 and CPSC 2150. Preq or concurrent enrollment: CPSC 2070 or MATH 4190.

CPSC 3600 Networks and Network Programming 3 (3) 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 and CPSC 2150, each with a C or better.

CPSC 3620 Distributed and Cluster Computing 3 (3) 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 highlevel abstractions for data communications are considered. Preq: CPSC 3600 with a C or better.

CPSC 3710 Systems Analysis 3 (3) 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) 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 CPSC 2150, each with a C or better.

CPSC 3950 Honors Seminar 1 (1) 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 3990 Advanced Creative Inquiry in Computing 1-3 (1-3) Upper-division students engage in faculty-led research in the context of a team effort. May be repeated for a maximum of six credits. Preq: Junior standing.

CPSC 4040 Computer Graphics Images 3 (3) Presents the theory and practice behind the generation and manipulation of two-dimensional digital images within a computer graphics context. Image representation and storage, sampling and reconstruction, color systems, affine and general warps, enhancement and morphology, compositing, morphing, and non-photorealistic transformations. Preq: CPSC 2120 and MATH 3110; or DPA 4010.

CPSC 4050*  Computer Graphics 3 (3) Computational, mathematical, physical and perceptual principles underlying the production of effective three-dimensional computer graphics imagery. Preq: CPSC 2120 and MATH 3110; or DPA 4010.

CPSC 4110* Virtual Reality Systems 3 (3) Design and implementation of software systems necessary to create virtual environments. Discusses techniques for achieving real-time, dynamic display of photorealistic, synthetic images. Includes handson experience with electromagnetically-tracked, head-mounted displays and requires, as a final project, the design and construction of a virtual environment. Preq: CPSC 2120 and 2150, both with a C or better.

CPSC 4120* Eye Tracking Methodology and Applications 3 (3) 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: CPSC 2120 or MKT 4310 or PSYC 3100.

CPSC 4140* Human and Computer Interaction 3 (3) 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, each with a C or better.

CPSC 4160* 2-D Game Engine Construction 3 (3) 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, each with a C or better.

CPSC 4200* Computer Security Principles 3 (3) Covers principles of information systems security, including security policies, cryptography, authentication, access control mechanisms, system evaluation models, auditing, and intrusion detection. Computer security system case studies are analyzed. Preq: CPSC 3220 or ECE 3220; and 3600, each with a C or better.

CPSC 4240* System Administration and Security 3 (3) 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 3220 or ECE 3220; and 3600, each with a C or better.

CPSC 4280* Design and Implementation of Programming Languages 3 (3) 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 and 3500, each with a C or better.

CPSC 4550* Computational Science 3 (3) 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 and MATH 3110. Students are expected to have previous programming experience in a higher level language.

CPSC 4620* Database Management Systems 3 (3) 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. Includes Honors sections Preq: CPSC 2120 and CPSC 2150, each with a C or better.

CPSC 4630* On-line Systems 3 (3) 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* Software Development Methodology 3 (3) Advanced topics in software development methodology. Techniques such as chief programmer teams, structured design and structured walkthroughs 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. Includes Honors sections. Preq: CPSC 3720 with a C or better.

CPSC (ECE) 4780* General Purpose Computation on Graphical Processing Units 3 (3) Instruction in the design and implementation of highly parallel, GPU-based solutions to computationally intensive problems from a variety of disciplines. The OpenCL language with inter-operable OpenGL components is used. Applications to models of physical systems are discussed in detail. May also be offered as ECE 4780. Preq: CPSC 2120 or ECE 2230.

CPSC 4810* Selected Topics 1-3 (1-3) 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. Includes Honors sections.

CPSC 4820* Special Topics in Computing 3 (3) In-depth treatment of topics not fully covered in regular courses. Topics vary from semester to semester. May be repeated, but only if different topics are covered.

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. Coreq: CPSC 4911. 4911 Lab: Non-credit laboratory to accompany CPSC 4910. Coreq: CPSC 4910.

CPSC 4950 Senior Thesis Research (Honors) 1-3 (1-3) Directed individual research project for honors students supervised by departmental faculty. May be repeated for a maximum of six credits. Preq: Senior standing.

*4000-level courses with a 6000-level counterpart are identified with an asterisk. Students should refer to the Graduate Announcements for the 6000-level description and requirements.

[back to top]