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 330 Microcomputer Architecture 4 cr.
  • Offered: Fall Winter
  • Prerequisites: CS 122 or instructor permission.

Study of how computer hardware responds to stored instructions. Construction projects with logic circuits lead to the conceptual designs of microprocessors. Assembly language programming is introduced in the context of the logic circuitry being controlled. Projects emphasize the software needed in common interfacing tasks.

CS 342 Game Programming 4 cr.
  • Offered: Contact Department
  • Prerequisites: CS 222, or permission of instructor.

The basics of programming interactive video games in a general purpose language. Topics include: animation, user interaction, event loops, 2D & 3D coordinate systems, perspective, sound, and networked multiplayer environments.

CS 344 iOS / iPhone Programming 4 cr.
  • Offered: Fall
  • Prerequisites: CS 222 or instructor permission.

This course covers how to program the iPhone and Apple Macintosh using Objective C. Topics may include iPhone programming, the Macintosh operating system, Objective C object hierarchy, Cocoa Touch, views, controllers, embedded databases, animation, OpenGL / gaming, motion sensing, map and location services. 

CS 345 Android Programming 4 cr.  (4-0-0)
  • Offered: Winter
  • Prerequisites: CS 222 or permission of instructor.

This course teaches how to program the Android operating system using Java. Topics include developing competence with the Android design tools, basic application writing, GUI creation, events and network programming.  

Notes:

May not be repeated for credit.

CS 365 Client-Side Web Programming 4 cr.  (4-0-0)
  • Offered: Every third semester, starting Winter 2024
  • Prerequisites: CS 201.

This course covers how to develop websites, with an emphasis on web applications. Current client-side frameworks and/or libraries are used. The focus of this course is mainly on  client-side technologies, although server-side technologies may be introduced as well. 

Notes:

May not be repeated for credit.

CS 370 Intelligent Mobile Robots 4 cr.
  • Offered: On demand
  • Prerequisites: CS 201 or CS 330, or equivalent software or hardware experience.

This course teaches how to design, build, and program autonomous robots. Topics include robot architecture (sensors, effectors, processors, and platforms), and adaptive behavior (navigation, machine learning, and evolutionary robotics). Course incorporates significant hands-on experience with real robots and simulators. The second half of the course involves team-based projects with a final demonstration.

CS 410 Database Development for Scientists 4 cr.  (4-0-0)
  • Offered: On demand
  • Prerequisites: Eight credits of sciences or instructor approval.

This course teaches scientists how to manage data and databases. It includes how to convert data formats, how to filter data including outlier removal, writing queries including SQL, and many data analysis techniques. 

Notes:

This course is not intended for computer science majors.

CS 422 Algorithms Design and Analysis 3 cr.
  • Offered: Winter
  • Prerequisites: CS 222 and MA 161.

Overview of algorithm design strategies. Topics: asymptotic notation, induction, recurrence relations, sorting, searching, dynamic programming, greedy algorithms, number-theoretic algorithms, NP-completeness and complexity.

CS 424 Compilers: Theory and Practice 4 cr.
  • Offered: On demand
  • Prerequisites: CS 222 and either CS 322 or CS 330 and junior standing or instructor's permission.
A compiler is a program that translates one computer language to another. In this course, students will learn how compilers work, what makes some languages easier to compile than others and different approaches to compiler design. Over the course of the semester, students will build their own compilers.
CS 426 Operating Systems 4 cr.
  • Offered: Fall
  • Prerequisites: CS 228.

This course explores the concepts of modern operating systems. Topics include memory management, processor scheduling, security management, and file system design. Examples are drawn from Windows NT, UNIX and Linux. Students without CS 330 may enter with consent of instructor.

CS 442 Advanced Networking 4 cr.
  • Offered: Every third semester
  • Prerequisites: CS 228.

Topics include threaded programming, locking, network routing, parallel processing, and peer-to-peer computing and related subjects such as packet sniffers, parallel mathematical algorithms and web server proxies. 

CS 444 Parallel and Distributed Processing 4 cr.  (4-0-0)
  • Offered: Contact Department
  • Prerequisites: CS 222.

This course covers parallel programming, including shared memory and distributed memory programming. Topics include architecture, programming techniques, the MPI, OpenMP, and pthread libraries and famous algorithms.

CS 446 Computer Graphics 4 cr.
  • Offered: On demand
  • Prerequisites: MA 115 and CS 222, or instructor's permission.
An introduction to the concepts and techniques of computer graphics. Topics include geometric transformations, viewing, object hierarchy, input and interaction, curves and surfaces, illumination and shading. In this course students will design graphics applications.
CS 465 Server-Side Web Programming 3 cr.
  • Offered: Every third semester, starting Fall 2023
  • Prerequisites: Six credit hours of computer science courses at the 200 level or above.

This course teaches students how to program client/server applications for the web, focusing mainly on the server side. Topics cover scripting languages such as Perl, PHP, or other current alternatives, using them to read input from Web forms and produce Web output. SQL will be used to interface with databases as the backend technology.

CS 470 Artificial Intelligence 4 cr.
  • Offered: On demand
  • Prerequisites: CS 222, junior standing or instructor's permission.
Students learn techniques for making computers behave more intelligently and adaptively. The course includes a survey of the broad field of computer intelligence, including newer areas of adaptive systems, such as neural networks and genetic algorithms. Specific methodologies will be explored through implementation and application to real-world problems.
CS 480 Senior Project in Computer Science 4 cr.
  • Offered: Fall Winter
  • Prerequisites: CS 222, CS 228, junior standing and permission of adviser.

This course involves creating a significant software and/or hardware project. Work is supervised by an adviser. Topics must be approved first by an evaluation committee, which will later review and grade the completed project.

For details, examples, and procedure, see http://cs.nmu.edu/~SeniorProjects. 

CS 490 Special Projects in Computer Science 1-4 cr.
  • Offered: On demand
  • Prerequisites: Prior arrangement with instructor and junior standing.

This course provides students with a chance to work independently on topics of special interest. Students are required to create a pre-approved plan of study with an adviser.

Notes:

May be repeated if project differs.

CS 491 Internship in Computer Science 1-8 cr.
  • Offered: On demand
  • Graded: S/U
  • Prerequisites: Junior standing, minimum grade point average of 3.00 and departmental approval.

The course provides on-the-job experience in the application of computer science principles. Internship positions are coordinated with the JOBSearch Center and the Mathematics and Computer Science Department.

Notes:

May be repeated for credit, not to exceed eight credits total. Only four credits may be applied to a computer science minor.

CS 495 Special Topics in Computer Science 1-4 cr.
  • Offered: On demand
  • Prerequisites: For upper division students and majors and minors.

Topics reflecting special interest of students and staff.

Notes:

May be repeated if topic differs with instructor permission.

CS 496 Special Topics in Computer Science 1-4 cr.
  • Offered: On demand
  • Graded: S/U
  • Prerequisites: For upper division students and majors and minors.

Topics reflecting special interest of students and staff.

Notes:

May be repeated if topic differs with instructor permission.

DAN 130 The Dance Experience 4 cr.  (4-0-0)
  • Offered: Fall

This is an introductory exposure to the art and experience of dance for the general student. This course will examine various aspects of dance culture at the novice level including: viewing and identifying of various genres and stories of dance, dance history, dance aesthetics, dance productions, and using critical thinking skills in viewing dance (i.e. describing, analyzing, interpreting, and evaluating).

DAN 201 Beginning Ballet Technique 2 cr.  (0-0-4)
  • Offered: Fall (Depending on Enrollment)

Beginning ballet technique for the general student. The emphasis is placed on line, control, alignment and musicality. Students will learn elementary combinations utilizing fundamental classical ballet vocabulary.

Notes:

May be taken up to two times for credit.

DAN 202 Beginning Contemporary Technique 2 cr.  (0-0-4)
  • Offered: Fall

Students learn skills and techniques of contemporary dance. This course, designed for the general student, will explore the basics of contemporary dance including floor, barre, and center work, contemporary ballet technique elements, dynamic enchaînements in center and across the floor, choreography, and musicality.

Notes:

May be taken up to two times for credit.