Computer Science and Engineering
Courses
CSCE 101 - Introduction to Computer Concepts (3 Credits)
History, application, and social impact of computers; problem-solving, algorithm development, applications software, and programming in a procedural language.
Carolina Core: ARP
CSCE 102 - General Applications Programming (3 Credits)
Introduction to systematic computer problem-solving and programming for a variety of applications.
Carolina Core: ARP
CSCE 104 - Program Design and Development (3 Credits)
CSCE 106 - Scientific Applications Programming (3 Credits)
CSCE 145 - Algorithmic Design I (4 Credits)
CSCE 146 - Algorithmic Design II (4 Credits)
Continuation of CSCE 145. Rigorous development of algorithms and computer programs; elementary data structures. Three lecture hours and two laboratory hours per week.
CSCE 180 - Artificial Intelligence for All (3 Credits)
Introduction to Artificial Intelligence and its applications. Overview of AI topics and applications, including machine learning, deep learning, natural language processing, knowledge representation, statistical inference, and symbolic manipulation.
CSCE 190 - Computing in the Modern World (1 Credit)
CSCE 201 - Introduction to Computer Security (3 Credits)
CSCE 205 - Business Applications Programming (3 Credits)
CSCE 207 - UNIX System Administration (3 Credits)
CSCE 209 - Special Topics in Computer Programming (1-4 Credits)
Programming and application development using selected programming languages. Course content varies and will be announced in the schedule of classes by title.
CSCE 210 - Computer Hardware Foundations (3 Credits)
CSCE 211 - Digital Logic Design (3 Credits)
Number systems, Boolean algebra, logic design, sequential machines.
Prerequisites: MATH 141.
CSCE 212 - Introduction to Computer Architecture (3 Credits)
CSCE 215 - UNIX/Linux Fundamentals (1 Credit)
UNIX operating system, user-level system commands, and programming tools. UNIX scripting languages.
Prerequisites: CSCE 145.
CSCE 240 - Advanced Programming Techniques (3 Credits)
CSCE 242 - Web Applications (3 Credits)
Web technologies to support client-server computing. Implementation of client-server applications.
Prerequisites: C or better in CSCE 146.
CSCE 245 - Object-Oriented Programming Techniques (3 Credits)
Advanced object-oriented concepts and techniques; multiple inheritance; memory management; operator overloading; polymorphism; performance issues.
Prerequisites: C or better in CSCE 146.
CSCE 247 - Software Engineering (3 Credits)
Fundamentals of software design and development; software implementation strategies; object-oriented design techniques; functional design techniques; design patterns; design process; source control; testing.
Prerequisites: C or better in CSCE 146.
CSCE 274 - Robotic Applications and Design (3 Credits)
Design and control of robots. Interactions between robots, sensing, actuation, and computation.
Prerequisites: C or better in CSCE 240.
CSCE 304 - Applied Problem Solving and Programming (3 Credits)
CSCE 311 - Operating Systems (3 Credits)
CSCE 313 - Embedded Systems (3 Credits)
CSCE 317 - Computer Systems Engineering (3 Credits)
CSCE 330 - Programming Language Structures (3 Credits)
CSCE 350 - Data Structures and Algorithms (3 Credits)
CSCE 355 - Foundations of Computation (3 Credits)
CSCE 390 - Professional Issues in Computer Science and Engineering (1 Credit)
Professional issues in the information technology professions; history and social context of computing; professional responsibilities; privacy; intellectual property; risks and liabilities of computer-based systems.
Carolina Core: VSR
CSCE 415 - Mainframe Systems (3 Credits)
CSCE 416 - Introduction to Computer Networks (3 Credits)
Concepts and components of computer networks and the Internet; network applications; network protocol stack.
Prerequisites: CSCE 146.
CSCE 490 - Capstone Computing Project I (3 Credits)
Major team-based software design project to be undertaken in a student’s final year of study; project planning, software requirements analysis, design, and specification. Written reports and oral presentations in a technical setting.
Prerequisites: D or better in CSCE 240.
Prerequisite or Corequisite: D or better in CSCE 350.
Graduation with Leadership Distinction: GLD: Professional and Civic Engagement Internships, GLD: Research
CSCE 491 - Capstone Computer Engineering Project (3 Credits)
CSCE 492 - Capstone Computing Project II (3 Credits)
Continuation of CSCE 490. Computer system implementation, testing, verification and validation of results. Written reports and oral presentations in a technical setting.
Graduation with Leadership Distinction: GLD: Professional and Civic Engagement Internships, GLD: Research
CSCE 498 - Independent Study (1-3 Credits)
Individual investigation or study of special topics. At most three credits may be applied toward a degree. Approval of project proposal by instructor and department advisor.
Graduation with Leadership Distinction: GLD: Research
CSCE 500 - Computer Programming and Applications (3 Credits)
CSCE 510 - System Programming (3 Credits)
CSCE 512 - System Performance Evaluation (3 Credits)
CSCE 513 - Computer Architecture (3 Credits)
CSCE 515 - Computer Network Programming (3 Credits)
Computer networks and communication protocols; socket programming; interprocess communication; development of network software; case studies.
Prerequisites: CSCE 311.
CSCE 516 - Computer Networks (3 Credits)
CSCE 517 - Computer Crime and Forensics (3 Credits)
Structure, design, and analysis of computer networks; ISO/OSI network architecture.
Prerequisites: CSCE 215.
CSCE 518 - Ethical Hacking (3 Credits)
Fundamental principles and techniques of ethical hacking, including penetration testing life cycle, planning and scoping, identifying targets and goals, active and passive reconnaissance, enumeration and scanning, exploitation, post-exploitation, and results reporting.
Prerequisites: CSCE 215 or previous Linux/UNIX experience.
CSCE 520 - Database System Design (3 Credits)
CSCE 522 - Information Security Principles (3 Credits)
Threats to information resources and appropriate countermeasures. Cryptography, identification and authentication, access control models and mechanisms, multilevel database security, steganography, Internet security, and intrusion detection and prevention.
CSCE 526 - Service Oriented Computing (3 Credits)
Cooperative information systems and service-oriented computing. Techniques for achieving coordinated behavior among a decentralized group of information system components. Distributed databases, multiagent systems, conceptual modeling, Web services, and applications.
Prerequisites: CSCE 311.
CSCE 531 - Compiler Construction (3 Credits)
Techniques for design and implementation of compilers, including lexical analysis, parsing, syntax-directed translation, and symbol table management.
Prerequisites: CSCE 240.
CSCE 544 - Functional Programming (3 Credits)
Functional programming as a paradigm. History of functional languages from Lisp to the present. Programming in Haskell, ML, or similar language at an intermediate level: recursive and higher-order functions, list comprehensions, types and classes, monads, lazy evaluation, reasoning about programs.
CSCE 546 - Mobile Application Development (3 Credits)
Development of mobile applications, including user interface design for mobile, local and cloud data storage techniques, and application architectures.
Prerequisites: CSCE 240 or previous programming experience with one of the following programming languages (C/C++, Java, Swift, Python, Matlab, Javascript).
CSCE 547 - Windows Programming (3 Credits)
Object-oriented methods and tools for application programming with graphically interactive operating systems.
Prerequisites: CSCE 240.
CSCE 548 - Building Secure Software (3 Credits)
Construction of software systems resistant to vulnerabilities and attacks. Cryptographic tools. Language, operating system, and network security. Case studies. Development of best practices through programming assignments.
Prerequisites: CSCE 240.
CSCE 551 - Theory of Computation (3 Credits)
CSCE 552 - Computer Game Development (3 Credits)
CSCE 555 - Algorithms in Bioinformatics (3 Credits)
Concepts, algorithms and tools for important problems in Bioinformatics, including nucleotide and amino acid sequence alignment, DNA fragment assembly, phylogenetic reconstruction, and protein structure visualization and assessment.
Prerequisites: CSCE 350.
CSCE 556 - Data Analysis in Python: Application to Neuroscience (3 Credits)
CSCE 557 - Introduction to Cryptography (3 Credits)
Design of secret codes for secure communication, including encryption and integrity verification: ciphers, cryptographic hashing, and public key cryptosystems such as RSA. Mathematical principles underlying encryption. Code-breaking techniques. Cryptographic protocols.
Cross-listed course: MATH 587
CSCE 561 - Numerical Analysis (3 Credits)
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.
Cross-listed course: MATH 527
CSCE 563 - Systems Simulation (3 Credits)
CSCE 564 - Computational Science (3 Credits)
CSCE 565 - Introduction to Computer Graphics (3 Credits)
CSCE 567 - Visualization Tools (3 Credits)
CSCE 569 - Parallel Computing (3 Credits)
CSCE 571 - Critical Interactives (3 Credits)
Foundational techniques in multidisciplinary software development, specifically of applications designed to present sensitive, sometimes controversial, materials in ways to engender empathic awareness of the interactor.
Cross-listed course: FAMS 581
CSCE 572 - Human-Computer Interaction (3 Credits)
Interdisciplinary approach to interaction design, user-centered design, human abilities, survey development, experimental study methodology, heuristic evaluations, usability testing, universal design, and accessibility.
Prerequisites: Undergraduate or graduate standing in CSE or permission of the instructor.
CSCE 574 - Robotics (3 Credits)
CSCE 578 - Text Processing (3 Credits)
CSCE 580 - Artificial Intelligence (3 Credits)
Heuristic problem solving, theorem proving, and knowledge representation, including the use of appropriate programming languages and tools.
Prerequisites: CSCE 350.
CSCE 581 - Trusted Artificial Intelligence (3 Credits)
CSCE 582 - Bayesian Networks and Decision Graphs (3 Credits)
Normative approaches to uncertainty in artificial intelligence. Probabilistic and causal modeling with Bayesian networks and influence diagrams. Applications in decision analysis and support. Algorithms for probability update in graphical models.
Cross-listed course: STAT 582
CSCE 584 - Neural Networks and Their Applications (3 Credits)
Introduction to artificial neural networks, neural network topologies, neural network learning paradigms, training rules, and applications across supervised, unsupervised, and reinforcement learning tasks.
CSCE 585 - Machine Learning Systems (3 Credits)
CSCE 587 - Big Data Analytics (3 Credits)
Foundational techniques and tools required for data science and big data analytics. Concepts, principles, and techniques applicable to any technology and industry for establishing a baseline that can be enhanced by future study.
Cross-listed course: STAT 587
CSCE 588 - Advanced Machine Learning with Implementation (3 Credits)
Theory and application of machine learning. Current mainstream programming libraries such as in Python, and implementation of regression, clustering, principal components, and linear discriminant analysis. Detailed coverage of methods such as random forests, support vector machines, and k-nearest neighbors. Introduction to neural networks.
Cross-listed course: STAT 531
CSCE 590 - Topics in Information Technology (3 Credits)
Reading and research on selected topics in information technology. Course content varies and will be announced in the schedule of courses by title. May be repeated for credit as topics vary.
CSCE 594 - Strategic Management of Information Systems (3 Credits)
Strategic management and use of information systems in organizations.
Cross-listed course: MGSC 594
CSCE 611 - Advanced Digital Design (3 Credits)
Design techniques for logic systems; emphasis on higher-level CAD tools such as hardware description languages and functional modeling.
Prerequisites: CSCE 212.
CSCE 612 - VLSI System Design (3 Credits)
VLSI design process models, introduction to EDA tools, HDL modeling and simulation, logic synthesis and simulation, benchmark design projects.
Prerequisites: CSCE 211.
CSCE 613 - Fundamentals of VLSI Chip Design (3 Credits)
Design of VLSI circuits, including standard processes, circuit design, layout, and CAD tools. Lecture and guided design projects.
Prerequisites: ELCT 371.