Computer Science (CSCI) < North Dakota State University (2024)

CSCI105. Introduction to Cybersecurity. 3 Credits.

This course provides the foundation for understanding key issues faced and measures associated with protecting computer systems, networks, and information assets from cyber threats. Students also gain knowledge of the social, legal, ethical, and privacy implications of cybersecurity.

CSCI114. Computer Applications. 3 Credits.

General introduction to computer concepts, operating systems, the internet, word processing, spreadsheets, database management, and presentation software. Credit awarded only for CSCI114 or CSCI/MIS/TL116, not both.

CSCI122. Visual BASIC. 3 Credits.

Introduction to programming in the BASIC/Visual BASIC language.

CSCI159. Computer Science Problem Solving. 3 Credits.

Computer-based problem solving techniques are introduced in the context of the Internet, including web-site development. Programming concepts, data structures and algorithms, as well as modeling techniques are discussed.

CSCI160. Computer Science I. 4 Credits.

Introduction to computer science including problem solving, algorithm development, and structured programming in a high-level language. Emphasis on design, coding, testing, and documentation of programs using accepted standards of style. Prereq: MATH105 or higher, or CSCI159.

CSCI161. Computer Science II. 4 Credits.

Continuation of CSCI160 that emphasizes more advanced programming language features and basic data structures. Students will learn to incorporate advanced programming features such as Interfaces and Generics into the programs they develop. Prereq: CSCI160.

CSCI172. Intermediate Visual BASIC. 3 Credits.

Elements of Visual Basic for those with previous programming background. Topics include fundamental constructs, Active X controls, file processing, database management, and SQL. Prereq: one semester/experience in any programming language.

CSCI177. Introduction to Information Technology. 3 Credits.

Introduction to basic concepts of information technology, including hardware, software and software. The course provides an overview of computing, storage, networking, and security topics.

CSCI189. Skills for Academic Success. 1 Credit.

This course is designed to ease the transition for new students at NDSU. Students will learn skills and techniques used by successful college students. In addition to introducing the students to campus resources and governance, topics will include study techniques, time management, test taking, note taking, goal setting, wellness, stress management, and career orientation.

CSCI194. Individual Study. 1-3 Credits.

CSCI196. Field Experience. 1-15 Credits.

CSCI199. Special Topics. 1-5 Credits.

CSCI212. Self-Paced C++. 1 Credit.

Introduction to the C++ programming language. Students complete exercises and programming assignments at their own pace. Prereq: Programming skill in another language.

CSCI213. Modern Software Development. 3 Credits.

This course provides students with exposure to, and practice with, a modern software development environment. Students do individual projects covering all the major phases of prescriptive software development including: requirements engineering, design, construction, testing and debugging.Prereq: CSCI161 or CSCI228.

CSCI214. Self-Paced C. 1 Credit.

Introduction to the C programming language. Students complete exercises and programming assignments at their own pace. Prereq: CSCI160.

CSCI222. Discrete Mathematics. 3 Credits.

Sets, functions, relations, logic, methods of proof, mathematical induction, combinatorics, recurrence relations, generating functions.Prereq: CSCI160 or CSCI228.

CSCI227. Computing Fundamentals in Python I. 3 Credits.

Introduction to programming concepts, with focus on flow control, basic data structures, and functions. The course is the first in a three-course sequence using the Python programming language.Coreq: MATH103 or MATH107.

CSCI228. Computing Fundamentals in Python II. 3 Credits.

Introduction to programming concepts, with focus on the object-oriented programming paradigm, linear data structures, positional lists, iterators, and basic algorithm analysis. The course is the second in a three-course sequence using the Python programming language. Prereq: CSCI227.

CSCI229. Computing Fundamentals in Python III. 3 Credits.

Introduction to programming concepts, with focus on data structures and algorithms, including trees, search trees, hash tables, sorting algorithms, and graphs. The course is the third in a three-course sequence using the Python programming language. Prereq: CSCI228.

CSCI277. Introduction to UNIX. 3 Credits.

This course introduces students to the UNIX operating system environment. Topics include basic UNIX commands, operating system installation and administration, application installation, use of alternative shells, web servers, and system security. Cross-listed with MIS 277.

CSCI291. Seminar. 1-3 Credits.

CSCI292. Global Practicum: Study Abroad. 1-15 Credits.

Pre-Arranged study at accredited foreign institutions (study abroad), domestic institutions (National Student Exchange) or on approved study abroad programs. Pre-requisite: Sophom*ore standing and prior approval by International Student and Study Abroad Services and major department. Graded 'P'or 'F' (Undergraduate), or 'S' or 'U' (Graduate).

CSCI294. Individual Study. 1-5 Credits.

CSCI299. Special Topics. 1-5 Credits.

CSCI305. Principles of Cybersecurity. 3 Credits.

This course helps students become familiar with cybersecurity concepts, principles, terminology, technologies, and skills. Major security topics covered include threats, malware attacks, hacking, spyware, firewalls, network defense, database security, intrusion detection systems, security policies. Additionally, students learn about cyberstalking, cyber terrorism, and information warfare.Prereq: CSCI161 or CSCI312.

CSCI312. Survey of Programming Languages. 3 Credits.

This course provides an introduction to major types of programming languages including block-structured, object-oriented, dynamic, declarative and functional languages. For each of the languages, an example language other than the main teaching language will be selected. Credit awarded only for CSCI312 or CSCI372, not both. Prereq: CSCI228.

CSCI313. Software Development with Frameworks. 3 Credits.

This course provides students with an understanding of the full-stack development of real-world software application using software frameworks. Students will work in small teams to use an agile methodology to develop a full-stack application. Prereq: CSCI161.

CSCI336. Theoretical Computer Science. 3 Credits.

Parsing techniques, context-free languages, Turing machines, recursive and recursively enumerable languages, unrestricted grammars, unsolvable decision problems, computability, introduction to computational complexity. Prereq: CSCI222.

CSCI345. Topics on Personal Computers. 3 Credits.

Exploration of some aspects of personal computers not covered in other courses, varies each time it is offered. May be repeated. Prereq: CSCI161.

CSCI359. Networking. 3 Credits.

This course introduces students to the functionality and operations of networking. It covers the operations of networking equipment, such as hubs, switches, routers, access points and firewalls. Students will also learn about the OSI and TCP/IP models, ports, routing protocols and common networking services.

CSCI366. Database Systems. 3 Credits.

Introduction to database systems, including database design, data modeling, storage structures, database theory, and the building of database applications. Prereq: CSCI161.

CSCI371. Web Scripting Languages. 3 Credits.

This course examines Scripting Languages and their applications. Emphasis will be placed on web scripting. A representative set of scripting languages will be covered. Prereq: CSCI122 or CSCI160 or CSCI227 or ECE173. Cross-listed with MIS371.

CSCI372. Comparative Programming Languages. 3 Credits.

Fundamental concepts of programming languages and inherent design choices are analyzed. The course focuses mainly on concepts of block-structured and object-oriented languages, but other languages, such as declarative and functional languages, also are discussed. Credit awarded only for CSCI312 or CSCI372, not both. Prereq: CSCI161.

CSCI374. Computer Organization and Architecture. 3 Credits.

This course provides an overview of the fundamentals of computer organization (physical design) and architecture (logical design) and relates this to contemporary design issues. Topics include machine level representation of data, assembly level organization, memory system organization and architecture, system connection, memory, input/output, instruction sets, CPU structure and functions and the control unit operation.Prereq: CSCI160 or CSCI227.

CSCI377. Information Technology. 3 Credits.

Fundamental concepts of managing information technology, including installation, configuration, and maintenance tasks. Topics include management of network connectivity, storage, security, and logs. Data storage systems, virtualized systems, and enterprise systems, such as customer relationship management systems, are considered.Prereq: CSCI277.

CSCI379. Global Seminar. 1-6 Credits.

NDSU instructed experience or field study in a foreign country. Conducted in English for residence credit. Pre-requisite: Prior approval by International Student and Study Abroad Services and major department. May be repeated. Standard Grading.

CSCI391. Seminar. 1-3 Credits.

CSCI392. Global Practicum: Study Abroad. 1-15 Credits.

Pre-Arranged study at accredited foreign institutions (study abroad), domestic institutions (National Student Exchange) or on approved study abroad programs. Pre-requisite: Sophom*ore standing and prior approval by International Student and Study Abroad Services and major department. Graded 'P'or 'F' (Undergraduate), or 'S' or 'U' (Graduate).

CSCI394. Individual Study. 1-5 Credits.

CSCI396. Field Experience. 1-15 Credits.

CSCI397. Fe/Coop Ed/Internship. 1-4 Credits.

CSCI399. Special Topics. 1-5 Credits.

CSCI403. Defensive Network Security. 3 Credits.

This course will cover the design, development and testing of network and software systems for defending computer systems and networks. Key areas of focus will be the development of secure software, software and software system decision making to ensure security and the use of software systems to protect and detect intrusions into computer networks. Prereq: CSCI213 or ECE275 or ME213. {Also offered for graduate credit - See CSCI603}.

CSCI404. Ethical Hacking. 3 Credits.

This course teaches students how to test systems by viewing systems security from the bad actors' perspective in conducting system testing. The course prepares students to take the EC Council Certified Ethical Hacker examination. {Also offered for graduate credit - See CSCI604.}.

CSCI408. Malware Detection, Analysis and Threat Mechanisms. 3 Credits.

This course introduces students to the threats posed by malware and how to detect and combat it. Students will learn about how malware functions and study the techniques that are used to detect it. They will also learn about reverse engineering tools and techniques that can be used analyze malware. Prereq: CSCI359. {Also offered for graduate credit - see CSCI608.}.

CSCI409. Cybersecurity Law and Policy. 3 Credits.

This course will cover the laws and policy related to cybersecurity. This will include law and policy at the international, national and state levels. The impact of national and state law on corporate and institutional policies will be discussed and institutional policy development and implementation will be reviewed. Prereq: CSCI213 or ECE275 or ME213. {Also offered for graduate credit - See CSCI609}.

CSCI410. Computer Crime and Forensics. 3 Credits.

This course covers the basic types of computer crimes. It introduces principles, techniques, tools, and practical skills necessary to perform rudimentary investigations of incidents in which computers play a significant or interesting role. Prereq: CSCI161. {Also offered for graduate credit - see CSCI610.}.

CSCI411. Secure Software Development. 2 Credits.

Presents an approach to secure software systems design and development that tightly integrates security and systems design and software development (software engineering) together. It addresses the software development process from the perspective of a security practitioner. Prereq: CSCI313.

CSCI412. Mobile Software Engineering. 3 Credits.

This course is designed to introduce the student to the best practices of mobile software engineering for developing high-quality, reliable, and secure mobile apps. Prereq: CSCI213 or CSCI313.

CSCI413. Principles of Software Engineering. 3 Credits.

An introduction to concepts of software engineering. Software development activities through a project. Lifecycle models, requirements, specification, design, implementation, and testing. Software quality, tools, and techniques. Prereq: CSCI213 and CSCI313. {Also offered for graduate credit - see CSCI613.}.

CSCI416. Software Architecture and Design. 3 Credits.

This course covers both architectural design and module design. Students receive practice in using a set of design patterns to produce software designs with several different types of architecture. Substantial presentation and practice with the UML modeling language are provided. Prereq: CSCI313.

CSCI419. Software Testing and Debugging. 3 Credits.

This course covers the goals, principles, practices, evaluations, and limitations of software testing and software debugging. Prereq: CSCI313.

CSCI420. Introduction to Data Science in Python. 3 Credits.

This course introduces the foundations of data science. It covers python tools for data acquisition, wrangling, analysis, and visualization.Prereq: CSCI313 and CSCI312 or CSCI372.

CSCI422. Fundamentals of Data Engineering. 3 Credits.

Learn the fundamentals of data engineering through lectures and hands on work. This cloud centric, project-oriented course will cover the concepts, tools, and skills required in all phases of the data engineering lifecycle, including data sourcing, storage, ingestion, transformation, and serving. Prereq: CSCI366. {Also offered for graduate credit - see CSCI622.}.

CSCI425. Machine Learning. 3 Credits.

Introduction to Machine Learning methods, including supervised and unsupervised learning. Topics will include classification algorithms and unsupervised clustering techniques.Prereq: CSCI122 or CSCI160 or CSCI227 or ECE173 or ME213.Dual-listing: CSCI625.

CSCI426. Introduction to Artificial Intelligence. 3 Credits.

Introduction to artificial intelligence for undergraduates. Includes basic AI concepts and techniques. Prereq: CSCI222 and CSCI372. {Also offered for graduate credit - see CSCI 626.}.

CSCI428. Artificial Intelligence, Ethics, and the Environment. 3 Credits.

After an introduction to the topic of ethics in artificial intelligence, the course focuses on geospatial AI applications, and their ethics implications. The course includes a semester-long project in which students gain technical proficiency and ethical awareness related to geospatial AI. Prereq: CSCI160. {Also offered for graduate credit - see CSCI628.}.

CSCI429. Network Applications and Environments. 3 Credits.

This course is devoted to the study of network services and the development of internet resources. Prereq: CSCI161 or CSCI228.

CSCI430. Quantum Computation. 3 Credits.

Students will master the foundations of quantum computation and quantum information, including underlying physical concepts and practical applications. Topics covered include Quantum Bits (Qubits), Single and Multiple Qubit Gates, Quantum Circuits, Quantum Computation, Quantum Algorithms, and Quantum Computers. Graduate students enrolled will also to gain experience with programming and executing the standard quantum algorithms, such as Fourier Transform, Grover's, Shor's Algorithms using, e.g., IBM Quantum Experience platform.Prereq: PHYS252.Cross-listed with PHYS430.Dual-listing: CSCI630.

CSCI436. Intelligent Agents. 3 Credits.

Fundamentals of Intelligent Agents technology, agent communication languages, applications, and intelligent agents development. Prereq: CSCI372. {Also offered for graduate credit - see CSCI636.}.

CSCI438. Simulation Models. 3 Credits.

Fundamental techniques involved in using a computer to simulate business, social, and industrial systems. Includes principles of random variate generation, statistical sampling, and design of experiments. Prereq: STAT367. {Also offered for graduate credit - see CSCI618.}.

CSCI445. Software Projects Capstone. 3 Credits.

Presentations on the mechanics of working cooperatively as a team doing commercial software development. Students work in teams to deliver realistic work products to local businesses. Course presentations cover teamwork, software development pragmatics, and software documentation. Prereq: CSCI313 and CSCI366.

CSCI450. Cloud Computing. 3 Credits.

This course will acquaint students with various topics and technologies on cloud computing and provide them with a working knowledge for working and building these systems.Prereq: CSCI312 or CSCI372.Dual-listing: CSCI650.

CSCI453. Linear Programming and Network Flows. 3 Credits.

Linear programming models and applications, primal and dual formulations, computational procedures; introduction to networks, maximum flow, and shortest path problems. Prereq: MATH265. {Also offered for graduate credit - see CSCI653.}.

CSCI455. Networking and Parallel Computation. 3 Credits.

This course provides students with an understanding of networking and multi-programming. Students will write some multi-programs. Prereq: CSCI213, CSCI313 and CSCI366. {Also offered for graduate credit - See CSCI655.}.

CSCI459. Foundations of Computer Networks. 3 Credits.

This is an introduction to fundamental concepts for the design and analysis of broadband networks. Topics include resource allocation, routing, congestion control, medium access, scheduling, and multicast. Concepts are applied to state-of-the-art systems and protocols such as current and future Internet protocols. Prereq: CSCI374 or ECE374. {Also offered for graduate credit - see CSCI659.}.

CSCI462. Mobile and Wireless Networks. 3 Credits.

This course provides students with an understanding of networking and multi-programming with a focus on mobile and wireless networks. Topics include wireless transmission characteristics, mobility management, wireless local area networks, ad hoc and sensor networks, and cellular networks. Students will write some multi-programs. Prereq: CSCI313 and CSCI366. {Also offered for graduate credit - see CSCI662.}.

CSCI467. Algorithm Analysis. 3 Credits.

Design, correctness, and analysis of algorithms and data structures. Prereq: MATH166, CSCI161 and CSCI222 or MATH270. {Also offered for graduate credit - see CSCI667.}.

CSCI469. Network Security. 3 Credits.

Cryptography and its application to network and operating system security; authentication; email, web, IP, and wireless security; firewalls and intrusion detection techniques; security threats and countermeasures; legal and ethical issues. Prereq: CSCI222, CSCI459, C/C++ or JAVA. {Also offered for graduate credit - see CSCI669.}.

CSCI473. Foundations of the Digital Enterprise. 3 Credits.

This course is designed to familiarize individuals with current and emerging electronic commerce technologies using the Internet. Prereq: junior standing.

CSCI474. Operating Systems Concepts. 3 Credits.

How operating systems manage the resources of a computer. Topics include processes, concurrency, scheduling, deadlocks, memory allocation, virtual and secondary storage. Prereq: CSCI374 or ECE374.

CSCI476. Cloud Systems Administration. 3 Credits.

Concepts of virtualized systems using Linux Containers, KVM and OpenStack. Topics include hypervisor installation, networking and storage, and virtual machine life cycle management, as well as solutions for scalability, monitoring, and performance tuning. Prereq: CSCI277.

CSCI477. Object-Oriented Systems. 3 Credits.

Introduction to the concepts and advantages of object-oriented computer systems. Introduces exercises with at least one such language. Prereq: CSCI372. {Also offered for graduate credit - see CSCI677.}.

CSCI479. Introduction to Data Mining. 3 Credits.

Introduction to data mining includes basic data mining techniques, querying, spreadsheet data mining, data warehouses, evaluation techniques, knowledge discovery in databases, examples and a survey of advanced techniques. Prereq: Basic database course (e.g. CSCI366 or CSCI 468). {Also offered for graduate credit - see CSCI679.}.

CSCI485. Autonomous Command and Artificial Intelligence for Robots and Other Cyber-Physical Systems. 3 Credits.

This course will cover the command and control of multi-robot systems. This will include the process of onboard decision making, considering both planning-based and real time decisions. Artificial intelligence techniques for robotic systems will be covered as will the application of similar techniques to non-robot cyber-physical systems. Prereq: CSCI213 or ECE275 or ME213. {Also offered for graduate credit - See CSCI685.}.

CSCI488. Human-Computer Interaction. 3 Credits.

Survey of the methodologies and alternatives used in developing and evaluating human-computer interfaces. Prereq: CSCI313. {Also offered for graduate credit - see CSCI688.}.

CSCI489. Social Implications of Computers. 3 Credits.

Capstone course for Computer Science. Presentation and discussion of several ethical and social issues that have arisen from the introduction of the computer including copy-protected software and liability for computer software errors.Prereq: CSCI312 or CSCI372.Dual-listing: CSCI689.

CSCI491. Seminar. 1-5 Credits.

CSCI492. Global Practicum: Study Abroad. 1-15 Credits.

Pre-Arranged study at accredited foreign institutions (study abroad), domestic institutions (National Student Exchange) or on approved study abroad programs. Pre-requisite: Sophom*ore standing and prior approval by International Student and Study Abroad Services and major department. Graded 'P'or 'F' (Undergraduate), or 'S' or 'U' (Graduate).

CSCI493. Undergraduate Research. 1-6 Credits.

CSCI494. Individual Study. 1-5 Credits.

CSCI496. Field Experience. 1-15 Credits.

CSCI499. Special Topics. 1-5 Credits.

CSCI603. Defensive Network Security. 3 Credits.

This course will cover the design, development and testing of network and software systems for defending computer systems and networks. Key areas of focus will be the development of secure software, software and software system decision making to ensure security and the use of software systems to protect and detect intrusions into computer networks. {Also offered for undergraduate credit - See CSCI403}.

CSCI604. Ethical Hacking. 3 Credits.

This course teaches students how to test systems by viewing systems security from the bad actors' perspective in conducting system testing. The course prepares students to take the EC Council Certified Ethical Hacker examination. {Also offered for undergraduate credit - See CSCI404.}.

CSCI608. Malware Detection, Analysis and Threat Mechanisms. 3 Credits.

This course introduces students to the threats posed by malware and how to detect and combat it. Students will learn about how malware functions and study the techniques that are used to detect it. They will also learn about reverse engineering tools and techniques that can be used analyze malware. {Also offered for undergraduate credit - see CSCI408.}.

CSCI609. Cybersecurity Law and Policy. 3 Credits.

This course will cover the laws and policy related to cybersecurity. This will include law and policy at the international, national and state levels. The impact of national and state law on corporate and institutional policies will be discussed and institutional policy development and implementation will be reviewed. {Also offered for undergraduate credit - See CSCI409}.

CSCI610. Computer Crime and Forensics. 3 Credits.

This course covers the basic types of computer crimes. It introduces principles, techniques, tools, and practical skills necessary to perform rudimentary investigations of incidents in which computers play a significant or interesting role.{Also offered for undergraduate credit - see CSCI410.}.

CSCI613. Principles of Software Engineering. 3 Credits.

An introduction to concepts of software engineering. Software development activities through a project. Lifecycle models, requirements, specification, design, implementation, and testing. Software quality, tools, and techniques. {Also offered for undergraduate credit - see CSCI413.}.

CSCI616. Software Architecture and Design. 3 Credits.

This course covers both architectural design and module design. Students receive practice in using a set of design patterns to produce software designs with several different types of architecture. Substantial presentation and practice with the UML modeling language are provided. {Also offered for undergraduate credit - see CSCI416.}.

CSCI618. Simulation Models. 3 Credits.

Fundamental techniques involved in using a computer to simulate business, social, and industrial systems. Includes principles of random variate generation, statistical sampling, and design of experiments. {Also offered for undergraduate credit - see CSCI 418.}.

CSCI620. Introduction to Data Science in Python. 3 Credits.

This course introduces the foundations of data science. It covers python tools for data acquisition, wrangling, analysis, and visualization. It also includes hands-on experience through a research project. {Also available for undergraduate credit - see CSCI420.}.

CSCI622. Fundamentals of Data Engineering. 3 Credits.

Learn the fundamentals of data engineering through lectures and hands on work. This cloud centric, project-oriented course will cover the concepts, tools, and skills required in all phases of the data engineering lifecycle, including data sourcing, storage, ingestion, transformation, and serving.Dual-listing: CSCI422.

CSCI625. Machine Learning. 3 Credits.

Introduction to Machine Learning methods, including supervised and unsupervised learning. Topics will include classification algorithms and unsupervised clustering techniques. {Also offered for undergraduate credit - see CSCI425.}.

CSCI628. Artificial Intelligence, Ethics, and the Environment. 3 Credits.

After an introduction to the topic of ethics in artificial intelligence, the course focuses on geospatial AI applications, and their ethics implications. The course includes a semester-long project in which students gain technical proficiency and ethical awareness related to geospatial AI. {Also offered for undergraduate credit - see CSCI428.}.

CSCI630. Quantum Computation. 3 Credits.

Students will master the foundations of quantum computation and quantum information, including underlying physical concepts and practical applications. Topics covered include Quantum Bits (Qubits), Single and Multiple Qubit Gates, Quantum Circuits, Quantum Computation, Quantum Algorithms, and Quantum Computers. Graduate students enrolled will also to gain experience with programming and executing the standard quantum algorithms, such as Fourier Transform, Grover's, Shor's Algorithms using, e.g., IBM Quantum Experience platform.Cross-listed with PHYS630.Dual-listing: CSCI430.

CSCI636. Intelligent Agents. 3 Credits.

Fundamentals of Intelligent Agents technology, agent communication languages, applications, and intelligent agents development. {Also offered for undergraduate credit - see CSCI436.}.

CSCI641. Introduction to Computer Science Education. 3 Credits.

This course provides an overview of the main areas of Computer Science Education to students. The Active-Learning-Based Teaching Model, Research in Computer Science Education, Teaching Methods in Computer Science Education, and Lab-Based Teaching is addressed. Most of the methods and ideas presented can be easily adapted to the teaching of any computer science topic in any framework and any level, from middle school through high school to the university level.

CSCI642. Problem Solving in Computer Science Education. 3 Credits.

Introduction of essential Computer-Science concepts related to problem solving through a study of several different approaches. Specific problem-solving techniques such as Sequential Logic, Decision Logic, Looping Logic, and popular data structures are studied in detail. The course will focus on algorithms development and modeling techniques that can be applied to many different programming languages.

CSCI643. Introduction to Computer Programming. 3 Credits.

The course provides foundational skills to write computer programs in a contemporary programming language. Students will be introduced to computer science problem-solving, algorithm development, and structured programming in a high-level language. Emphasis on design, coding, testing, and documentation of programs using accepted standards of style.

CSCI644. Data Structures and Algorithms. 3 Credits.

This course introduces data structures and algorithms used in a contemporary programming language. Students will be introduced to linear and hierarchical data structures including arrays, linked lists, stacks, queues and binary trees. Emphasis will be placed on computer science problem-solving, algorithm development and algorithm analysis. Prereq: CSCI643.

CSCI650. Cloud Computing. 3 Credits.

This course will acquaint students with various topics and technologies on cloud computing and provide them with a working knowledge for working and building these systems.Dual-listing: CSCI450.

CSCI653. Linear Programming and Network Flows. 3 Credits.

Linear programming models and applications, primal and dual formulations, computational procedures; introduction to networks, maximum flow, and shortest path problems. {Also offered for undergraduate credit - see CSCI453.}.

CSCI654. Operations Research. 3 Credits.

Deterministic and probabilistic models of operations research: networks and project management, dynamic programming, non-linear programming, inventory, queuing, reliability, stochastic processes, and simulation. Prereq: CSCI653. {Also offered for undergraduate credit - see CSCI 454.}.

CSCI655. Networking and Parallel Computation. 3 Credits.

This course provides students with an understanding of networking and multi-programming. Students will write some multi-programs. {Also offered for undergraduate credit - See CSCI455.}.

CSCI659. Foundations of Computer Networks. 3 Credits.

This is an introduction to fundamental concepts for the design and analysis of broadband networks. Topics include resource allocation, routing, congestion control, medium access, scheduling, and multicast. Concepts are applied to state-of-the-art systems and protocols such as current and future Internet protocols. {Also offered for undergraduate credit - see CSCI459.}.

CSCI662. Mobile and Wireless Networks. 3 Credits.

This course provides students with an understanding of networking and multi-programming with a focus on mobile and wireless networks. Topics include wireless transmission characteristics, mobility management, wireless local area networks, ad hoc and sensor networks, and cellular networks. Students will write some multi-programs. {Also offered for undergraduate credit - see CSCI462.}.

CSCI667. Algorithm Analysis. 3 Credits.

Design, correctness, and analysis of algorithms and data structures. {Also offered for undergraduate credit - see CSCI467.}.

CSCI669. Network Security. 3 Credits.

Cryptography and its application to network and operating system security; authentication; email, web, IP, and wireless security; firewalls and intrusion detection techniques; security threats and countermeasures; legal and ethical issues. Prereq: CSCI659, C/C++ or JAVA. {Also offered for undergraduate credit - see CSCI469.}.

CSCI675. Operating Systems Design. 3 Credits.

Advanced operating systems topics such as protection, errors, and distributed systems. Case studies of representative operating systems. Students work in small teams to implement their own basic operating systems. {Also offered for undergraduate credit - see CSCI 475.}.

CSCI677. Object-Oriented Systems. 3 Credits.

Introduction to the concepts and advantages of object-oriented computer systems. Introduces exercises with at least one such language. {Also offered for undergraduate credit - see CSCI477.}.

CSCI679. Introduction to Data Mining. 3 Credits.

Introduction to data mining includes basic data mining techniques, querying, spreadsheet data mining, data warehouses, evaluation techniques, knowledge discovery in databases, examples and a survey of advanced techniques. Prereq: Basic database course (e.g. CSCI 668 or CSCI765). {Also offered for undergraduate credit - see CSCI479.}.

CSCI685. Autonomous Command and Artificial Intelligence for Robots and Other Cyber-Physical Systems. 3 Credits.

This course will cover the command and control of multi-robot systems. This will include the process of onboard decision making, considering both planning-based and real time decisions. Artificial intelligence techniques for robotic systems will be covered as will the application of similar techniques to non-robot cyber-physical systems. {Also available for undergraduate credit - See CSCI485.}.

CSCI688. Human-Computer Interaction. 3 Credits.

Survey of the methodologies and alternatives used in developing and evaluating human-computer interfaces. {Also offered for undergraduate credit - see CSCI488.}.

CSCI689. Social Implications of Computers. 3 Credits.

Capstone course for Computer Science. Presentation and discussion of several ethical and social issues that have arisen from the introduction of the computer including copy-protected software and liability for computer software errors. {Also offered for undergraduate credit - see CSCI489.}.

CSCI690. Graduate Seminar. 1-3 Credits.

CSCI695. Field Experience. 1-15 Credits.

CSCI696. Special Topics. 1-5 Credits.

CSCI702. Survey of Cybersecurity. 3 Credits.

This course provides students with an overview of the key concepts and areas of cybersecurity. It is designed to provide an accelerated overview of the field to graduate students to facilitate more in-depth instruction and research inquiry in specific areas, informed by knowledge of the whole field. Students will also learn how to utilize this broad knowledge to synthesize and evaluate network defense plans.

CSCI706. Data-Driven Security. 3 Credits.

This course will cover the use of data science techniques such as data preparation, feature selection, exploratory data analysis, visualization and machine learning to efficiently manipulate, analyze and gain valuable insights from cyber security data.

CSCI707. Usable Security and Privacy. 3 Credits.

Introduce human-centric methodology and principles/guidelines on secure interaction design. Cover evaluation methods in Human Computer Interaction to measure usability issues in security and privacy systems.

CSCI712. Mobile Software Engineering. 3 Credits.

This course introduces recent advancements in mobile software engineering tools and techniques, in addition to the best practices for building high-quality, reliable, and secure mobile apps.

CSCI713. Software Development Processes. 3 Credits.

This course is designed as a breadth course on the software engineering process. Basic concepts are reviewed and reassured to create a basis for higher concepts and techniques.

CSCI714. Software Project Planning and Estimation. 3 Credits.

This course is designed to introduce the student to concepts and techniques of how to plan for a software project. This includes time and effort estimation, planning and teaming the project, and managing the development activities. Prereq: CSCI713.

CSCI715. Software Requirements Definition and Analysis. 3 Credits.

This course is designed to make the student able to identify and capture requirements for a software system and be able to document and assess the requirements. Prereq: CSCI713.

CSCI716. Software Design. 3 Credits.

This course covers both architectural design and module design. Students receive practice using a set of patterns to produce software designs with several different types of architecture. Substantial presentation and practice with the UML modeling language is provided. Prereq: CSCI713.

CSCI717. Software Construction. 3 Credits.

This course covers the fundamentals of software construction including programming and evaluation of the source code. Students receive a good grounding in and extensive practice with the comprehensive libraries associated with a modern programming language. Prereq: CSCI713.

CSCI718. Software Testing and Debugging. 3 Credits.

This course covers the goals, practices, evaluation and limitations of software testing and software debugging. Students receive practice in developing and using test plans and various testing and debugging techniques. Prereq: CSCI713.

CSCI724. Survey of Artificial Intelligence. 3 Credits.

Survey of major areas of AI including theorem proving, heuristic search, problem solving, computer analysis of scenes, robotics, natural language understanding, and knowledge-based systems.

CSCI728. Computer Graphics. 3 Credits.

Principles and algorithms used in computer graphics packages. Emphasis on raster graphics, clipping, hidden-surface elimination, ray-tracing, radiosity.

CSCI732. Introduction To Bioinformatics. 3 Credits.

An introduction to the principles of bioinformatics including information relating to the determination of DNA sequencing. Prereq: STAT661. Cross-listed with MATH732 and STAT732.

CSCI736. Computational Intelligence. 3 Credits.

This course acquaints students with computational intelligence techniques to provide them with working knowledge for applying these approaches. The course describes neural networks, evolutionary computation, swarm intelligence, fuzzy logic and reasoning, and expert systems and shows how these can be applied.

CSCI741. Algorithm Analysis. 3 Credits.

Algorithm design and analysis, asymptotic analysis, worst and average case, recurrences, generating functions, divide-and-conquer, the greedy method, search and traversal, backtracking, branch-and-bound.

CSCI760. Dynamic Programming. 3 Credits.

Dynamic programming as an algorithm design method, formulating and solving problems using dynamic programming, deterministic and stochastic problems in OR and CS.

CSCI765. Introduction to Database Systems. 3 Credits.

Basic database concepts, models, management facilities, data structures, storage structures, data definition languages, data manipulation languages, normalization, operator implementation algorithms, transactions, correctness, reliability, distribution, performance analysis.

CSCI771. Software Development Project I. 3 Credits.

The first half of a two semester software development project done as the capstone activity of the Master of Software Engineering program. Student does a one page project proposal, a requirements specification document, and a design specification document. Prereq: CSCI713, CSCI715, CSCI716, and CSCI718.

CSCI772. Software Development Project II. 3 Credits.

The second half of a two semester software development project required as the capstone activity of the Master of Software Engineering program. Student submits a test plan, complete testing results, the project source code, and a user manual. Prereq: CSCI771.

CSCI773. Foundations of the Digital Enterprise. 3 Credits.

This course covers current and emerging digital technologies, including web development, security, server management, and privacy.

CSCI774. Topics of the Digital Enterprise. 3 Credits.

Topics in database, networks, cryptology, security, and software engineering as they apply to the digital enterprise. Recommended: CSCI783.

CSCI778. Computer Networks. 3 Credits.

Examination of computer networks using the ISO-OSI model as a framework. Practical and theoretical issues are explored in modems, codes, error, impairments, modulation, protocols, and interfaces.

CSCI779. Advanced Machine Learning. 3 Credits.

Advanced level of modern machine learning technologies and methods, specifically deep neural networks and to apply these machine learning and data mining skills to various applications. Python and coding experience are required.

CSCI783. Topics In Software Systems. 3 Credits.

Includes an area of computer science not otherwise treated in computer science courses. Varies each time offered. May be repeated.

CSCI787. Topics in Operations Research. 3 Credits.

Includes an area of operational research not considered in other courses. Varies each time offered. May be repeated.

CSCI790. Graduate Seminar. 1-3 Credits.

CSCI791. Temporary/Trial Topics. 1-5 Credits.

CSCI793. Individual Study/Tutorial. 1-5 Credits.

CSCI795. Field Experience. 1-15 Credits.

CSCI796. Special Topics. 1-5 Credits.

CSCI797. Master's Paper. 1-3 Credits.

CSCI798. Master's Thesis. 1-10 Credits.

CSCI834. Knowledge Based Systems. 3 Credits.

Examination of types of knowledge-based systems, their powers and limitations. Students create their own knowledge-based system. Prereq: CSCI724.

CSCI835. Neural Networks. 3 Credits.

Introduction to the parallel processing paradigms that have been developed recently including neuronetworks and genetic algorithms. Students will work on projects using these tools. Prereq: CSCI724. Cross-listed with PSYC 774 and IME774.

CSCI842. Algorithms and Complexity. 3 Credits.

Linear and nonlinear recurrences, algebraic problems, fast Fourier transforms, lower bound theory, computational geometry, the classes P and NP-completeness, Cook's theorem, NP-hard problems. Prereq: CSCI741.

CSCI845. Formal Methods for Software Development. 3 Credits.

The course is a high level course with the aim of formal representation to be able to formally assess characteristics of software. The formal representations are based on the theoretical foundations of computer sciences such as set theory, logic or graph theory. Prereq: CSCI713.

CSCI846. Development of Distributed Systems. 3 Credits.

This course is an advanced course in software engineering aiming at strategies and solutions of distributed systems. It assumes the knowledge of software engineering and particularly design and implementation of software systems, then builds on these concepts to how distributed systems are designed and implemented. Prereq: CSCI713.

CSCI847. Software Complexity Metrics. 3 Credits.

This course covers complexity metrics for the entire software lifecycle. Students gain experience in using requirements metrics, design metrics, program metrics, test metrics, and planning metrics. The effectiveness and limitations of metrics in all these areas are emphasized. Prereq: CSCI718.

CSCI848. Empirical Methods in Software Engineering. 3 Credits.

This course will cover the basics of Empirical Software Engineering. It will focus on the need for collecting metrics and building models as well as the concepts involved in design experiments. Prereq: CSCI713.

CSCI858. Bioinformatics Data Mining. 3 Credits.

Techniques and objectives of data mining for biological data with focus on diverse data sources including graphs, sequences and text. Preparation for research in bioinformatics with focus on functional genomics problems. Prereq: CSCI732.

CSCI859. Computational Methods in Bioinformatics. 3 Credits.

An introduction to computer science and operations research methods and algorithms that are used for analysis and solution of optimization and other models in bioinformatics.

CSCI862. Network Flows. 3 Credits.

Theory and algorithms for network flow optimization including network representation data structures, basic change methods, maximum flow, shortest path, minimum cost problems, and generalized networks. Prereq: CSCI653.

CSCI866. Database System Internals. 3 Credits.

Transaction management, processing; correctness; recoverability; serializability (conflict and view); concurrency control (2PL, BTO, SGT, multiversion); recovery; distributed systems (correctness, recovery, replication); query processing and optimization. Prereq: CSCI765.

CSCI880. Methods of Optimization. 3 Credits.

Elements of convex analysis, constrained and unconstrained multi-dimensional linear and nonlinear optimization theory and algorithms, convergence properties and computational complexity. Prereq: CSCI653. Cross-listed with MATH880.

CSCI885. Topics in Computer Architecture. 3 Credits.

Includes an area of computer architecture not considered in other courses. Varies each time offered. May be repeated.

CSCI889. Topics in Theoretical Computer Science. 3 Credits.

Includes an area of theoretical computer science not considered in other courses. Varies each time offered. May be repeated.

CSCI893. Individual Study/Tutorial. 1-5 Credits.

CSCI895. Field Experience/Practicum. 1-15 Credits.

CSCI899. Doctoral Dissertation. 1-15 Credits.

Computer Science (CSCI) < North Dakota State University (2024)

References

Top Articles
Latest Posts
Article information

Author: Madonna Wisozk

Last Updated:

Views: 5698

Rating: 4.8 / 5 (68 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Madonna Wisozk

Birthday: 2001-02-23

Address: 656 Gerhold Summit, Sidneyberg, FL 78179-2512

Phone: +6742282696652

Job: Customer Banking Liaison

Hobby: Flower arranging, Yo-yoing, Tai chi, Rowing, Macrame, Urban exploration, Knife making

Introduction: My name is Madonna Wisozk, I am a attractive, healthy, thoughtful, faithful, open, vivacious, zany person who loves writing and wants to share my knowledge and understanding with you.