The following courses are offered by Engineering Online, the Distance Education Division of NC State's College of Engineering. The SEMESTER notation indicates past and tentative future scheduling.

CSC 501   Operating Systems Principles Spring
Fundamental issues related to the design of operating systems. Process scheduling and coordination, deadlock, memory management and elements of distributed systems. 3 credit hours

CSC 505   Design and Analysis of Algorithms Spring, Summer, Fall
Algorithm design techniques: use of data structures, divide and conquer, dynamic programming, greedy techniques, local and global search. Complexity and analysis of algorithms: asymptotic analysis, worst case and average case, recurrences, lower bounds, NP-completeness. Algorithms for classical problems including sorting, searching and graph problems (connectivity, shortest paths, minimum spanning trees). 3 credit hours

CSC 506   Architecture of Parallel Computers (also offered as ECE 506) Fall
Algorithm design techniques: use of data structures, divide and conquer, dynamic programming, greedy techniques, local and global search. Complexity and analysis of algorithms: asymptotic analysis, worst case and average case, recurrences, lower bounds, NP-completeness. Algorithms for classical problems including sorting, searching and graph problems (connectivity, shortest paths, minimum spanning trees). 3 credit hours

CSC 510   Software Engineering Spring, Summer
This course will be highly interactive and a proactive participation of the students is expected. This course also will bring a wealth of industrial experiences that the instructor will provide. A detailed discussion on software life cycle models, software project planning and monitoring and control, software requirements development and requirements management, software size and effort estimation, risk management, formal technical and peer reviews, software architecture, software design, software development, verification and validation methods, software configuration management and change control, the Capability Maturity Model Integration, SWEBOK, software process improvement. Emphasis is given on Software Engineering principles and how they are utilized in industry. The course will provide many opportunities to practice Software Engineering principles as they are implemented in industry. A Final project will be required for the course. The project can be either a research paper or if there are enough students interested in the development of an architectural prototype with demo (this option is only available if there are enough students interested, especially as this is an EOL course). 3 credit hours

CSC 512   Compiler Construction Fall
The course presents the theory and practice of compiler construction. Topics to be covered will include techniques for parsing, code generation, and optimization. Furthermore, the theoretical underpinnings of compilers will be covered. Finally, the students will be exposed tools, such as Flex and Bison, and will obtain hands-on experience by building a compiler for a small, imperative programming language. 3 credit hours

CSC 517   Object-Oriented Design and Development (also offered as ECE 517) Spring
The design of object-oriented systems, using principles such as the GRASP principles, and methodologies such as CRC cards and the Unified Modeling Language [ULM]. Requirements analysis. Design patterns Agile Methods. Static vs. dynamic typing. Metaprogramming. Open-source development practices and tools. Test-first development. Project required, involving contributions to an open-source software project. 3 credit hours

CSC 520   Artificial Intelligence I Spring, Fall
Introduction and overview of artificial intelligence. Elements of AI problem-solving techniques. State spaces and search techniques, including heuristic search (hill-climbing and A*). Logic (first-order predicate calculus) and theorem proving (unification, resolution theorem proving). Advanced topics in machine learning, reasoning under uncertainty (Bayesian reasoning), and natural language processing as time permits. 3 credit hours

CSC 522   Automated Learning and Data Analysis Spring, Fall
Introduction to the problems and techniques for automated discovery of knowledge in databases. Topics include representation, evaluation, and formalization of knowledge for discovery; classification, prediction, clustering, and association methods. Selected applications in commerce, security, and bioinformatics. Students cannot get credit for both CSC 422 and CSC 522. 3 credit hours

CSC 541   Advanced Data Structures Spring
Complex and specialized data structures relevant to design and development of effective and efficient software. Hardware characteristics of storage media. Primary file organizations. Hashing functions and collision resolution techniques. Low level and bit level structures including signatures, superimposed coding, disjoint coding and Bloom filters. Tree and related structures including AVL trees, B+ trees, tries and dynamic hashing techniques. 3 credit hours

CSC 555   Social Computing Fall
A survey of the field of social computing, introducing its the key concepts, paradigms, and techniques.  Specific topics will be selected from the following list: social media, social network analysis, typology of social relationships, mobility and social context, human computation, crowdsourcing, prediction markets, organizational modeling, contracts, social norms, sociotechnical systems, social interpretation of information, formal argumentation, software engineering for social computing. 3 credit hours

CSC 570   Computer Networks (also offered as ECE 570) Spring, Fall
General introduction to computer networks. Discussion of protocol principles, local area and wide area networking, OSI stack, TCP/IP and quality of service principles. Detailed discussion of topics in medium access control, error control coding, and flow control mechanisms. Introduction to networking simulation, security, wireless and optical networking. 3 credit hours

CSC 573   Internet Protocols (also offered as ECE 573) Spring, Fall
Principles and issues underlying provision of wide area connectivity through interconnection of autonomous networks. Internet architecture and protocols today and likely evolution in future. Case studies of particular protocols to demonstrate how fundamental principles applied in practice. Selected examples of networked clinet/server applications to motivate the functional requirements of internetworking. Project required. 3 credit hours

CSC 575   Introduction to Wireless Networking (also offered as ECE 575) Spring, Summer
Introduction to wireless networking. Topics include: introduction to wireless propagation, medium access, cellular networks, metropolitan, local and personal area wireless networks and mobile IP. 3 credit hours

CSC 576   Networking Services: QoS, Signaling, Processes (also offered as ECE 576) Spring, Summer
Signaling for setting up networking services, architectures of networking services, QoS and signaling in the transport network, capacity planning models. 3 credit hours

CSC 579   Introduction to Computer Performance Modeling (also offered as ECE 579 and OR 579) Spring
This course focuses on the mathematical techniques and procedures required in performance modeling of computer and communication systems. The major mathematical elements of applied probability, stochastic processes, especially Markov chains, and elementary queuing theory, including an introduction to queuing networks, will be discussed. Simulation techniques will also be covered. 3 credit hours

CSC 591   Advanced Algorithms Spring
Advanced algorithm design techniques for large-scale real-world problems from end-to-end perspective. Complexity Theory: randomization, approximation, fixed parameter tractability, heuristics. Processing Regimes: streaming and online, parallel and distributed, deep memory hierarchies, index-based. Optimizations and Constraints: time, space, energy, reliability, accuracy, QoS, etc. Data Types and Structures: strings, graphs, sets, etc. 3 credit hours

CSC 591   Algorithms for Data Guided Business Intelligence Spring
Algorithmic design principles and best practices underlying data guided Business Intelligence (BI) will be taught through a set of hands-on use cases. Analytic pipelines for solving BI problems will be introduced from the end-to-end, practical guide (i.e., cookbook) perspective. These pipelines will be implemented through a series of mini-projects covering recommender systems, sentiment analytics, online advertisement, cybercrime and online fraud detection, Internet of Things analytics, social media analytics, web logs analytics, and supply chain analytics. The space of algorithms will include but will not be limited to deep learning, information fusion from dynamic heterogeneous and attributed graphs, and causal network inference. Tutorials and projects that teach students how to handle Big Data issues will utilize Apache Spark on top of lambda architectures. 3 credit hours

CSC 591   Foundations of Data Science Fall
Students will learn core data science principles related to statistical data analysis. This course introduces ideas in statistical learning and will help students prepare for advanced courses in data mining and machine learning. Focus will also be given on applying these principles for variety of data analysis tasks using R. 3 credit hours

CSC 591   Graph Data Mining: Theory, Algorithms and Applications Summer
Graph data mining is a growing area of Big Data Analytics due to the ubiquitous nature of graph data. The discovery and forecasting of insightful patterns from graph data are at the core of analytical intelligence in government, industry, and science. This course teaches both basic and more advanced techniques required for routine analytical intelligence operations on graph data. Students will be exposed tothe underlying theory and learn to design effective and efficient algorithms and data structures for dealing with huge volumes of complex and noisy graph data, as well as real-world applications. 3 credit hours

CSC 600   Computer Science Graduate Orientation Spring, Fall
Introduction for new graduate students to (a) information about graduate program, department, and university resources, and (b) research projects conducted by CSC faculty. 1 credit hour

CSC 750   Service-Oriented Computing Fall
Concepts, theories, and techniques for Web services. This course examines architectures for Web applications with an emphasis on service semantics and decentralization. It considers sophisticated approaches for the description, discovery, and engagement of services. This course emphasizes service composition. Key topics include semantics, agents, rules, communication protocols, business processes, contracts, and compliance. 3 credit hours

CSC 766   Code Optimization for Scalar and Parallel Programs Spring
With the increasing diversity and complexity of computers and their applications, the development of efficient, reliable software has become increasingly dependent on automatic support from compilers and other program analysis and translation tools. This course covers principal topics in understanding and transforming programs at the code block, function, program, and behavior levels. Specific techniques for imperative languages include data flow, dependence, various code optimizations, parallelization for both CPU and GPU. 3 credit hours

CSC 773   Advanced Topics in Internet Protocols (also offered as ECE 773) Spring, Summer
Cutting-edge concepts and technologies to support internetworking in general and to optimize the performance of the TCP/IP protocol suite in particular. This course investigates topics that include, but may not be limited to: (1) Internet traffic measurement, characterization, and modeling; (2) Metric-Induced Network Topologies and Internet Tomography; (3) Timescales and stability; (4) Routing Stability and DNS performance; (5) Traffic engineering, network-aware applications, and quality of service; (6) Peer-to-peer systems and content-distribution networks; (7) Sensor networks; (8) Congestion control over high-speed networks and wireless networks; (9) Cloud architectures; (10) Energy Efficiency; (11) Internet of Things; (12) Network Security . This course is research oriented. A research project is required. 3 credit hours

CSC 775   Advanced Topics in Wireless Networking (also offered as ECE 775) Fall
The course covers recent developments in wireless networking. Topics include cognitive radios,  multi-hop wireless networks (wireless mesh networks, wireless ad-hoc networks, wireless sensor networks),  power efficient MAC protocols, fairness in multi-hop networks and the capacity of multi-hop wireless networks. 3 credit hours

CSC 776   Design and Performancs Evaluation of Network Systems and Services (also offered as ECE 776) Spring
Introduction to the design and performance evaluation of network services. Topics include top-down network design based on requirements, end-to-end services and network system architecture, service level agreements, quantitative performance evaluation techniques. Provides quantitative skills on network service traffic and workload modeling, as well as, service applications such as triple play, internet (IPTV), Peer-to-peer (P2P), voice over IP (VoIP), and access services. 3 credit hours