Undergraduate Index |
Duncan A. Buell, Chair of the Department
- Professors
-
- J. Carter Bays, Ph.D., University of Oklahoma, 1974
Ronald D. Bonnell, M.S., University of Kentucky, 1961
Duncan A. Buell, Ph.D., University of Illinois, Chicago, 1976
Robert L. Cannon, Ph.D., University of North Carolina, 1973
Caroline Eastman, Ph.D., University of North Carolina, 1977
- Undergraduate Director
- Michael N. Huhns, Ph.D., University of Southern California, 1971
Abhijit Sengupta, Ph.D., Calcutta University, 1976
Larry M. Stephens, Ph.D., Johns Hopkins University, 1977
-
- Associate Professors
-
- John B. Bowles, Ph.D., Rutgers University, 1982
Valerie V. Cross, Ph.D., Wright State University, 1993
Stephen Fenner, Ph.D., University of Chicago, 1991
Manton M. Matthews, Ph.D., University of South Carolina, 1980
- Graduate Director
- John R. Rose, Ph.D., State University of New York, Stony Brook, 1991
Marco Valtorta, Ph.D., Duke University, 1987
Juan Eduardo Vargas, Ph.D., Vanderbilt University, 1988
Assistant Professors
Duncan Clark, Ph.D., University of Pennsylvania, 1996
Csilla Farkas, Ph.D., George Mason University, 2000
Toshiro Kubota, Ph.D., Georgia Institute of Technology, 1995
José M. Vidal, Ph.D., University of Michigan, 1998
Research Professor
Hideaki Kobayashi, Ph.D., Waseda University, 1979
Adjunct Professors
Arthur Chausmer, Ph.D., State University of New York, 1970
Paul G. Huray, Ph.D., University of Tennessee, 1968
John Montague, M.B.A., University of St. Thomas, St. Paul, Minn., 1984
Distinguished Professors Emeriti
Karel Culik II, Ph.D., Czechoslovakian Academy of Science, 1966
Robert Lee Oakman III, Ph.D., Indiana University, 1971
Overview
The Department of Computer Science and Engineering offers baccalaureate degrees with majors in computer science, computer engineering, and computer information systems. All three degrees provide students with the knowledge and skills to work as practitioners in all aspects of the computing and information processing industries. The major in computer science allows students to focus primarily on the software aspects of computing and applications in the humanities and sciences; the major in computer engineering includes courses in electronics and computer hardware as well as software; the major in computer information systems is designed for persons who are primarily interested in business and data processing applications. Students expecting to pursue graduate study in either computer science or engineering are advised to follow the computer science or computer engineering programs.
The department also serves many disciplines within the University through course offerings that provide basic computing skills necessary for the pursuit of studies in other fields. A minor in computer science is also available.
Degree Requirements
In addition to the general education and progression requirements of the College of Engineering and Information Technology, a grade of C or better is required in MATH 174 and all CSCE courses applied to the degree.
Bachelor of Science in Engineering--Major in Computer Engineering (121 hours)
ENGL 101, 102 (6 hours)
Liberal Arts (9 hours)
PHIL 317 (3 hours)
MATH 141, 142, 174, 241, 242 (17 hours)
Mathematics elective (3 hours)
STAT 509 (3 hours)
CHEM 111 (4 hours)
PHYS 211, 211L, 212, 212L (8 hours)
CSCE 145, 146, 211, 212, 240, 245, 311, 313, 350, 355, 491, 492, 531 (41 hours)
ELCT 102, 221, 222, 321, 371 (15 hours)
Major Electives (12 hours)
Notes:
- The liberal arts courses must include at least one history course, one fine arts course, and one social science course. The department maintains a list of approved humanities and social science electives.
- The math elective is satisfied with MATH 526 or 527 or 544 or CSCE 561. Other courses in linear algebra or numerical analysis may be substituted with permission of the department.
- The department maintains a list of approved major electives for the computer engineering degree. Currently, CSCE 330, ELCT 331, and most CSCE courses numbered 510 and higher are approved. CSCE 561 satisfies the requirement as either a major elective or as a mathematics elective.
Bachelor of Science--Major in Computer Information Systems (120 hours)
ENGL 101, 102, 462 or 463 (9 hours)
THSP 140 (3 hours)
Liberal Arts (18 hours)
MATH 174, 141, 142 (11 hours)
STAT 509 (3 hours)
Laboratory sciences (8 hours including two labs)
MGSC 390, 490, 590, and two of 494, 591, 594 (15 hours)
ACCT 222 (3 hours)
ECON 224 (3 hours)
CSCE 145, 146, 205, 212, 240, 245, 311, 330, 350, 492, 520 (35 hours)
Major elective (CSCE course numbered above 500) (3 hours)
Free electives (9 hours)
Notes:
- The liberal arts courses must include at least one history course, one fine arts course, and one social science course.
- Demonstration of proficiency in one foreign language equivalent to the minimum passing grade on the exit examination in the 122 course is required. Up to six hours of foreign language courses may be counted toward the liberal arts requirement.
Bachelor of Science in Computer Science (122 hours)
ENGL 101, 102, 462 (9 hours)
THSP 140 (3 hours)
Liberal Arts (18 hours)
MATH 174, 141, 142, 241, 526 (18 hours)
STAT 509 (3 hours)
PHYS 211, 211L, 212, 212L (8 hours)
Laboratory science (4 hours)
CSCE 145, 146, 211, 212, 240, 245, 311, 330, 350, 355, 492 (35 hours)
Major electives (CSCE courses numbered above 500) (12 hours)
Application area (9 hours)
Free electives (3 hours)
Notes:
- The liberal arts courses must include at least one history course, one fine arts course, and one social science course.
- Demonstration of proficiency in one foreign language equivalent to the minimum passing grade on the exit examination in the 122 course is required. Up to six hours of foreign language courses may be counted toward the liberal arts requirement.
- The laboratory science course must be selected from the following list: BIOL 101, CHEM 111, GEOL 101, 301, 331, MSCI 111.
Bachelors/Masters Accelerated Program
A combined B.S./M.S. or B.S./M.E. degree program is available to undergraduate students in computer science and engineering with 90 or more hours earned toward their baccalaureate degrees. Students accepted into this program must have a minimum overall GPA of 3.40 and at least 3.40 in the course work taken in computer science and engineering. Up to nine credit hours above the 500 level may be applied toward both the B.S. and M.S. or M.E. degree requirements. The approval of the students advisor and the graduate director is required. Questions about this program should be directed to the graduate director.
Course Descriptions (CSCE)
- 101--Introduction to Computer Concepts. (3) (Prereq: two years of college preparatory mathematics or equivalent) History, application, and social impact of computers; problem-solving, algorithm development, applications software, and programming in a procedural language. Open to all majors.
- 102--General Applications Programming. (3) (Prereq: two years of college preparatory mathematics) Introduction to systematic computer problem-solving and programming for a variety of applications. Open to all majors.
- 145--Algorithmic Design I. (4) (Prereq: Placement in MATH 141 or grade of C or better in MATH 115) Problem-solving, algorithmic design, and programming. Three lectures and two laboratory hours per week. Open to all majors.
- 146--Algorithmic Design II. (4) (Prereq: Grade of C or better in CSCE 145 and grade of C or better in MATH 141 or 174; coreq: MATH 174) Continuation of CSCE 145. Rigorous development of algorithms and computer programs; elementary data structures. Three lecture hours and two laboratory hours per week. Open to all majors.
- 205--Business Applications Programming. (3) (Prereq: MGSC 190 or CSCE 101 or above) Introduction to computer applications in business. Programming exercises in COBOL. Open to all majors.
- 206--Scientific Applications Programming. (3) (Prereq: MATH 111 or MATH 115) Introduction to computer applications in the natural and social sciences. Programming exercises in FORTRAN. Open to all majors.
- 207--Programming and the Unix Environment. (3) (Prereq: CSCE 145 or 206) The Unix programming environment: I/O programming, Unix processes, fork, exec, pipes and signals, and tools. Open to all majors.
- 209--Special Topics in Computer Programming. (1-3) Programming and application development using selected programming languages. Course content varies and will be announced in the schedule of classes by suffix and title.
- 211--Digital Logic Design. (3) (Prereq: MATH 141 or 174) Number systems, Boolean algebra, logic design, sequential machines.
- 212--Introduction to Computer Architecture. (3) (Prereq: CSCE 145, either CSCE 211 or MATH 174) Computer architecture, components, and organization; memory addressing; Input/Output; instruction sets; interrupts; assembly-language programming.
- 240--Introduction to Software Engineering. (3) (Prereq: Grade of C or higher in CSCE 146) Fundamentals of software design and development; software implementation strategies; object-oriented design techniques; ethics in software development.
- 245--Object-Oriented Programming Techniques. (3) (Prereq: Grade of C or higher in CSCE 146) Advanced object-oriented concepts and techniques; multiple inheritance; memory management; operator overloading; polymorphism; performance issues.
- 311--Operating Systems. (3) (Prereq: CSCE 212 and 245) Operating system structure and function; process implementation, scheduling, and synchronization; memory management; security; naming protection; resource allocation; network file systems.
- 313--Embedded Systems Laboratory. (3) (Prereq: CSCE 211, 212) Design and implementation of microprocessor-based systems; assembly-language programming.
- 330--Programming Language Structures. (3) (Prereq: CSCE 245) Formal specification of syntax and semantics; structure of algorithms; list processing and string manipulation languages; statement types, control structures, and interfacing procedures.
- 350--Data Structures and Algorithms. (3) (Prereq: CSCE 245, MATH 174) Techniques for representing and processing information, including the use of lists, trees, and graphs; analysis of algorithms; sorting, searching, and hashing techniques.
- 355--Foundations of Computation. (3) (Prereq: CSCE 211, 212, 350) Basic theoretical principles of computing as modeled by formal languages, grammars, and machines; computablility and computational complexity. Major credit may not be received for both CSCE 355 and CSCE 551.
- 491--Capstone Computer System Project. (3) (Prereq: CSCE 240, 311) Advanced computer systems engineering. Team projects.
- 492--Capstone Software Engineering Project. (3) (Prereq: CSCE 240, 311, either CSCE 313 or ENGL 462 or 463) Advanced software engineering.
- 498--Independent Study. (1-3) (Prereq: Approval of project proposal by instructor and department advisor) Individual investigation or study of special topics. At most three credits may be applied toward a degree.
- 500--Computer Programming and Applications. (3) Concepts and properties of algorithms; programming exercises with emphasis on good programming habits. Credit may not be received for both CSCE 500 and CSCE 145. Open to all majors. May not be used for major credit by computer science and engineering majors.
- 510--System Programming. (3) (Prereq: CSCE 245) System software such as command language interpreters, client-server applications, debuggers; mail systems, browsers, macroprocessors, and revision control systems; file systems, processes, threads, and interprocess communication.
- 512--System Performance Evaluation. (3) (Prereq: CSCE 311, STAT 509) Measuring, modeling, analyzing, and predicting performance of computer systems and networks; bottleneck analysis; Markovian queuing systems and networks; use of operational and probabilistic models.
- 513--Computer Architecture. (3) (Prereq: CSCE 211, 212) Design methodology; processor design; computer arithmetic: algorithms for addition, multiplication, floating point arithmetic; microprogrammed control; memory organization; introduction to parallel architectures.
- 515--Computer Network Programming. (3) (Prereq: CSCE 311) Computer networks and communication protocols; socket programming; interprocess communication; development of network software; case studies.
- 516--Computer Networks. (3) (Prereq: STAT 509) Structure, design, and analysis of computer networks; ISO/OSI network architecture.
- 520--Database System Design. (3) (Prereq: CSCE 245 or GEOG 563) Database management systems; database design and implementation; security, integrity, and privacy.
- 531--Compiler Construction. (3) (Prereq: CSCE 330 or 355, CSCE 245) Techniques for design and implementation of compilers, including lexical analysis, parsing, syntax-directed translation, and symbol table management.
- 547--Windows Programming. (3) (Prereq: CSCE 245) Object-oriented methods and tools for application programming with graphically interactive operating systems.
- 551--Theory of Computation. {=MATH 562} (3) (Prereq: CSCE 350 or MATH 526 or 544 or 574) Basic theoretical principles of computing as modeled by formal languages and automata; computability and computational complexity. Major credit may not be received for both CSCE 355 and CSCE 551.
- 561--Numerical Analysis. {=MATH 527} (3) (Prereq: MATH 242 or 520) Interpolation and approximation of functions; solution of algebraic equations; numerical differentiation and integration; numerical solutions of ordinary differential equations and boundary value problems; computer implementation of algorithms.
- 563--Systems Simulation. (3) (Prereq: CSCE 245, STAT 509) Computer simulation of real systems; principles of system organization; random number generation; programming exercises in a simulation language.
- 564--Computational Science. (3) (Prereq: MATH 526, CSCE 146 or 207 or 500) Parallel algorithms; scientific visualization; techniques for solving scientific problems.
- 565--Introduction to Computer Graphics. (3) (Prereq: CSCE 245, MATH 526) Graphics hardware; graphics primitives; two-dimensional and three-dimensional viewing; basic modeling.
- 567--Visualization Tools. (3) (Prereq: CSCE 145 or 206 or 207) Scientific visualization tools as applied to sampled and generated data; methods for data manipulation and representation; investigation of visualization techniques.
- 574--Robotics. (3) (Prereq: CSCE 211, 212, 245) Design and application of robotic systems; emphasis on mobile robots and intelligent machines.
- 578--Text Processing. (3) (Prereq: CSCE 330, 355) Text and natural language processing; formal models and data structures appropriate for text processing; selected topics in computational linguistics, stylistics, and content analysis.
- 580--Artificial Intelligence. (3) (Prereq: CSCE 350) Heuristic problem solving, theorem proving, and knowledge representation, including the use of appropriate programming languages and tools.
- 590--Topics in Information Technology. (3) Reading and research on selected topics in information technology. Course content varies and will be announced in the schedule of courses by suffix and title. May be repeated for credit as topics vary.
- 611--Conceptual Modeling Tools for CAD. (3) (Prereq: CSCE 211, 245) Design techniques for logic systems; emphasis on higher-level CAD tools such as hardware description languages and conceptual modeling.
- 612--VLSI System Design. (3) (Prereq: CSCE 211, 245) VLSI design process models, introduction to EDA tools, HDL modeling and simulation, logic synthesis and simulation, benchmark design projects.
- 613--Fundamentals of VLSI Chip Design. (3) (Prereq: ELEC 371) Design of VLSI circuits, including standard processes, circuit design, layout, and CAD tools. Lecture and guided design projects.
Return to College of Engineering
[Bulletin Home Page] [Undergraduate Bulletin Contents] [Disclaimer] [Office of Undergraduate Admissions]
This web site updated September 2001 by Thom Harman, and copyright © 2001-2002 by the Board of Trustees of the University of South Carolina. All Rights Reserved.
URL http://www.sc.edu/bulletin/ugrad/CompuSci.html
|