83 courses with the subject CSC, each shown exactly as we captured it from the college's catalog, with every element we hold. Where the wording looks broken, that is our reading of the catalog, not the college's text.
CSC 101Overview of Computer Science3
An introduction to fundamental principles of computer science including abstraction, data and information, the World Wide Web, algorithms, programs, creative computer use, and the global impact of computing. Students cultivate their understanding by working with data, logically solving problems individually and collaboratively, and writing simple computer programs. May not be counted towards the computer science major or minor. (D)
An introduction to fundamental principles of computer science including abstraction, data and information, algorithm development, and computer programming. Students apply computational problem solving skills to representative problems from a range of domains using the Python programming language. Appropriate for students who want computing experience applicable to other disciplines. May not be counted towards the computer science major or minor. (D)
CSC 103Introduction to Web and Mobile Applications3
An overview of the key concepts and practical skills required to build computer applications, including mobile and web development. Topics include web technology, design thinking, prototyping, application architecture, and utilizing low-code and no-code platforms. The course also includes an introductory look at artificial intelligence with a focus on large language models. No programming or other computer science experience needed. May not be counted towards a computer science major or minor. y CSC 111. Introduction to Computer Science. (4 h) Introduction to computer programming and algorithmic problem solving in an object-oriented programming language. Topics include basic control structures, methods, parameters, objects, classes, arrays, and program testing and debugging. Recommended as the first course for students considering a major or minor in computer science. (D)
Choose two of the following: * Either BIO 323 or PSY 334 may count towards the major, but not both. ** Either BIO 374 or PSY 222 may count towards the major, but not both. For the B.S. major, the schedule of courses is flexible. After completing PSY 151, BIO 150, BIO 150L, BIO 160, and BIO 160L, students should begin taking NEU core courses. It is recommended that all prospective majors take CHM 111 and CHM 111L in the fall of the first year and complete BIO 150 and BIO 150L and STA 111 or an equivalent course during either the fall or spring of the first year. Students pursuing the B.S. in neuroscience with an interest in a health profession career are additionally advised to take CHM 122 and CHM 122L in the spring of the first year. These students should select additional co-requirements after consulting with a health professions adviser. A maximum of two hours of 390-sequence courses may be counted as hours in the major, but an additional six hours may be taken and applied toward graduation as elective hours. Code Title Hours Any CHM course at the 100- level or above, except CHM 108, 301, 381, 390, 391, or CHM 395
A study of algorithm development and problem solving using top-down design, data abstraction, object-oriented programming, and program debugging and testing. Topics include memory allocation, recursion, data structures such as arrays, lists, stacks, queues, and trees, simple sorting and searching algorithms, and algorithm complexity. P-CSC 111 or prerequisite override required. (D)
A weekly seminar designed for students to develop their problem solving skills designing and implementing software. Does not count towards the computer science major or minor. May be taken twice. Pass/Fail. P-CSC 112 or prerequisite override required.
Introduction to concepts, conventions, and techniques used in computer science research. Students will learn research methods, evaluation of data, the presentation and dissemination of results, and research ethics within the context of computer science. Students interested in the Honors in Computer Science program are encouraged to take this course. Does not count towards the computer science major or minor. Pass/Fail only. P-CSC 201 or prerequisite override required.
Topics in computer science that are not covered in regular courses or that give special practice in skills used in other courses. Not to be counted toward the bachelor of science in computer science. May be repeated for up to 6 hours if the topic changes.
Subject
CSC
Credits (min)
1
Credits (max)
3
Type
course
Repeatable
May be repeated for up to 6 hours if the topic changes.
A course of independent study directed by a faculty advisor, not to be counted toward the bachelor of science in computer science. May be repeated for up to 3 hours. Enrollment requires prearrangement with a computer science faculty member and departmental approval P-Prerequisite override required.
Study of the fundamentals of data visualization, its applications and limitations, and potential security and ethical concerns. Students will learn the complete pipeline for conducting business intelligence and producing polished reports and dashboards while gaining exposure to contemporary business intelligence software tools. (QDA)
CSC 196Introduction To High Performance Computing3
Introduction to the foundations of interconnected systems and parallel computing. Students will gain hands-on experience using WFU’s own supercomputer, DEAC. Topics covered include the architecture of supercomputing clusters, job scheduling, data management, parallel frameworks, and GPU computing. Topics are approached at a level that is accessible to students across multiple disciplines.
A study of fundamental data structures and the algorithms that act upon them. Data structure topics include the application, implementation, and complexity analysis of trees, hash tables, heaps, maps, sets, and graphs. Algorithmic topics include advanced sorting and searching methods and an introduction to divide-and-conquer and greedy techniques, graph algorithms, backtracking, and dynamic programming. P-CSC 112 and
Comparative study of programming language paradigms, including imperative languages, functional programming, logic programming, and object-oriented programming. Syntax, semantics, parsing, grammars, and issues in language design are covered. P-CSC 112 and MTH 117.
Study of computer system mechanisms supporting program execution, with a focus on mapping programs to underlying hardware. Topics include data representation, assembly language, processor architecture, and the memory system, with an introduction to system-level programming. P-CSC 112 and MTH 117.
Study of computer system mechanisms supporting program execution, with a focus on process and resource management. Topics include process control, virtual memory, concurrency, parallelism, file-based and network-based I/O, and additional coverage of system-level programming. P-CSC 250.
Introduction to the foundational concepts, techniques, and applications of artificial intelligence with special focus on machine learning. Students will explore, through both theory and hands-on implementation, problem- solving strategies, supervised and unsupervised learning methods, basic neural networks, and optimization techniques. Ethical considerations, including fairness, transparency, and societal impacts of AI, will also be addressed. P - CSC 112 and MTH 117.
Prepares students to identify, analyze, and address the ethical implications of computing technologies in the service of human flourishing. P - CSC 112.
A study of techniques for designing algorithms, analyzing their time and space complexity, and demonstrating their correctness. The algorithm design techniques include divide-and-conquer, greedy algorithms, dynamic programming, randomized algorithms, string processing algorithms, and parallel algorithms. The algorithm analysis includes computational models, best/average/worst case analysis, and computational complexity (including lower bounds and NP-completeness). P-CSC 201 and MTH 112. (QR)
An in-depth study of computer system and architecture design. Topics include processor design, memory hierarchy, external storage devices, interface design, and parallel architectures. P-CSC 250.
Introduction to database management systems. Topics include data independence, database models, query languages, security, integrity, and transactions. P-CSC 201.
Management, analysis, and visualization of large-scale data sets. Topics includes key-value databases, distributed file systems, map- reduce techniques, similarity measures, link analysis, and clustering. P - CSC 321.
Study of fundamental topics in software engineering including software processes, agile software development and project management, requirements engineering, system modeling, design patterns and implementation, and software testing. Students practice software engineering principles through team projects. P-CSC 201.
Study of the fundamental design concepts and software principles underlying mobile and pervasive computing, including mobile interface design, data management, mobile networks, location aware computing, and mobile security. Involves significant programming on modern mobile platforms. P-CSC 201.
CSC 333Principles of Translators for Compilers and Interpreters3
Study of techniques for translating high-level programming languages to a target language. Typical target languages include Java bytecode and assembly language. Topics include lexical analysis, parsing, intermediate representations, language semantics, code generation, and optimization. P-CSC 231 and 250.
Study of the different modules that compose a modern operating system. In-depth study of concurrency, processor management, memory management, file management, and security. P-CSC 251.
Study of wide area connectivity through interconnection networks. Emphasis is placed on Internet architecture and protocols. Topics include addressing, routing, multicasting, quality of service, and network security. P-CSC 251.
Study of cloud computing platforms and services. Emphasis is on infrastructure, platforms, and software as a service models on contemporary cloud platforms. Topics include delivery and deployment models, virtual machines, containers, serverless, clustering, Kubernetes, operations, and security. P - CSC 201.
Study of techniques for parallel and high performance computing. Topics include an overview of modern high-performance computer design, pipelining, concurrency, data dependency, shared memory, message passing, and graphics processors. Select parallel algorithms and methods for asymptotic scalability analysis are also presented. Assignments may include coding with OpenMP, MPI, and the CUDA library. P-CSC 201 and 251.
An introduction to general purpose parallel program development on Graphics Processing Units (GPUs). Topics covered will include data parallelism, memory and data locality, parallel algorithm patterns and performance metrics, and application test studies. P-CSC 201 and MTH 121 or 205.
Introduction to computer security concepts and associated theory. Detailed coverage of the core concepts of access control, cryptography, trusted computing bases, digital signatures, authentication, network security, and secure architectures. Legal issues, security policies, risk management, certification and accreditation are covered in their supporting roles. Students will learn to analyze, design, and build secure systems of moderate complexity. P-CSC 251.
Numerical methods for solving matrix and related problems in science and engineering using a high-level matrix-oriented language such as MATLAB. Topics include systems of linear equations, least squares methods, and eigenvalue computations. Special emphasis given to applications. Credit not allowed for both CSC 352 and MTH 326. P-MTH 112; and MTH 121 or 205.
Numerical computations on modern computer architectures; floating- point arithmetic and round-off error. Programming in a scientific/ engineering language such as MATLAB, C, or FORTRAN. Algorithms and computer techniques for the solution of problems such as roots of functions, approximation, integration, systems of linear equations, and least squares methods. Credit not allowed for both CSC 355 and MTH 355. P-MTH 112; and MTH 121 or 205.
An overview of areas of study in artificial intelligence. Topics are chosen from among knowledge representation, formal logic, fuzzy logic, intelligent agents, expert systems, machine learning, robotics, and natura language processing. P-CSC 201 and CSC 270.
An overview of data mining methods and algorithms for classification, association analysis, clustering, and anomaly detection. A major focus will be on the implementation of algorithms for and design and construction of solutions to data mining problems. Applications and ethical considerations of data mining in humanities, arts, and healthcare are discussed. P-CSC 201 and 270. Combined Bulletin 2026-2027 141
An introduction to concepts and application of machine learning algorithms and techniques, focusing on supervised and unsupervised learning. Students learn the theoretical concepts behind several types of machine learning algorithms and gain practical experience applying them. Algorithms covered could include logistic regression, support vector machines, regularization, dimensional reduction, clustering, and neural networks. P-CSC 201 and 270, MTH 112 and MTH 121 or 205.
An introduction to concepts and applications of neural networks and deep learning, a branch of machine learning that uses additional layers of high-level representations of data to maximize performance on a given task. The topics covered may include basic neural networks, deep neural networks, and convolutional and recurrent neural networks. Students learn the theoretical concepts behind several types of neural network algorithms and gain practical experience applying them. P-CSC 201 and 270, MTH 112, and MTH 121 or 205.
Introduction to reinforcement learning concepts and applications, including single-agent and multi-agent settings. Topics may cover value- and policy-based methods, temporal-difference learning, exploration strategies, explainability, and safety of learned agents. Students gain theoretical understanding and practical experience applying reinforcement learning techniques. P - CSC 270.
Introduction to computational approaches essential to modern biological inquiry. Approaches may include large biological dataset analyses, sequence similarity and motif searches, and analysis of high-throughput genomic technologies. Emphasizes interdisciplinary interaction and communication. Credit not allowed for both CSC 385 and BIO 385 or PHY 385. P-CSC 201 (and BIO 150, 150L, 160, and BIO 160L if taken as
Introduction of concepts and development of skills for comprehension of systems biology problems, including both biological and computational aspects. Topics may include genome-wide transcriptomic analysis, protein interaction networks, large-scale proteomics experiments, and computational approaches for modeling, storing, and analyzing the resulting data sets. Emphasizes interdisciplinary interaction and communication. Credit not allowed for both CSC 387 and BIO 387. P- CSC 201 (also requires BIO 150, 150L, 160, and BIO 160L if taken as
Topics in computer science that are not studied in regular courses or which further examine topics covered in regular courses. May be repeated if topic changes. P - any 200-level CSC course and prerequisite override required. l
Independent study directed by a faculty advisor. By prearrangement. No more than three hours may be counted toward a computer science major or minor. Enrollment requires prearrangement with a computer science faculty member and departmental approval. May be repeated for credit. P-any 200-level CSC course and prerequisite override required.
An in-depth study of computer systems and architecture design. Topics include processor design, memory hierarchy, external string devices, interface design, and parallel architectures.
Introduction to large-scale database management systems. Topics include data independence, database models, query languages, security, integrity, and transactions.
Management, analysis, and visualization of large-scale data sets. Topics include key-value databases, distributed file systems, map reduce techniques, similarity measures, link analysis, and clustering. P CSC 621.
Study of fundamental topics in software engineering including software processes, agile software development and project management, requirements engineering, system modeling, design patterns and implementation, and software testing. Students practice software engineering prinicples through team projects.
Study of the fundamental design concepts and software principles underlying mobile and pervasive computing, including mobile interface design, data management, mobile networks, location aware computing, and mobile security. Involves significant programiming on modern mobile platforms.
CSC 633Principles of Translators for Compilers and Interpreters3
Study of techniques for translating high-level programming languages to a target language. Typical target languages include Java bytecode and assembly language. Topics include lexical analysis, parsing, intermediate representatives, language semantics, code generation, and optimization.
Study of the different modules that compose a modern operating system. In-depth study of concurrency, processor management, memory management, file management, and security.
Study of wide area connectivity through interconnection networks. Emphasis is on Internet architecture and protocols. Topics include addressing, routing, multi-casting, quality of service, and network security.
Study of cloud computing platforms and services. Emphasis is on infrastructure, platforms, and software as service models on contemporary cloud platforms. Topics include delivery and deployment models! virtual machines, containers, serverless, clustering, Kubernetes, operations, and security.
Study of techniques for parallel and high performance computing. Topcs include an overview of modern high-performance computer design, pipelining, concurrency, data depedency, shared memory, message passing, and graphics processors. Select parallel algorithms and methods for asymptotic scalability analysis are also presented. Assignments may include coding with OpenMP, MPI, and the CUDA library.
An introduction to general purpose parallel program development on Graphics Processing Units (GPUs). Topics covered will include data parallelism, memory and data locality, parallel algorithm patterns and performance metrics, and application test studies.
Introduction to computer security concepts and associated theory. Detailed coverage of the core concepts of access control, cryptography, trusted computing bases, digital signatures, authentication, network security, and secure architectures. Legal issues, security policies, risk management, certification and accreditation are covered in their supporting roles. Students will learn to analyze, design, and build secure systems of moderate complexity.
Numerical methods for solving matrix and related problems in science and engineering using high-level matrix-oriented language such as MATLAB. Topics include systems of linear equations, least squares methods, and eigenvalue computations. Special emphasis is given to applications. Credit is not allowed for both CSC 652 and MTH 626.
An introduction to numerical computations on modern computer architectures; floating point arithmetic and round-off error including programming in a scientific/engineering language such as MATLAB, C or Fortran. Topics include algorithms and computer techniques for the solution of problems such as roots of functions, approximations, integration, systems of linear equations and least squares methods. Credit not allowed for both MTH 655 and CSC 655.
Introduction to problems in artificial intelligence. Topics may include knowledge representation, heuritistic search, formal logic, planning, robotics, machine learning, intelligent agents, and pattern recognition.
An overview of data mining methods and algorithms for classification, association analysis, clustering, and anomaly detection. A major focus will be on the implementation of algorithms for and design and construction of solutions to data mining problems. Applications and ethical considerations of data mining in humanities, arts, and healthcare are discussed.
An introduction to concepts and application of machine learning algorithms and techniques, focusing on supervised and unsupervised learning. Students learn the theoretical concepts behind several types of machine learning algorithms and gain practical experience applying them. Algorithms covered could include logistic regression, support vector machines, regularization, dimensional reduction, clustering, and neural networks.
An introduction to concepts and applications of neural networks and deep learning, a branch of machine learning that uses additional layers of high-level representations of data to maximize performance on a given task. The topics covered may include basic neural networks, deep neural networks, and convolutional and recurrent neural networks. Students learn the theoretical concepts behind several of types of neural network algorithms and gain practical experience applying them.
Introduction to reinforcement learning concepts and applications, including single-agent and multi-agent setting. Topics may cover value- and policy-based methods, temporal-difference learning, exploration strategies, and safety of learned agents. Students gain theoretical understanding and practical experience applying reinforcement learning techniques.
Introduction to bioinformatics and computing techniques essential to current biomedical research. Primary focus is gene and protein sequence and structure databases and algorithms for sequence and structure analysis. Emphasizes interdisciplinary interactions and communication. Also listed as PHY 685 and BIO 685.
Introduction of concepts and development of skills for the comprehension of modern systems biology research problems, including both biological and computational aspects. Topics may include microarrays, protein interaction networks, large-scale proteomics experiments, and algorithms and computational approaches for modeling, storing, and analyzing the resulting data sets. Emphasizes interdisciplinary interactions and communication.
Basic theoretical principles of computer science. Topics include the relationship between automata and grammars, Church's thesis, unsolvability, and computational complexity.
Design and analysis of algorithms. Topics may include time and space complexity analysis, divide-and-conquer algorithms, the fast Fourier transform, NP-complete problems, and efficient algorithms for operations on lists, trees, graphs, and matrices.
A thorough, current treatment of parallel processing and supercomputing. Modern high-performance commercial architectures, parallel programming, and various supercomputing applications are discussed. Hands-on experience is emphasized. Students are given access to a variety of machines.
Design and implementation of optimizing compilers. Optimization techniques, parallelizing transforms, and comparative examples form the literature. P-CSC 633.
Issues in operating system development; resource management, queuing theory, concurrent processing, and languages for operating system development. P-CSC 641.
The problem of finding global minimums of functions is addressed in the context of problems in which many local minima exist. Numerical techniques are emphasized, including gradient descent and quasi- Newton methods. Current literature is examined and a comparison made of various techniques for both unconstrained and constrained optimization problems. Also listed as MTH 753.
CSC 754Numerical Methods for Partial Differential Equations3
Numerical techniques for solving partial differential equations (including elliptic, parabolic, and hyperbolic) are studied along with applications to science and engineering. Theoretical foundations are described, and emphasis is on algorithm design and implementation using either C, FORTRAN or MATLAB. Also listed as MTH 754. P-CSC 655 or MTH 655.
Study of statistical pattern recognition techniques and computer-based methods for decision-making, including discriminant functions, feature extraction, and classification strategies. Emphasis is on applications to medical image analysis. P-POI.
Techniques for extracting features from images: optimal thresholding, 2D and 3D feature measurement, graph isomorphism and graph matching methods. P-CSC 766.
Design of artificial neural networks. Introduction to the relevant neurophysiology, feedforward networks, recurrent networks, and applications to pattern recognition and optimization.
Provides students an opportunity to integrate computer science theory and practice by working in a supervised and professional setting. The course is limited to those seeking the fifth-year Master's in computer science and approval must be obtained by the Computer Science Graduate faculty prior to enrollment. Credit hours may be adjusted based on the length of the internship. May be repeated. Satisfactory/ Unsatisfactory. P-CSC 631 (admission to the 5th year program).