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.
- Offered: Fall Winter
This class covers all facets of Web site construction, from the creation of a Web site's content to the use of HTML and CSS style sheets. Audio and video formats will be explored. Legal issues will be covered. This class is designed for students of all majors.
- Offered: Fall Winter
- Prerequisites: "B-" or better in MA 100; or "B-" or better in CS 101; or "B-" or better in CIS 110; or a mathematics placement recommendation of CS 120 or higher, or instructor permission.
This intensive, fast-paced course is the first programming course for computer science and mobile and web application development majors. Topics include methods and parameters, conditionals, loops, arrays, graphical user interfaces and object-oriented program design.
Notes:This course is recommended for students with a strong desire to learn programming but lack experience. Students without interest in computer programming should consider CS 101 instead.
- Offered: Fall Winter
- Prerequisites: CS 120 or equivalent, or instructor's permission.
A continuation of CS 120. This course provides an opportunity to further develop fundamental programming skills. Topics include introductions to string handling, algorithm analysis, recursion, linked lists, interfaces, inheritance and fundamental data structures.
- Offered: Fall
- Prerequisites: CS 122 or instructor permission.
CS 201 teaches how to program in C++. Topics include pointers, memory management, data structures, object-oriented design and file processing.
- Offered: Winter
A course for students who do not yet know Python, but have some computer skills. Teaches programming in Python include file management, control structures, objects, and using Python for doing math/statistics/graphing and using Python for system administration tasks.
- Offered: Winter
- Prerequisites: CS 201.
This course covers data structures and algorithms in depth. Topics covered include arrays, stacks, queues, linked lists, trees and graphs, basic problem solving strategies and complexity analysis, sorting and searching algorithms, hashing techniques, and some advanced tree structures (e.g., AVL trees, B and B+ trees, splay trees, etc.).
- Offered: Winter
- Prerequisites: CS 201.
This course covers creating network-based applications as well as the basic theory of networking. Topics include programming Internet applications, client-server programming and Internet protocols. Applications created have included mail clients, Web servers and Internet-based games.
- Offered: Winter
- Prerequisites: MSED 150 with a "C" or better or instructor's permission.
The course serves as an introduction to technology in education. The primary focus will be the use of computers and the Internet in education. The course projects concentrate on applications relevant to the school curricula.
- Offered: On demand
Designed for freshman and sophomores. Topics reflecting the special interests of students and staff.
Notes:May be repeated if topic differs with instructor permission.
- Offered: On demand
- Graded: S/U
- Prerequisites: Department head permission.
- Offered: On demand
- Offered: Winter
- Prerequisites: Six credit hours in CS or CIS numbered 120 or above, system administration experience, or consent of instructor.
This is an introductory course in Unix system administration. Students will be given real world experience installing and managing their own Unix workstation. Topics include installation, networking, user management and security.
- Offered: Fall
- Prerequisites: MA 240, CS 222, and CS 330 (concurrent enrollment in CS 330 permitted) or instructor's permission.
Overview of programming language paradigms. Topics: memory usage, flow of control structures, object implementation, grammars, language paradigms (iterative, structured, functional, logic, object-oriented), and computability.
- Offered: Winter
- Prerequisites: CS 222 or consent of instructor.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Offered: On demand
- Prerequisites: CS 222 and either CS 322 or CS 330 and junior standing or instructor's permission.
- 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.
- 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.