University of North Carolina at Greensboro · Courses
CSC
143 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 100The Beauty and Joy of Computing 3
A broad-based introduction to key concepts and principles of computer science. Exploration of seven big ideas of computing: creativity, abstraction, data, algorithms, programming, the Internet, and impact of computing.
CSC 105Data, Computing, and Quantitative Reasoning 3
Problem-based introduction to quantitative reasoning, including computational methods; formulation of quantitative arguments; algorithmic understanding, selection, and utilization; data modeling, interpretation, and summarization of results, on real world datasets.
Using computing to apply mathematical concepts in developing algorithmic solutions to real-world problems, stressing analysis and logical reasoning. A modern programming language will be introduced for examples and assignments.
CSC 120Introduction to Computer Programming for Non-Majors 3
Introduction to computer programming for non-computer science majors, including programming concepts of variables, expressions, decision statements, iteration, functions, and modular design. Language and applications chosen to be relevant to non-majors.
CSC 129Exploring Artificial Intelligence: Concepts and Practice 3
This course is designed for non-CS major students and covers concepts and applications of AI and societal impacts and ethical considerations of AI. Selected advanced topics such as generative AI and large language models will also be delivered with hands-on experience. No programming knowledge is required.
Comparison between Java and other high level languages. Advanced syntax of Java. Emphasis on modularization and abstraction. Big-O analysis of algorithms. Design and use of abstract data types with various implementations.
CSC 230Elementary Data Structures and Algorithms 3
Advanced syntax of high level language taught in CSC 130. Emphasis on modularization and abstraction. Big-O analysis of algorithms. Design and use of abstract data types with various implementations.
CSC 261Computer Organization and Assembly Language 3
Introduction to the organization of the computer through the use of Assembly Language programming. Data representation, parts of the computer system, Assembly Language fundamentals, instruction sets, memory, and floating-point operations.
Historical and social context of computing, ethical responsibilities of the computing professional, intellectual property rights, and risks and liabilities.
Static and dynamic data structures emphasizing binary trees and graphs. Advanced programming techniques. Advanced sorting and searching algorithms. Hashing techniques. Performance analysis. Methods of developing large applications programs.
Concepts of block-structured, object-oriented, functional, logic, and concurrent programming languages. Comparative study of syntactic and semantic features of these languages and writing programs using them.
System programming with emphasis on processes, memory management, multithreaded programming, synchronization and deadlocks, interprocess communication, parallel and distributed computing, networking, files systems, security, signals, and virtualization containers.
Introduction to concepts of web application development, including web page structure and appearance, client-side interactivity and behavior, web services and APIs, server-side scripting, persistent data storage, and software version control.
Problem-based learning introduction to Data Science, including programming with data; data mining, munging, and wrangling; statistics, analytics, and visualization, towards scientific, social, and environmental challenges.
Concepts and methods of network analysis, including network data extraction, management, model, visualization, and analysis of network structure and dynamics.
Big data definitions and characteristics, computing environment for big data management and processing, machine learning models and algorithms, and scaling up machine learning (high dimensionality reduction).
Experiential learning towards advanced concepts of Data Science, including efficient and parallel programming with large scale datasets, advanced data organization and storage, applied machine learning and inferencing, towards real-world challenges.
Concepts of state-of-the-art deep learning architectures, algorithms for various computer vision tasks (e.g., such as image classification, object detection, semantic segmentation, image generation, and high-dimensional image analysis), and hands-on exercises and project.
Introduction to the problems and methods in Bioinformatics. Problem areas include restriction mapping, map assembly, sequencing, DNA arrays, and sequence comparison.
Number systems and errors, solutions of non-linear and linear systems, interpolation, numerical differentiation and integration, solution of differential equations. Implementation of numerical methods using a high-level programming language.
Logical foundations, knowledge representation and reasoning, search, and selected topics such as natural language processing and reasoning under uncertainty.
Basic techniques of compiler design and implementation: lexical analysis, parsing, code generation. Sizable programming project implementing a compiler for a block-structured language with strong typing.
Survey of concepts and techniques for human-computer interface development. Topics include user-centered design, user interface programming, and usability evaluation.
Word representation, text preprocessing techniques, concepts of state-of-the-art deep learning architectures, algorithms for various NLP tasks (named entity recognition, question answering, information extraction, sentiment analysis etc.), and hands-on exercises and project.
Finite state automata and regular expressions, context-free grammars, push-down automata and their use in parsing, overview of language translation systems, models for programming language semantics, computability and undecidability.
Hardware and software components of computer systems, their organization and operations. Topics: comparative instruction set architectures, microprogramming, memory management, processor management, I/O, interrupts, and emulation of processors.
Techniques and strategies used in operating system design and implementation: managing processes, input/output, memory, scheduling, file systems, and protection.
Contemporary database systems. Emphasis on query processing, design, and implementation of applications in relational (SQL) databases. Introduction to other database models such as XML, object-oriented, and deductive.
Foundation and principles of data mining-Architecture, languages, data preparation and core algorithms including association mining, classification and clustering will be discussed. Topics such as graph mining may also be covered.
Hardware and software components of computer networks, their organization and operations. Topics: open system interconnection; local area networks; TCP/IP internetworking, routing, and packet switching; network programming.
Digital communications, communication networks, wireless communication technology, wireless networking, wireless LANs, and wireless network programming.
Core concepts in computer security, including the security goals of confidentiality, integrity, and availability; authentication; access control; security software development; use of cryptography; and basic network security.
Theory and practice of cryptography, emphasizing formal models and security reasoning. Primitives covered include private and public-key encryption, message authentication codes, hash functions, digital signatures, secret sharing, and zero-knowledge proofs.
The course explores the network security concepts of communication protocols; security in routing; remote authentication; access policies; web security; network vulnerabilities; intrusion detection and prevention; and network traffic analysis.
Problem-based learning introduction to Data Science, including programming with data; data mining, munging, and wrangling; statistics, analytics, and visualization, towards scientific, social, and environmental challenges.
Concepts and methods of network analysis, including network data extraction, management, model, visualization, and analysis of network structure and dynamics.
Big data definitions and characteristics, computing environment for big data management and processing, machine learning models and algorithms, and scaling up machine learning (high dimensionality reduction).
Experiential learning towards advanced concepts of Data Science, including efficient and parallel programming with large scale datasets, advanced data organization and storage, applied machine learning and inferencing, towards real-world challenges.
Concepts of state-of-the-art deep learning architectures, algorithms for various computer vision tasks (e.g., such as image classification, object detection, semantic segmentation, image generation, and high-dimensional image analysis), hands-on exercises and project, and research topics.
Introduction to the problems and methods in Bioinformatics. Problem areas include restriction mapping, map assembly, sequencing, DNA arrays, and sequence comparison.
Advanced topics in bioinformatics related to sequence comparison and database search, fragment assembly of DNA, physical mapping of DNA, phylogenetic trees, genome rearrangements, and molecular structure prediction.
Number systems and errors, solutions of non-linear and linear systems, interpolation, numerical differentiation and integration, solution of differential equations. Implementation of numerical methods using a high-level programming language.
Logical foundations, knowledge representation and reasoning, search, and selected topics such as natural language processing and reasoning under uncertainty.
Introduction to healthcare data, data systems, and different kinds of applications of analytics for health care, including clinical and research applications.
Problem-based learning with artificial intelligence approaches of data science, data mining, statistics, and machine/deep learning, directed towards solving quantitative problems in the domain of healthcare analytics.
CSC 632Ethics and Intellectual Property for Informatics and Analytics 3
Students engage relevant ethical and legal issues pertaining to datafication and intellectual property for informatics and analytics. Students conduct ethics and intellectual property research for a particular domain and produce reports and presentations using reproducible methods.
Basic techniques of compiler design and implementation: lexical analysis, parsing, code generation. Sizable programming project implementing a compiler for a block-structured language with strong typing.
Organization and scheduling of software engineering projects and structured software design. Specification methods, metrics, software engineering tools, design, prototyping, version control, and testing.
Survey of concepts and techniques for human-computer interface development. Topics include user-centered design, user interface programming, and usability evaluation.
Word representation, text preprocessing techniques, concepts of state-of-the-art deep learning architectures, algorithms for various NLP tasks (named entity recognition, question answering, information extraction, sentiment analysis etc.), and hands-on exercises and projects.
Finite state automata and regular expressions, context-free grammars, push-down automata and their use in parsing, overview of language translation systems, models for programming language semantics, computability and undecidability.
Computability theory including Church-Turing thesis (Turing machines, variants, other models), decidability (decidable and undecidable problems for automata and grammars, the halting problem), reducibility (undecidability of mathematical truth).
Modern development of algorithm design and analysis for sequential and parallel computers; parallel, number-theoretic, probabilistic, and approximation algorithms, string matching, computational geometry, NP-completeness: worst-case versus average-case.
Introduces the mathematical foundations that support advanced studies in computer science including computer programming and the analysis of algorithms.
Hardware and software components of computer systems, their organization and operations. Topics: comparative instruction set architectures, microprogramming, memory management, processor management, I/O, interrupts, and emulation of processors.
Techniques and strategies used in operating system design and implementation: managing processes, input/output, memory, scheduling, file systems, and protection.
Distributed and parallel systems. High-speed and wireless networks. Mobile computing. Communication, synchronization, distributed shared memory, real-time and fault-tolerant systems; current implementations.
Modern database models. User interface and operations. Applications design. Introduction to multi-database systems: interoperability and data integration. Selected topics of current interest.
File organization and indexing techniques. Query processing and optimization. Concurrency control and crash recovery. Distributed and heterogeneous database systems. Selected topics of current interest in database and knowledge-base systems.
Foundation and principles of data mining-Architecture, languages, data preparation and core algorithms including association mining, classification and clustering will be discussed. Topics such as graph mining may be also covered.
Selected topics of current interest such as: deductive databases, modeling and management of uncertain and inaccurate information, multi-database systems, data mining, on-line analytical processing and data warehousing.
Hardware and software components of computer networks, their organization and operations. Topics: open system interconnection; local area networks; TCP/IP internetworking, routing, and packet switching; network programming.
Digital communications, communication networks, wireless communication technology, wireless networking, wireless LANs, and wireless network programming.
Core concepts in computer security, including the security goals of confidentiality, integrity, and availability; authentication; access control; security software development; use of cryptography; and basic network security.
Theory and practice of cryptography, emphasizing formal models and security reasoning. Primitives covered include private and public-key encryption, message authentication codes, hash functions, digital signatures, secret sharing, and zero-knowledge proofs.
The course explores the network security concepts of communication protocols, security in routing, remote authentication, access policies, web security, network vulnerabilities, intrusion detection and prevention, and network traffic analysis.
Final semester capstone experience for Computer Science students not taking the thesis or individual project options. Students create a cumulative technical portfolio which is presented in multiple modalities, including written and oral.
Introduction to computer science research and standards in different areas of computer science. Particular emphasis on research in the department with faculty-presented research presentations.
Problem-based learning introduction to Data Science, including programming with data; data mining, munging, and wrangling; statistics, analytics, and visualization, towards scientific, social, and environmental challenges.
Concepts and methods of network analysis, including network data extraction, management, model, visualization, and analysis of network structure and dynamics.
Big data definitions and characteristics, computing environment for big data management and processing, machine learning models and algorithms, and scaling up machine learning (high dimensionality reduction).
In-depth exploration of an advanced topic in algorithms. Topic varies by semester, and includes topics such as randomized algorithms, parallel algorithms, online algorithms, approximation algorithms, and quantum computing/algorithms.
Experiential learning towards advanced concepts of Data Science, including efficient and parallel programming with large scale datasets, advanced data organization and storage, applied machine learning and inferencing, towards real-world challenges.
In-depth exploration of an advanced topic in image processing. Topic varies by semester, and includes topics such as image enhancement, image analysis, machine (deep) learning-based image processing.
Concepts of state-of-the-art deep learning architectures, algorithms for various computer vision tasks (e.g., such as image classification, object detection, semantic segmentation, image generation, and high-dimensional image analysis), hands-on exercises and project, and research topics.
In-depth exploration of an advanced topic in computer security. Topic varies by semester, and includes topics such as system security, software security, web security, and network security.
In-depth exploration of an advanced topic in networks. Topic varies by semester, and includes topics such as cloud systems, data center services, network computing, Internet of Things, social networks, software defined networks, and network security.
Introduction to the problems and methods in Bioinformatics. Problem areas include restriction mapping, map assembly, sequencing, DNA arrays, and sequence comparison.
Advanced topics in bioinformatics related to sequence comparison and database search, fragment assembly of DNA, physical mapping of DNA, phylogenetic trees, genome rearrangements, and molecular structure prediction.
Number systems and errors, solutions of non-linear and linear systems, interpolation, numerical differentiation and integration, solution of differential equations. Implementation of numerical methods using a high-level programming language.
Logical foundations, knowledge representation and reasoning, search, and selected topics such as natural language processing and reasoning under uncertainty.
CSC 730Advanced Topics in Artificial Intelligence 3
In-depth exploration of an advanced topic in artificial intelligence. Topic varies by semester, and includes topics such as natural language processing, argument mining, and intelligent tutoring systems.
In-depth exploration of an advanced topics in database. Topic varies by semester, and includes topics such as complex data types, big data analytics, parallel and distributed databases, advanced indexing, advanced application development, and blockchain databases.
In-depth exploration of an advanced topic in bioinformatics. Topic varies by semester, and includes topics such as ontologies, big biological data analysis, hypothesis testing for biological applications, text mining and natural language processing, etc.
In-depth exploration of an advanced topic in machine learning. Topic varies by semester, and includes topics such as statistical computing approaches, model building techniques, graph analytics, big data analytics, and emerging machine learning approaches.
Organization and scheduling of software engineering projects and structured software design. Specification methods, metrics, software engineering tools, design, prototyping, version control, and testing.
Basic techniques of compiler design and implementation: lexical analysis, parsing, code generation. Sizable programming project implementing a compiler for a block-structured language with strong typing.
Discussion of current research in an area of computer science not covered by available current research courses, including problems in theoretical computer science, programming languages, software engineering, or other areas.
CSC 741Current Research in Artificial Intelligence 3
Discussion of current research in a focused problem area of artificial intelligence, which could include problems in natural language processing, argument mining, or intelligent tutoring systems. Topics will be announced with each offering.
Discussion of current research in a focused problem area of computer systems, which could include problems in operating systems, architecture, networking, or security. Topics will be announced with each offering.
Discussion of current research in a focused problem area of database, which could include problems in data warehousing and online analytical processing, data mining, social networks, or data streaming.
Survey of concepts and techniques for human-computer interface development. Topics include user-centered design, user interface programming, and usability evaluation.
CSC 745Computing Research with Applications in Physical Sciences 3
Discussion of current research in a focused problem area of interdisciplinary computational research spanning across domains including but not limited to biology, chemistry, and geography. Problems will include novel computational approaches and developments in computer science with applications in one of the physical sciences.
CSC 746Computing Research with Applications in Social Sciences 3
Discussion on research problems and solutions for large-scale datasets in the domain of Social Sciences. Research topics could include distributed databases, data mining/fusion/privacy, machine learning and/or statistical approaches.
CSC 747Computing Research with Applications in Health Sciences 3
Discussion of current research in the domain-focused problems for health sciences which include biomedical image processing/analysis, multimodal/high-dimensional/longitudinal biomedical data analysis, machine/deep learning, and statistical analysis.
Finite state automata and regular expressions, context-free grammars, push-down automata and their use in parsing, overview of language translation systems, models for programming language semantics, computability and undecidability.
Computability theory including Church-Turing thesis (Turing machines, variants, other models), decidability (decidable and undecidable problems for automata and grammars, the halting problem), reducibility (undecidability of mathematical truth).
Introduces the mathematical foundations that support advanced studies in computer science including computer programming and the analysis of algorithms.
Hardware and software components of computer systems, their organization and operations. Topics: comparative instruction set architectures, microprogramming, memory management, processor management, I/O, interrupts, and emulation of processors.
Techniques and strategies used in operating system design and implementation: managing processes, input/output, memory, scheduling, file systems, and protection.
Distributed and parallel systems. High-speed and wireless networks. Mobile computing. Communication, synchronization, distributed shared memory, real-time and fault-tolerant systems; current implementations.
Modern database models. User interface and operations. Applications design. Introduction to multi-database systems: interoperability and data integration. Selected topics of current interest.
File organization and indexing techniques. Query processing and optimization. Concurrency control and crash recovery. Distributed and heterogeneous database systems. Selected topics of current interest in database and knowledge-base systems.
Foundation and principles of data mining-Architecture, languages, data preparation and core algorithms including association mining, classification and clustering will be discussed. Topics such as graph mining may be also covered.
Selected topics of current interest such as deductive databases, modeling and management of uncertain and inaccurate information, multi-database systems, data mining, on-line analytical processing and data warehousing.
Hardware and software components of computer networks, their organization and operations. Topics: open system interconnection; local area networks; TCP/IP internetworking, routing, and packet switching; network programming.
Digital communications, communication networks, wireless communication technology, wireless networking, wireless LANs, and wireless network programming.
Core concepts in computer security, including the security goals of confidentiality, integrity, and availability; authentication; access control; security software development; use of cryptography; and basic network security.
Theory and practice of cryptography, emphasizing formal models and security reasoning. Primitives covered include private and public-key encryption, message authentication codes, hash functions, digital signatures, secret sharing, and zero-knowledge proofs.
The course explores the network security concepts of communication protocols, security in routing, remote authentication, access policies, web security, network vulnerabilities, intrusion detection and prevention, and network traffic analysis.