You are here
History, application, and social impact of computers; problem-solving, algorithm development, applications software, and programming in a procedural language. Open to all majors. Carolina Core ARP.Syllabus
Introduction to systematic computer problem-solving and programming for a variety of applications. Open to all majors. Carolina Core ARP.Syllabus
Problem-solving, algorithmic design, and programming. Two lecture hours and four laboratory hours per week. Open to all majors. Carolina Core ARP.
See the online lectures of CSCE 145.Syllabus
Continuation of CSCE 145. Rigorous development of algorithms and computer programs; elementary data structures. Three lecture hours and two laboratory hours per week. Open to all majors.Syllabus
An introduction to the field of computing: trends in computing technology, the profession, and careers; subdisciplines in computing; the nature of research and development. Open to all majors. Not auditable.Syllabus
Introduction to the theory and practice of computer security, including security policies, authentification, digital certificates, firewalls, malicious code, legal and ethical issues, and incident handling. Not auditable.Syllabus
Fundamental algorithms and processes used in business information systems. Development and representation of programming logic. Introduction to implementation using a high-level programming language.Syllabus
Introduction to computer applications in business. Programming exercises in COBOL.Syllabus
Introduction to computer applications in science and engineering. Programming exercises in a high-level language. Open to all majors.Syllabus
The Unix programming environment: I/O programming, Unix processes, fork, exec, pipes and signals, and tools. Open to all majors.
Programming and application development using selected programming languages. Course content varies and will be announced in the schedule of classes by suffix and title.
Number representation, data formats, CPU and memory organization, assembly language, I/O and peripherals, computer networks.Syllabus
Number systems, Boolean algebra, logic design, sequential machines.Syllabus
Computer architecture, components. and organization; memory addressing; Input/Output; instruction sets; interrupts; assembly-language programming.Syllabus
UNIX operating system, user-level system commands, and programming tools. UNIX scripting languages.Syllabus
Pointers; memory management; advanced programming language structures: operator overloading, iterators, multiple inheritance, polymorphism, templates, virtual functions; Unix programming environment.Syllabus
Web technologies to support client-server computing. Implementation of client-server applications.
Fundamentals of software design and development; software implementation strategies; object-oriented design techniques; functional design techniques; design patterns; design process; source control; testing.Syllabus
Design and control of robots. Interactions between robots, sensing, actuation, and computation.Syllabus
Systematic problem definition, solution formulation, and computer implementation for business and related areas. Internet and database applications. Programming exercises in a high-level programming language.
Operating system structure and function; process implementation, scheduling, and synchronization; memory management; security; naming protection; resource allocation; network file systems.Syllabus
Fundamentals of embedded systems: hardware components, software components, hardware/software interface design, and hardware/software co-design.Syllabus
System-level modeling and evaluation of computer systems: requirements elicitation and specification, architectural design, reliability and performance evaluation, Markov modeling, life-cycle cost analysis, project management.Syllabus
Formal specification of syntax and semantics; structure of algorithms; list processing and string manipulation languages; statement types, control structures, and interfacing procedures.Syllabus
Techniques for representing and processing information, including the use of lists, trees, and graphs; analysis of algorithms; sorting, searching, and hashing techniques.Syllabus
Basic theoretical principles of computing as modeled by formal languages, grammars, automata, and Turing machines; fundamental limits of computation.Syllabus
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.Syllabus
Introduction to the large scale computer systems used by businesses to support thousands of simultaneous users and process millions of transactions.
Cross-listed Course: ITEC 475
Concepts and components of computer networks and the Internet; network applications; network protocol stack.Syllabus
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.Syllabus
Continuation of CSCE 490. Computer system implementation, testing, verification and validation of results. Written reports and oral presentations in a technical setting.Syllabus
Individual investigation or study of special topics. At most three credits may be applied toward a degree
Concepts and properties of algorithms; programming exercises with emphasis on good programming habits. Credit may not be received for both CSCE 500 and CSCE 145. Open to all majors. May not be used for major credit by computer science and engineering majors.
System software such as command language interpreters, client-server applications, debuggers; mail systems, browsers, macroprocessors, and revision control systems; file systems, processes, threads, and interprocess communication.Syllabus
Measuring, modeling, analyzing, and predicting performance of computer systems and networks; bottleneck analysis; Markovian queuing systems and networks; use of operational and probabilistic models.Syllabus
Design methodology; processor design; computer arithmetic: algorithms for addition, multiplication, floating point arithmetic; microprogrammed control; memory organization; introduction to parallel architectures.Syllabus
Computer networks and communication protocols; socket programming; interprocess communication; development of network software; case studies.Syllabus
Structure, design, and analysis of computer networks; ISO/OSI network architecture.Syllabus
Methodical approaches for collecting and preserving evidence of computer crimes. Foundational concepts such as file system structures, MAC times, and network protocols; tools for extracting evidence; general legal issues.Syllabus
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.
Database management systems; database design and implementation; security, integrity, and privacy.Syllabus
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 preventionSyllabus
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.Syllabus
Techniques for design and implementation of compilers, including lexical analysis, parsing, syntax-directed translation, and symbol table management.Syllabus
Development of mobile applications, including user interface design for mobile, local and cloud data storage techniques, and application architectures.
Object-oriented methods and tools for application programming with graphically interactive operating systems.Syllabus
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.Syllabus
Basic theoretical principles of computing as modeled by formal languages and automata; computability and computational complexity.Syllabus
Design and development of computer games, with emphasis on the technologies used. Hands-on development of computer games.
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.Syllabus
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.Syllabus
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 algorithmsSyllabus
Computer simulation of real systems; principles of system organization; random number generation; programming exercises in a simulation language.Syllabus
Parallel algorithms; scientific visualization; techniques for solving scientific problems.Syllabus
Graphics hardware; graphics primitives; two-dimensional and three-dimensional viewing; basic modeling.Syllabus
Scientific visualization tools as applied to sampled and generated data; methods for data manipulation and representation; investigation of visualization techniques.Syllabus
Architecture and interconnection of parallel computers; parallel programming models and applications; issues in high-performance computing; programming of parallel computers.Syllabus
Foundational techniques for implementing procedural rhetoric, specifically as software designed to present sensitive, sometimes controversial, material in ways to engender empathic awareness of the interactant.
Interdisciplinary approach to interaction design, user-centered design, human abilities, survey development, experimental study methodology, heuristic evaluations, usability testing, universal design, and accessibility.Syllabus
Design and application of robotic systems; emphasis on mobile robots and intelligent machines.Syllabus
Text and natural language processing; formal models and data structures appropriate for text processing; selected topics in computational linguistics, stylistics, and content analysis.Syllabus
Heuristic problem solving, theorem proving, and knowledge representation, including the use of appropriate programming languages and tools.Syllabus
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.Syllabus
Foundational techniques and tools required for data science and big data analytics. Concepts, principles, and techniques applicable to any technology or industry for establishing a baseline that can be enhanced by future study.Syllabus
Reading and research on selected topics in information technology. Course content varies and will be announced in the schedule of courses by suffix and title. May be repeated for credit as topics vary.
Design techniques for logic systems; emphasis on higher-level CAD tools such as hardware description languages and functional modeling.Syllabus
VLSI design process models, introduction to EDA tools, HDL modeling and simulation, logic synthesis and simulation, benchmark design projectsSyllabus
Design of VLSI circuits, including standard processes, circuit design, layout, and CAD tools. Lecture and guided design projects.Syllabus
Operating system organization and interactive processing systems, multiprogramming systems, process management, task scheduling, resource control, deadlocks.
Architecture of high-performance computers, including array processors, multiprocessor systems, data flow computers, and distributed processing systems.
Analysis of security threats in TCP/IP networks. Design of safeguards. Coverage of security threats at each of the OSI layers. Application of cryptographic protocols for secure communication across a network.
Design of more reliable systems through the application of reliability theory and models; reliability modeling; design techniques; testing; and requirement specifications.
Evaluation of computer system performance and reliability using reliability block diagrams, fault trees, reliability graphics, queuing networks, Markov models, and Markov reward models.
Problems of real-time computer applications in process control or similar areas; task scheduling; real-time operating systems; advanced interrupt structures; memory management techniques.
This course focuses on the security and privacy issues associated with wireless networks. Various attacks against wireless networks and their defense strategies will be analyzed. Students are able to embark in research of wireless network security.
Components of a database management system; implementation issues; query optimization; file organization; file organizations’ transaction management; fault recovery; security; system performance.
Database design methodologies and tools; data models; implementation languages; user interfaces.
Structure, design, evaluation, and use of information retrieval systems; algorithms and mathematical models for information retrieval; storage and retrieval of textual data in information systems.
Current trends and challenges in information warfare. High-level analysis of information warfare threats, like cyber terrorism, espionage, Internet fraud, intelligence activities, cyber ethics, and law enforcement.
Approaches for specifying programming language semantics, including operational, axiomatic, and denotational specification.
Current practices and research in software development, requirements definition, design, program testing and reliability, maintenance, and management.
Personal, team, and organizational software processes; personal and organizational maturity; application of software process and management concepts during software development, primarily at the individual level.
Structural organizations for software systems as collections of interconnected components: formal models and languages; design tools and guidelines.
Elicitation, analysis, and validation of software requirements, specification of software systems including formal specification methods; CASE tools.
Fundamentals of object-oriented technology; object modeling of structure, function, and time-dependent behavior; system analysis and design.
Object-oriented programming paradigm, including encapsulation, inheritance, reusable classes, object classification, specialization, and message passing; case studies and applications.
Structural and functional techniques for testing software; code inspection, peer review, test verification and validation; statistical testing methods; preventing and detecting errors; testing metrics; test plans; formal methods of testing. Not auditable.
Algorithm design techniques; algorithms and data structures for sets and graphs; time and space complexity; sorting and searching; NP-complete problems.
Formal models of computation, including finite state automata, Turing machines, recursive functions, formal grammars, and abstract complexity theory.
Application of probability theory and stochastic processes to analyze the dynamic behavior of engineering systems.
Numerical solution of equations and systems of linear equations, polynomial approximation, difference calculus, solution of ordinary and partial differential equations, least squares and sets of orthogonal polynomials, Gaussian quadrature.
Continuation of CSCE 760.
Concepts and techniques for digital image processing; emphasis on low-level processes that analyze discrete images at the pixel level.
Graphics data structures, graphics languages, modeling, raster displays, 3-D shading, hidden surface algorithms.
Visualization techniques for scientific computing; interactive steering of calculations; animation and rendering techniques for multivariate data analysis.
Principles for the design of systems supporting effective human-computer interaction; interaction styles; displays and interactive devices; user assistance; system design and evaluation.
Bayesian classifiers; optimal risk schemes; error rates; numerical methods; implementation; architectures.
Theoretical concepts and algorithmic tools currently utilized in the field of protein folding such as Xplor-NIH and ROSETTA are presented. Participants are enabled to embark in research of protein folding.
Computational models for the analysis and synthesis of natural language; representations for syntax and semantics; applications to text-to-speech conversion, speech recognition, and language understanding.
A/D conversion, digital filters, discrete Fourier transform and FFT, acoustics of speech, and synthesis and recognition of speech.
Design and operation of robot systems; dynamics, control, and motion trajectories of manipulators; visual, auditory, and tactile sensing systems; planning and learning.
Representation techniques and languages for symbolic knowledge, including predicate calculus, frame-based systems, and terminological systems; computer reasoning using these systems.
Expert system domains, knowledge representation techniques, inference engines, and knowledge acquisition methods.
Coordinated problem solving by multiple knowledge systems.
Mathematical foundations of biological and artificial neural networks, supervised and unsupervised systems, applications.
Principles of fuzzy set theory, fuzzy relations, and fuzzy logic; fuzzy "if-then" rules.
Reading and research on selected topics in information technology. Course content varies and will be announced in the schedule of courses by suffix and title. May be repeated for credit as topics vary.
Technical writing and presentations in major computing research areas; ethics in research and writing.
Work. Written report required. Not auditable. Pass-Fail Grading.
Individual research to be arranged with the instructor. Pass/Fail grading.
Individual research to be arranged with the instructor.
Study security threats and prevention/detection/response techniques on the Internet, including hackers, masqueraders, information spoofing, sniffing, and distribution of damaging software. Security analysis of Web applications.
Security mechanisms of distributed software systems, including cryptographic applications. Secure multiparty computation, group-based cryptography, and security mechanisms for emerging distributed architectures.
Contemporary computer communication protocols and network architectures.
VLSI system design automation, hardware description language-based design, multi-methodology design, and introduction to HDL support tools.
Custom design methodology design rules, stick notation, logic synthesis, and circuit layout; symbolic layout languages; introduction to CAD tools.
Architecture, design, and implementation of distributed database managements systems; data fragmentation, replication, and allocation; query processing and transaction management; distributed object database management systems.
Information processing techniques and mathematical tools to assemble, access, and analyze data for decision support and knowledge discovery.
Security threats to database systems. Access control models, multilevel security, integrity, Web-based databases, and data inference problem. Formal models of multilevel security, confidentiality versus availability and integrity.
Strategies for achieving coordinated behavior among a heterogeneous group of information system components; world-wide information networks and applications in health care, logistics, telecommunications, and manufacturing automation.
Reliability and safety of computer-intensive systems; software reliability models and analysis; operational profiles; hazard analysis using fault trees and event trees; formal verification of safety-critical systems. Not auditable.
Definitions of algorithms and formal models of computation; concepts of space and time; synthesis and analysis of algorithms for sorting, search graphs, set manipulation and pattern matching; NP-complete, and intractable problem.
Formal techniques applied to computer security, including formal specification language for security properties, security analysis utilities, domain-specific security concerns, and case studies of formally verified secure systems.
Input and display devices, data structures, architectures, primitives, and geometrical transformations appropriate to computer graphics, parametric surfaces.
Scene segmentation using texture, color, motion; representation of 2-D or 3-D structures; knowledge-based vision systems.
Feature nomination, selection, extraction, and evaluation; deterministic, stochastic, and fuzzy models for classifier design; parameter estimation; error rate estimation; clustering and sequential learning.
Fundamentals of machine learning including rote learning, learning from examples, learning from observations, and learning by analogy; knowledge acquisition for expert systems.