Computer Science

Courses

CSCI 500. Graduate Orientation. 1 Credit.

A discussion of various research and applied computing projects. Continued enrollment required of all graduate students until a research/project topic and an advisor are selected. S/U grading.

CSCI 501. Topics in Computer Science. 1-3 Credits.

Selected topics from current developments in Computer Science. Repeatable to 3 credits. Prerequisite: Permission of department. Repeatable to 3 credits.

CSCI 513. Advanced Database Systems. 3 Credits.

An advanced study of database system architecture, implementation, and applications, with emphasis on the object-oriented, object-relational, and embedded data models, and new database advancements including research and practical issues in database systems and data science. Prerequisite: CSCI 455.

CSCI 515. Data Engineering and Management. 3 Credits.

This course studies theoretical and applied research issues related to data engineering, management, and science. Topics will reflect state-of-the-art and state-of-the-practice activities in the field. The course focuses on well-defined theoretical results and empirical studies that have potential impact on data acquisition, analysis, indexing, management, mining, retrieval, and storage. Prerequisite: CSCI 513. S, even years.

CSCI 522. Theoretical Foundations of Computer Science. 3 Credits.

A selection of topics from theoretical computer science, possibly including formal languages, automata, other models of computation, and the theory of computability, decidability, and complexity. Prerequisite: CSCI 435.

CSCI 532. High Performance Computing and Paradigms. 3 Credits.

A study of current topics in threads, inter-process communication and synchronization, master-slave and peer designs for concurrency, client-server architectures, cluster/grid computing and massively parallel computer architectures. A considerable amount of programming will be done in one or more of these environments. F, odd years.

CSCI 537. Graduate Cooperative Education. 1-2 Credits.

A practical work experience in advanced computing, approved by the student's advisor. Requirements include a written report and an oral presentation upon completion of the work experience. Prerequisites: A minimum of 9 graduate credits in computer science and consent of the Department. S/U grading. On demand.

CSCI 543. Advanced Artificial Intelligence. 3 Credits.

Study and application of advanced and recent topics drawn from two or more areas of Artificial Intelligence: problem solving, knowledge representation, expert system, approximate reasoning, planning, machine learning, natural language processing and perception. Prerequisite: CSCI 365 or CSCI 384.

CSCI 544. Soft Computing: Computational Intelligence I. 3 Credits.

A study of the computational intelligence with the Soft Computing paradigm. The topics include the theory and computational methods of Fuzzy Logic and system, Neural Network, Evolutionary Algorithm and other topics, whose paradigms and hybrid techniques are widely applied to data science and mining, pattern classification and clustering, information retrieval, control engineering, decision making, and optimization problem, etc. S, even years.

CSCI 545. Discrete Dynamical Systems Modeling and Simulation. 3 Credits.

A study of various modeling methods applicable to large scale distributed and parallel systems. Topics include cellular automata, grid models, and chaos theory. Prerequisite: CSCI 445.

CSCI 546. Advanced Computer Graphics. 3 Credits.

An introduction to advanced topics in computer graphics. Included are light and color theory, image processing and compression, spatial-frequency transformations, raytracing, sampling theory, and topics of current interest. Prerequisites: CSCI 466 and MATH 265. S, even years.

CSCI 547. Scientific Visualization. 3 Credits.

A study of visualization techniques useful in the analysis of engineering and scientific data. Topics include the study of physical models; methods of computational science; two ┬Čand three-dimensional data types; visual representation schemes for scalar, vector, and sensor data; isosurface and volume visualization methods. The course will also cover image processing and pattern recognition, with topics, including Fourier transforms, fractal geometry, and neural networks. Prerequisite: CSCI 466. F, even years.

CSCI 551. Security for Cloud Computing. 3 Credits.

Cloud computing scheme aims to provide users with a shared computing infrastructure. The privacy and security concerns in cloud computing are different from the security concerns present in a dedicated data center. This course focuses on these security concerns and countermeasures for a cloud environment. This course provides an overview of cloud computing and virtualization, the critical technology underpinning cloud computing, and the major threats to the operations of cloud computing. Topics may include access control, identity management, denial of service, account and service hijacking, secure APIs, malware, forensics, regulatory compliance, trustworthy computing, and secure computing. Prerequisites: CSCI 370, CSCI 451; and one of the following: CSCI 327, CSCI 427 or CSCI 555. S, odd years.

CSCI 552. Cyber Physical Systems Security. 3 Credits.

This course provides an introduction to security issues relating to various cyber-physical systems including industrial control systems and those considered critical infrastructure systems. Topics include: Industrial cyber security history and threats, hacking industrial control systems, securing industrial control systems, advanced cyber-physical systems security concepts, and privacy in cyber-physical systems. F, even years.

CSCI 554. Applications in AI/Computational Intelligence. 3 Credits.

A continuous study of the computational paradigms of Soft Computing in the field of Computational Intelligence. The topics include the applications of the various soft computing techniques in Computational Intelligence as well as more evolutionary algorithms in Swarm Intelligence. Prerequisite: CSCI 544. F, even years.

CSCI 555. Computer Networks. 3 Credits.

A study of new and developing network architectures and communication protocols. Broadband technologies will be considered including BISDN, ATM networks, and other high-speed networks. Prerequisite: CSCI 327.

CSCI 562. Formal Specification Methods. 3 Credits.

A foundational course that introduces several formal specification techniques for construction and analysis of software artifacts. Included are rigorous program development, abstract specifications of modules, and modeling of concurrent and distributed software. Prerequisites: CSCI 435 and CSCI 463.

CSCI 565. Advanced Software Engineering. 3 Credits.

A study of current topics related to the design and implementation of large software systems. Course content may vary with instructor and student interest. Potential topics include: software testing and validation, programming environments, program metrics and complexity, design methodologies, software reliability and fault tolerance. Prerequisite: CSCI 463.

CSCI 566. Software Engineering Project. 3-6 Credits.

The complete development of a useful software product, including specifications, design, documentation, coding, testing and verification. Students may work in teams. The project is supervised by the students' Independent Study Advisor. This course may not be used as an elective for the thesis option in computer science. Repeatable to 6 credits. Prerequisite: CSCI 463. Repeatable to 6 credits.

CSCI 575. Analysis of Algorithms. 3 Credits.

The time and space complexity of classical computer algorithms is analyzed. NP hard and NP complete problems are characterized and illustrated. Prerequisite: CSCI 435.

CSCI 582. Software Architecture. 3 Credits.

Software architecture is a fairly young sub-discipline within software engineering; it is aimed at shifting the designer's focus from algorithmic control structure to interactive interrelations among components. This course, among other things, will expose students to the concepts of design, design of design, principles and state-of-the-art methods and techniques in software architectures, which include the discussion of architectural patterns (or styles), domain specific architectural design, formal architectural description languages (ADLs), software connectors (simple and composite), architectural analysis, and middleware and component-based software development. Prerequisites: CSCI 463 and CSCI 435.

CSCI 588. Data Structure, Algorithms, and Software Design in C++. 3 Credits.

This course is intended for the Scientific Computing Ph.D students. The course attempts to introduce C++ via laboratory sessions. More specifically, this course tries to incorporate Data Structures and Algorithms in C++ as well as Software Design in C++. During these sessions the students are introduced to C++ concepts using a series of examples. Having examined the examples given in the session and having understood the concepts covered, the student should be able to complete open-ended problems. This course assumes no prior knowledge of C++.

CSCI 591. Directed Studies. 1-3 Credits.

An investigation of some specific area by an individual or small group of students working closely with a member of the graduate faculty. 1-3 credits in each graduate degree program. Prerequisites: Graduate standing and consent of instructor. Repeatable to 6 credits. F,S,SS.

CSCI 599. Research. 1-6 Credits.

This course is intended for Ph.D students to obtain credit for their research efforts. Repeatable to 21 credits. Repeatable to 21 credits. S/U grading.

CSCI 996. Continuing Enrollment. 1-12 Credits.

Continuing Enrollment. Repeatable. S/U grading.

CSCI 997. Independent Study. 2 Credits.

Independent Study.

CSCI 998. Thesis. 1-9 Credits.

Thesis. Repeatable to 9 credits.

CSCI 999. Dissertation. 1-12 Credits.

Dissertation. Repeatable to 12 credits. F,S,SS.


Undergraduate Courses for Graduate Credit

CSCI 427. Cloud Computing. 3 Credits.

This is the undergraduate-level course on cloud computing models, techniques, and architectures. Cloud computing is an important computing model which enables information, software, and other shared resources to be provisioned over the network as services in an on-demand manner. This course introduces the current practices in cloud computing. Topics may include distributed computing models and technologies, Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), Software-as-a-Service (SaaS), virtualization, performance and systems issues, capacity planning, disaster recovery, Cloud OS, federated clouds, challenges in implementing clouds, data centers, hypervisor CPU and memory management, and cloud hosted applications. S, even years.

CSCI 435. Formal Languages and Automata. 3 Credits.

A study of automata, grammars, and Turing machines as specifications for formal languages. Computation is defined in terms of deciding properties of formal languages, and the fundamental results of computability and decidability are derived. Prerequisites: CSCI 242 and minimum second semester junior standing. F.

CSCI 445. Mathematical Modeling and Simulation. 3 Credits.

A study of various mathematical applications for digital computers, including the modeling, simulation and interpretation of the solution of complex systems. Prerequisites: CSCI 161 or CSCI 170, and MATH 166 and a statisitcs course. F, even years.

CSCI 446. Computer Graphics I. 3 Credits.

Introduction to computer graphics. Topics include display technology, light and color, 2D and 3D representations, image processing, ray-tracing, and computer animation. Prerequisites: CSCI 242, CSCI 363, and MATH 166. F, odd years.

CSCI 448. Computer Graphics II. 3 Credits.

A continuation of CSCI 446, topics covered include: history of games, game taxonomies, game design theory, computer game development, physics engines and AI engines. Prerequisite: CSCI 446. S, even years.

CSCI 451. Operating Systems I. 3 Credits.

Introduction to operating system theory and fundamentals. Topics include: multiprogramming, CPU scheduling, memory management methods, file systems, interprocess communication, and a survey of modern operating systems. Prerequisites: CSCI 242 and CSCI 370. F.

CSCI 452. Operating Systems II. 3 Credits.

A study of the implementation of operating systems and parts of operating systems, and development of system software. Prerequisites: CSCI 451. On demand.

CSCI 455. Database Management Systems. 3 Credits.

Database concepts, database design (ER, UML), database programming languages (SQL), NoSQL Database, Database Concurrency and recovery techniques, and Database security. Prerequisite: CSCI 242. S, even years.

CSCI 457. Electronic Commerce Systems. 3 Credits.

A study of the system architecture, content design and implementation, and data analysis, management, and processing of electronic commerce. Topics include Internet basics, business issues, data management and processing, static and dynamic web programming, e-commerce content design and construction, and databases and host languages with embedded SQL. Prerequisite: CSCI 260. S, odd years.

CSCI 463. Software Engineering. 3 Credits.

This course teaches software engineering principles and techniques used in the specification, design, implementation, verification and maintenance of large-scale software systems. Major software development methodologies are reviewed. As development team members, students participate in a group project involving the production or revision of a complex software product. Prerequisites: CSCI 242 and CSCI 363. S.

CSCI 465. Principles of Translation. 3 Credits.

Techniques for automatic translation of high-level languages to executable code. Prerequisites: CSCI 365 and CSCI 370. F, odd years.

CSCI 491. Seminars in Computer Science. 1 Credit.

A course for advanced students. Repeatable to 3 credits. Prerequisite: Consent of instructor. Repeatable to 3 credits. S/U grading. F,S.

Office of the Registrar

Tel: 701.777.2711
1.800.CALL.UND
Fax: 701.777.2696

Twamley Hall Room 201
264 Centennial Drive Stop 8382
Grand Forks, ND 58202-8382