Computer Science (COSC)
This is an archived copy of the 2020-2021 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 will be awarded the degree of Bachelor of Science.
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.
Computer Science majors are encouraged to satisfy the General Education science requirement by taking Chemistry 123, Physics 121, or Physics 141. Those planning to pursue a graduate degree in Computer Science are encouraged to pursue a minor in Mathematics.
Honors Courses and In-Course Honors
The Department of Computer Science encourages its students to undertake honors work. Additional information can be found in the Honors Courses and In-Course Honors in the Catalog.
Requirements for the Major in Computer Science
Course | Title | Hours |
---|---|---|
Computer Science Courses | 33 | |
Programming & Problem Solving 1 | ||
Discrete Structures | ||
Computer Organization & Architecture | ||
Theory of Computation | ||
or MATH 431 | Abstract Algebra I | |
Data Structures & Algorithms 1 | ||
Algorithm Design & Analysis | ||
Operating Systems | ||
Software Engineering | ||
Select 9 credit hours of Computer Science (COSC) courses at the 300- or 400-level | ||
Math Courses | 9 | |
Calculus I | ||
Calculus II | ||
or MATH 140 | Statistics | |
Select one additional course from the following: | ||
Statistics | ||
Calculus II | ||
Modeling & Simulation | ||
Ethics Course | 3 | |
Select one of the following: | ||
Introduction to Ethics | ||
Bio-Medical Ethics | ||
Ethics and Business | ||
Environmental Ethics | ||
Computers, Ethics, and Society | ||
Principles of Ethics | ||
Total Hours | 45 |
1 | Students must complete COSC 235 and 350 with a grade of 'C' or higher. |
Requirements for the Minor in Computer Science
Course | Title | Hours |
---|---|---|
Required Minor Courses | 9 | |
Programming & Problem Solving 1 | ||
Data Structures & Algorithms 1 | ||
Discrete Structures (or one COSC course at the 300- or 400-level) | ||
Electives | 9 | |
Select three additional COSC courses, one of which must be at the 300- or 400-level | ||
Total Hours | 18 |
1 | Students must complete COSC 235 and 350 with a grade of 'C' or higher. |
Emphasis in Computational Science
Coordinator
Beau M. 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 are eligible to obtain an Emphasis in Computational Science. Computer Science majors are also required to take eight credit hours (two courses) of a laboratory science at the 200-level or above.
Requirements for the Emphasis in Computational Science
Course | Title | Hours |
---|---|---|
Prerequisite | ||
Calculus I | ||
Required Emphasis Courses | 9 | |
Modeling & Simulation | ||
Programming & Problem Solving 1 | ||
Data Structures & Algorithms 1 | ||
Elective | 3 | |
Select one of the following: | ||
Introduction to Bioinformatics | ||
High Performance Computing | ||
Data Science | ||
Internship 2 | ||
Total Hours | 12 |
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. |
Program in Data Science
Coordinator
Beau M. Christ
The Program in Data Science offers students an interdisciplinary approach to the study of data and data analytics toward the goal of transforming the data to understanding. It bridges the fields at of science, computer science, mathematics, statistics, and a domain area of choice. Students get the opportunity to learn and use the latest tools and technologies in statistics and machine learning, while also learning to effectively communicate their results to the world. The program concludes with an internship or research experience in data science. While not a major, courses applied toward the requirements for the data science program may also be counted toward requirements in other majors or minors.
Requirements for the Program in Data Science
Course | Title | Hours |
---|---|---|
Computing Fundamentals | 3 | |
Programming & Problem Solving 1 | ||
Mathematical Fundamentals | 6 | |
Calculus I | ||
Statistical Methods I | ||
Data Science Fundamentals | 3 | |
Data Science | ||
Domain Knowledge | 3 to 4 | |
Auditing | ||
Econometrics | ||
Quantitative Environmental Methods & Models (with lab) | ||
Climate Change (with lab) | ||
Terrestrial Ecology (with lab) | ||
Investments | ||
Corporate Financial Analysis | ||
Data Science Practicum 2 | ||
Total Hours | 15-16 |
1 | Students must complete COSC 235 with a grade of 'C' or higher. |
2 | Students must also complete an internship or significant research project involving data science and approved in advance by the program coordinator. The student must submit a final report and present a talk on campus summarizing the internship or findings of the research project |
COSC 115. Introduction to Web Authoring. 3 Hours.
An introduction to creating websites with a focus on client-side technologies. HTML, CSS, JavaScript, responsive layouts, and content management systems. No programming background is required.
COSC 150. Scientific Investigations Using Computation (with lab). 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.
An introduction to computer programming and algorithmic thinking. Students learn how to solve computational problems and implement their solutions in a programming language. Completion of this course with a C or higher is a prerequisite for all 300- and 400- level courses in Computer Science.
COSC 240. Discrete Structures. 3 Hours.
A study of concepts foundational to computer science: sets, logic, the nature of proof, functions, algorithms, relations, lattices, and graphs.
Prerequisite: COSC 235 with a minimum grade of D and (MATH 140 with a minimum grade of D or MATH 160 with a minimum grade of D or MATH 181 with a minimum grade of D).
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.
Selected topics in Computer Science at the introductory or intermediate level.
COSC 310. Computer Graphics. 3 Hours.
An introduction to 2D and 3D computer graphics. Topics include graphics hardware, vectors and matrices, projection, transformations, 3D viewing, polygonal meshes, color, lighting, shading, texture, and animation. Emphasis is placed on interactive graphics.
Prerequisite: COSC 235 with a minimum grade of C and MATH 181 with a minimum grade of D.
COSC 315. Computer Networks. 3 Hours.
An introduction to computer networks including network architecture, communication protocols, algorithms, and network applications.
Prerequisite: COSC 350 with a minimum grade of D.
COSC 320. Programming Languages. 3 Hours.
A study of the concepts underlying high-level programming languages. Topics include variable binding, higher-order functions, closures, recursion, dynamic versus static typing, abstract types, and inheritance. A variety of programming language paradigms (procedural, functional, logical, object-oriented) are used to illustrate these concepts.
Prerequisite: COSC 350 with a minimum grade of C.
COSC 330. Databases. 3 Hours.
An introduction to database systems. Emphasis is placed on relational database modeling, integrity constraints, and query languages, with a focus on practical implementation and deployment of database solutions.
Prerequisite: COSC 350 with a minimum grade of C.
COSC 335. Web Applications. 3 Hours.
An introduction to the design and programming of web applications. Client-side scripting, website organization, responsive web design, server-side scripting, content management systems, web application frameworks, and security.
Prerequisite: 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, context-free grammars, and Turing machines, along with the corresponding elements of formal languages. Other topics include computability, complexity, and NP-completeness.
Prerequisite: (COSC 240 with a minimum grade of D or MATH 235 with a minimum grade of D) and COSC 350 with a minimum grade of C.
COSC 350. Data Structures & Algorithms. 3 Hours.
An introduction to the fundamental data types of computing (including lists, stacks, queues, priority queues, sets, maps, trees, and graphs) and ways to implement them using arrays and linked structures. An introduction to algorithm analysis.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 351. Algorithm Design & Analysis. 3 Hours.
A study of the design and analysis of algorithms for solving problems, including dynamic programming, divide-and-conquer algorithms, greedy algorithms, graph algorithms, and search algorithms. Evaluation of time-space trade-offs.
Prerequisite: (COSC 240 with a minimum grade of D or 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 applicable to a variety of operating systems. Topics include processes and threads, process coordination and synchronization, scheduling, interrupts, physical and virtual memory, device management, file systems, security and protection, communications, and networking.
Prerequisite: COSC 273 with a minimum grade of C and 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 complex problems on massively parallel and distributed computers. Topics include advanced computer architecture, performance and optimization, and the design, analysis, and implementation of applications using parallel programming languages and tools.
Prerequisite: COSC 273 with a minimum grade of C and COSC 350 with a minimum grade of C.
COSC 375. Data Science. 3 Hours.
A hands-on introduction to the field of Data Science with real-world applications. Topics include datasets, data visualization, interactive graphics, data wrangling, ethics, applied statistics, machine learning (supervised and unsupervised), databases, and big data. Students will also learn a programming language tailored for data analytics.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 410. Software Engineering. 3 Hours.
A study of software engineering through the design and implementation of a significant software system. Emphasis is placed on professional practices such as testing, version control, code quality and documentation, and team process and interaction. Senior standing required.
Prerequisite: COSC 351 with a minimum grade of D.
COSC 420. Compilers. 3 Hours.
A study in the design and construction of compilers to implement modern programming languages with a focus on procedural and object-oriented programming languages. Topics include scanning, parsing, semantic analysis, code generation, and optimization.
Prerequisite: COSC 273 with a minimum grade of C and COSC 340 with a minimum grade of D and COSC 350 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 (COSC 240 with a minimum grade of D or MATH 235 with a minimum grade of D or MATH 260 with a minimum grade of D).
COSC 440. Artificial Intelligence. 3 Hours.
Introduction to areas of artificial intelligence: intelligent agents, problem solving and search, planning, knowledge-based systems and inference, and learning.
Prerequisite: COSC 350 with a minimum grade of D.
COSC 460. Computer & Network Security. 3 Hours.
An introduction to computer security fundamentals: confidentiality, integrity, availability, authentication, and access control. Ethical hacking. Secret key and public key cryptography, network security protocols, and malware.
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.