Courses

Search for courses listed in this bulletin. To find a semester course schedule (including instructors, meeting times and locations), go to mynmu.nmu.edu.

CS 514 Software Engineering 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science or instructor permission.

This course explores best practices covering the entire lifecycle of software development. In particular, the knowledge areas of requirements, design, construction, testing, documentation, maintenance, configuration management, and engineering management shall be explored. Best practices in these topic areas will be presented as best practice patterns. The class shall, over the course of the semester, apply these practices in a class project.

CS 516 Advanced Operating Systems 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science or instructor permission.

This advanced course explores the concepts of modern operating systems. Topics include memory management, processor scheduling, security management, and file system design. Design concepts such as the micro-kernel architecture and object-oriented operating systems are covered. Examples are drawn from a wide variety of operating systems, including Windows and Linux. Students will be expected to perform hands-on experiments with operating system behavior and make minor modifications to existing operating systems.

CS 520 Computational Complexity Theory 4 cr.  (4-0-0)
  • Prerequisites: CS 510 Advanced Algorithm Design or instructor permission.

This course is an introduction to computational complexity theory and standard complexity classes. Prior knowledge of discrete mathematics and algorithms is assumed. By investigating the amount of resources (like time, memory …) to solve computational problems, we classify them into different complexity classes and explore the relationship between these classes. Topics include deterministic and nondeterministic Turing machines, diagonalization, decidable and undecidable languages, DTIME and NTIME complexity classes, P, NP and coNP classes, polynomial-time reductions, NP-hard and NP-complete problems, space complexity, polynomial hierarchy, Boolean circuits, non-uniform complexity, and randomized computation.

CS 522 Formal Languages and Automata Theory 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: CS 510 or instructor permission.

This is a course on automata, formal languages, and computability. Topics include context-free grammars, parsing, normal forms, deterministic and nondeterministic finite automata, regular languages, pumping lemma, push-down automata, and deterministic parsing, deterministic and nondeterministic Turing machines.

CS 526 Randomness and Computation 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: CS (510) Advanced Algorithm Design or instructor permission.

This course provides an introduction to the fundamental ideas, concepts, and tools related to using randomness in computation. The ability of computers to generate random sequences and the fact that random bits can be used to design more efficient algorithms are among the most notable and surprising advancements in computer science.  Topics covered in this course include equality testing, Markov and Chebyshev inequalities, median finding, perfect hashing families, Chernoff bound and its applications, polynomial identity testing, the probabilistic method, the method of conditional probabilities, Randomized Data Structures, Markov Chains, randomized complexity classes, and derandomization.

CS 542 Advanced Topics in Networking 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science or instructor permission.

This advanced course explores the concepts of modern networks and network applications. Topics includeIPv4, IPv6, distributed hash tables, and various network APIs. Examples are drawn from a wide variety of application environments.

CS 550 Principles of Programming Languages 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science or instructor permission.

This course explores the fundamental aspects of modern programming languages with respect to semantic and syntax. Using a rigorous approach, we examine the design and implementation of programming languages. More specifically, by using axiomatic, operational, and denotational semantics, we formalize the intended execution and implementation of languages. We design and implement a programming language with a focus on precise and formal investigation of its features. We see how design choices affect the implementation of a programming languages. This course is not a survey of existing programming language paradigm.

CS 556 Functional Programming 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science or instructor permission.

This course covers many of the fundamental techniques and concepts in functional programming. We will look at many important and powerful features of functional programming languages including algebraic data types, pattern matching, higher-order functions, type classes, and polymorphism. We will also cover some theoretical aspects of functional programming including (typed) lambda calculus and structural induction.

CS 570 Machine Learning 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science or instructor permission.

In this course, we study algorithms for writing computer programs that improve with experience.  The basic theory of machine learning will be covered, including concepts such as hypothesis space, bias, overfitting, training sets, and testing sets.  We will also dive into the details of specific machine learning techniques, including decision trees, Bayesian classifiers, instance-based learning, and artificial neural networks. The course is focused primarily on supervised learning, though other approaches (semi-supervised, un-supervised, and reinforcement learning) will be explored as well.

CS 572 Evolutionary Computation 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: CS 422 Algorithms Design and Analysis, or instructor permission.

This course is an introduction to a class of algorithms based on the long term design process of natural evolution.  It covers the major operators of Darwinian selection, variation, and recombination and how these can be applied together to solve problems in search, optimization, and machine learning.   The course covers both practical implementation and application to real-world problems as well as current theoretical results.  The course includes an overview of the major types of evolutionary algorithms and application areas, including genetic algorithms, evolution strategies, genetic programming, artificial life, artificial immune systems, learning classifier systems, evolving neural networks, co-evolution, and evolutionary robotics.  A project will focus on using the best evolutionary approach, efficiently implemented on parallel hardware, to solve one challenging problem such as multi-objective optimization, engineering design, human-competitive game AI, or an open problem in NP-Complete.

CS 582 Advanced Database Systems 4 cr.  (4-0-0)
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science or instructor permission.

This advanced course explores the concepts of databases, both traditional SQL based databases and NoSQL variants. Topics include relations and tables in SQL, union operations, group operations, SQL permissions, SQL implementations, advantages and disadvantages of NoSQL databases, MongoDB, and Memcached.

CS 589 Research in Computer Science 1-4 cr.
  • Graded: A/F
  • Prerequisites: Graduate student in Computer Science, instructor permission, and approval of department.

Independent research or study in the area of Computer Science is pursued by qualified students under the supervision of a member of the faculty within the Computer Science Committee of the Department of Mathematics and Computer Science.  Supervisor and research problem must be selected prior to enrollment in this course. 

CS 594 Project in Computer Science 1-4 cr.
  • Graded: A/F
  • Prerequisites: Instructor permission and approval of department.

Independent research or study in the area of Computer Science is pursued by qualified students under the supervision of a member of the faculty within the Computer Science Committee of the Department of Mathematics and Computer Science.  Supervisor and research problem must be selected prior to enrollment in this course.  At the conclusion of the course, a written project must be submitted. This report must be approved by student’s graduate committee. The student should consult the Mathematics and Computer Science department and the College of Graduate Studies and Research for specific requirements.

CS 599 Thesis in Computer Science 1-4 cr.
  • Graded: A/F
  • Prerequisites: CS 589, instructor permission, and approval of department.

At the conclusion of the course, a written thesis acceptable to the student's graduate committee and to the College of Graduate Studies must be filed in triplicate.  The student should consult the department and the College of Graduate Studies for specific requirements.

CT 564 Guidance for Classroom Teachers 2 cr.
Primarily for students who will work in school settings, emphasizing work with school-age children and adolescents. Introduces various theoretical approaches, ranging from behavior modifications to existential, as they apply to guidance for the classroom teacher. This course will combine lecture, discussion, media and experimental approaches to learning the material. The experiential portion involves participating in ongoing demonstrations of various theories and techniques.
CT 596 Special Topics 1-4 cr.
  • Graded: S/U
  • Prerequisites: Graduate standing or consent of instructor
Presenting unique and timely topics. Specific topics are announced via departmental and university publications.
CT 597 Directed Studies 1-4 cr.
  • Graded: S/U
  • Prerequisites: Graduate standing, consent of instructor and director of School of Education
Independent study under the supervision of a member of the School of Education. Supervisor and study must be selected prior to enrollment in the course and appropriate directed study forms must be completed.
ED 462 Literature for Young Adults 3 cr.
  • Prerequisites: Junior standing

A comprehensive study of books for young adults, designed for secondary school teachers. Needs and interests of adolescents are studied in conjunction with the application of selection principles to fiction and nonfiction of all types. Emphasis is placed on developmental reading for the accelerated, the average and the reluctant student.

ED 500 Educational Research 3 cr.
  • Prerequisites: Graduate standing

An introduction to the field of educational research. Students will design an educational research study, complete a literature review, and learn how to interpret research results and present research findings.

ED 504 Psychology of Education 2 cr.
A comparative study of learning theories. The analysis is made with reference to the practical application of learning theories to the process of instruction.
ED 505 Measurement and Evaluation 2 cr.
An investigation of systems of measurement and evaluation with an emphasis on use in classroom situations. Topics include computation of selected basic statistics, test reliability and validity, and interpretation of test data.