Computer Science (COSC)

This is an archived copy of the 2017-2018 catalog. To access the most recent version of the catalog, please visit http://catalog.wofford.edu.

The department offers a major and a minor in Computer Science. Coursework is designed to help students acquire the knowledge, experience, and skills to use a computer as an effective tool for problem solving in many areas. Students completing the major in Computer Science may qualify for either the BA degree or the BS degree, depending upon how they meet the college’s natural science requirement.

The department also offers an Emphasis in Computational Science for students pursuing a BS in Biology, Chemistry, Computer Science, Environmental Studies, Mathematics, Physics or Psychology and an Emphasis in Information Management for students majoring in Accounting, Business Economics, Economics or Finance. 

Chair

David A. Sykes

Professors

Beau Christ
Aaron Garrett

Requirements for the Major in Computer Science

Computer Science Courses21
Programming & Problem Solving 1
Computer Organization & Architecture
Data Structures & Algorithms 1
Advanced Data Structures
Software Engineering
Select six credit hours of Computer Science (COSC) courses at the 300- or 400-level
Math Courses18
Calculus I
Calculus II
Discrete Mathematical Models
Linear Algebra
Operating Systems
Abstract Algebra I
Theory of Computation
Select at least one of the following:
Statistics
Modeling & Simulation
Mathematical Modeling
Numerical Methods
Probability and Statistics I
Ethics Course3
Select one of the following:
Bio-Medical Ethics
Ethics and Business
Environmental Ethics
Computers, Ethics, and Society
Total Hours42
1

Students must complete COSC 235 and 350 with a grade of 'C' or higher.

Requirements for the Minor in Computer Science**

COSC 235Programming & Problem Solving 13
COSC 350Data Structures & Algorithms 13
MATH 235Discrete Mathematical Models3
(OR one COSC course at the 300- or 400-level)
Select three additional COSC courses, one of which must be at the 300- or 400-level9
Total Hours18
1

 Students must complete COSC 235 and 350 with a grade of 'C' or higher.

**

COSC 101 may NOT be used to meet any requirement for the Computer Science minor.

Emphasis in Computational Science

Coordinator

Beau Christ

Computational Science, an interdisciplinary field at the intersection of science, computer science, and mathematics, combines simulation, visualization, mathematical modeling, programming, data structures, networking database design, symbolic computation, and high performance computing with various scientific disciplines. Students who complete a major in Biology, Chemistry, Computer Science, Environmental Studies, Mathematics, Physics, or Psychology and meet requirements for the B.S. degree are eligible to obtain an Emphasis in Computational Science.  Computer Science majors also are required to take eight credit hours (two courses) of a laboratory science at the 200-level or above beyond the natural science requirement for a B.S.

Requirements for the Emphasis in Computational Science

Prerequisite
Calculus I
Requirements
COSC/MATH 201Modeling & Simulation3
COSC 235Programming & Problem Solving 13
COSC 350Data Structures & Algorithms 13
Select one of the following:3
Introduction to Bioinformatics
High Performance Computing
Computational Science: Data and Visualization
Internship 2
Total Hours12
1

Students must complete COSC 235 and 350 with a grade of 'C' or higher.

2

 Students must also complete an internship, approved in advance by the coordinator, which involves computing in the sciences. Before the internship, the student must complete at least two of the required Computer Science courses and submit a resume to the coordinator. Interning full-time for 10 weeks, the student is expected to work well and have good attendance. After the internship, the student must submit a final report, present a talk on campus about the work, and have a positive evaluation from the internship supervisor. The coordinator of the Emphasis on Computational Science must approve all materials submitted at the end of the internship.

Emphasis in Information Management

Coordinator

David A. Sykes

Information Management is an interdisciplinary field at the intersection of business and computer science.  It involves the representation, organization, and transformation of information; efficient and effective algorithms to access and update stored information; data abstraction and modeling; and physical file storage techniques. Students intending to pursue the emphasis in must also complete a major in Accounting, Business Economics, Economics, or Finance.

Requirements for the Emphasis in Information Management

COSC 235Programming & Problem Solving 33
COSC 330Introduction to Databases3
or COSC 335 Web Application Development
COSC 350Data Structures & Algorithms 33
COSC 410Software Engineering3
Internship 4
Total Hours12
3

 Students must complete COSC 235 and 350 with a grade of 'C' or higher.

4

 The internship, approved in advance by the coordinator, will involve computing and business. Before the internship, the student must complete at least two of the required Computer Science courses and submit a resume to the coordinator. Interning full time for 10 weeks, the student is expected to work well and have excellent attendance. After the internship, the student must submit a final report, present a talk on campus about their work, and receive a positive evaluation from the internship supervisor. The coordinator of the Emphasis in Information Management must approve all materials submitted at the end of the internship.

COSC 101. Introduction to Computers. 3 Hours.

An introduction to the uses of computers in a variety of application areas.


COSC 115. Introduction to Web Authoring. 3 Hours.

An introduction to effective communications using Web technologies. No programming background is required. This course focuses on the technologies and tools, including HTML, CSS, and JavaScript, that facilitate the construction of interesting and effective Web sites.


COSC 150. Scientific Investigations Using Computation. 4 Hours.

With improved computational abilities and the explosion of the amount of scientific data, practicing scientists now routinely implement computation to test hypotheses and guide their research. Thus, joining theory and experiment, computation is the third major paradigm of science. Students in this course will explore important science concepts and using computation tools implement the scientific method to gain a better understanding of the natural world.


COSC 201. Modeling & Simulation. 3 Hours.

An introduction to modeling and simulation as part of the interdisciplinary field of computational science. Large, open-ended scientific problems often require the algorithms and techniques of discrete and continuous computational modeling and Monte Carlo simulation. Students learn fundamental concepts and implementation of algorithms in various scientific programming environments. Throughout, applications in the sciences are emphasized. Cross-listed with MATH 201.

Prerequisite: MATH 181 with a minimum grade of D.


COSC 235. Programming & Problem Solving. 3 Hours.

Students learn to develop programs using an object-oriented language. Students are introduced to problem solving and algorithm development with emphasis on good programming style. Completion of this course with a C or higher is a prerequisite for all 300- and 400- level courses in Computer Science.


COSC 270. Independent Study in Computer Science. 1 to 3 Hours.

Independent study of selected topics in Computer Science at an intermediate level. It is intended for students who do not plan to major in Computer Science as well as for those who do. Specific topics vary from semester to semester. Permission of the instructor required.


COSC 273. Computer Organization & Architecture. 3 Hours.

An introduction to computer organization and principles of computer design. Topics include digital logic and digital systems, machine level representation of data, instruction sets, CPU implementation, memory system organization, I/O and communication, and assembly language programming.

Prerequisite: COSC 235 with a minimum grade of C.


COSC 275. Introduction to Bioinformatics. 3 Hours.

An introduction to the basic computational methods used to analyze biological data with an emphasis on algorithms used in genomics. Other topics may include methods for storage, retrieval, analysis, and display of biological data.

Prerequisite: BIO 212 with a minimum grade of D and COSC 235 with a minimum grade of D.


COSC 280. Selected Topics in Computer Science. 1 to 4 Hours.

A course in the study of selected topics in Computer Science at an intermediate level. It is intended for students who do not plan to major in Computer Science as well as for those who do. Specific topics vary from semester to semester. Permission of the instructor required.


COSC 285. Selected Topics COSC. 3 Hours.


COSC 310. Computer Graphics. 3 Hours.

An introduction to computer graphics. Particular emphasis is placed on the algorithms used to produce 2D and 3D graphics with a computer. Topics include graphics devices, polygons, drawing tools, vectors, transformations, 3D viewing, polygonal meshes, lighting, and shading models.

Prerequisite: MATH 181 with a minimum grade of D and COSC 235 with a minimum grade of C.


COSC 315. Computer Networks. 3 Hours.

An introduction to computer networks including network architecture, communication protocols, algorithms, and the current state of technology used to implement computer networks.

Prerequisite: COSC 273 with a minimum grade of C and COSC 235 with a minimum grade of C.


COSC 320. Programming Languages. 3 Hours.

A comparative study of high-level programming languages, including study of the design, evaluation, and implementation of such languages. Emphasis is placed on the ways in which such languages deal with the fundamentals of programming.

Prerequisite: (COSC 235 with a minimum grade of C and COSC 273 with a minimum grade of C) or COSC 350 with a minimum grade of C.


COSC 330. Introduction to Databases. 3 Hours.

A study of data models, including relational, object-oriented, hierarchical, and network models. Topics include the theory of normal forms, database design, query languages, and implementation of databases.

Prerequisite: COSC 235 with a minimum grade of C.


COSC 335. Web Application Development. 3 Hours.

A study of the design and programming of web applications. Topics include client-side scripting, website organization, responsive web design, server-side scripting, content management systems, web application frameworks, and security.

Prerequisite: COSC 330 with a minimum grade of C or COSC 350 with a minimum grade of C.


COSC 340. Theory of Computation. 3 Hours.

A study of formal models of computation such as finite state automata, push-down automata, and Turing machines, along with the corresponding elements of formal languages. These models are used to provide a mathematical basis for the study of computability and to provide an introduction to the formal theory behind compiler construction.

Prerequisite: COSC 350 with a minimum grade of C and MATH 181 with a minimum grade of D and MATH 235 with a minimum grade of D.


COSC 350. Data Structures & Algorithms. 3 Hours.

An introduction to the formal study of data structures, such as arrays, stacks, queues, lists, and trees, along with algorithm design and analysis of efficiency.

Prerequisite: COSC 235 with a minimum grade of C.


COSC 351. Advanced Data Structures. 3 Hours.

Advanced data structures, advanced object-oriented programming concepts, and advanced program design principles.

Prerequisite: MATH 235 with a minimum grade of D and COSC 350 with a minimum grade of C.


COSC 360. Operating Systems. 3 Hours.

A study of fundamental concepts that are applicable to a variety of operating systems. Such concepts include processes and threads, process coordination and synchronization, scheduling, physical and virtual memory organization, device management, file systems, security and protection, communications and networking.

Prerequisite: COSC 350 with a minimum grade of C.


COSC 365. High Performance Computing. 3 Hours.

An introduction to the concepts, tools, languages, and algorithms for solving problems on massively parallel and distributed computers. Advanced computer architectures; performance and optimization; and the design, analysis, and implementation of applications in parallel are studied.

Prerequisite: COSC 350 with a minimum grade of C.


COSC 370. Computational Science: Data and Visualization. 3 Hours.

An introduction to data and visualization, part of the interdisciplinary field of computational science. The course contains a brief introduction to the network environment and the UNIX operating system. Because large Web-accessible databases are becoming prevalent for storing scientific information, the course covers the concepts and development of distributed relational databases. Effective visualization of data helps scientists extract information and communicate results. Students will learn fundamental concepts, tools, and algorithms of computer graphics and scientific visualization in three dimensions. Throughout, applications in the sciences are emphasized.

Prerequisite: COSC 235 with a minimum grade of C.


COSC 410. Software Engineering. 3 Hours.

A study of software engineering through a project-oriented approach. The emphasis is on the specification, organization, implementation, testing, and documentation of software. Students work in groups on various software projects.

Prerequisite: COSC 350 with a minimum grade of C.


COSC 420. Compilers. 3 Hours.

This course explores the design and construction of compilers to implement modern programming languages with a focus on procedural and object-oriented programming languages. Students implement a compiler for a small object-oriented programming language. Topics include scanning, parsing, semantic analysis, and code generation as well as garbage collection and optimization.

Prerequisite: COSC 350 with a minimum grade of C and COSC 273 with a minimum grade of C.


COSC 435. Cryptology. 3 Hours.

An introduction to cryptology and modern applications. Students will study various historical and modern ciphers and implement select schemes using mathematical software. Cross-listed with MATH 435.

Prerequisite: MATH 220 with a minimum grade of D and (MATH 235 with a minimum grade of D or MATH 260 with a minimum grade of D).


COSC 440. Artificial Intelligence. 3 Hours.

This course provides both an overview of the underlying theory, principles, and techniques in artificial intelligence and an in-depth examination of one or more specific topics in artificial intelligence such as approaches to AI, symbolic programming, heuristic search, neural networks, or robotics.

Prerequisite: COSC 350 with a minimum grade of D.


COSC 460. Computer & Network Security. 3 Hours.

An introduction to computer security in a networked environment. Topics will include ethical and social issues; type of attacks on computers and defenses; physical security and systems administration; authentication, access controls, and biometrics; encryption and network security; and the underlying formalisms and technologies relating to security.

Prerequisite: COSC 350 with a minimum grade of D.


COSC 470. Advanced Independent Study in Computer Science. 1 to 4 Hours.

Independent study of selected topics in Computer Science at an advanced level. Specific topics vary from semester to semester. Permission of the instructor required.


COSC 480. Advanced Topics in Computer Science. 1 to 4 Hours.

A study of selected topics in Computer Science at an advanced level. Specific topics vary from semester to semester. Permission of the instructor required.