2022 - 2023 Undergraduate Bulletin

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 101 Web Site Construction 4 cr.
  • 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.

CS 120 Computer Science I 4 cr.  (4-0-0)
  • 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.

CS 122 Computer Science II 4 cr.
  • 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.

CS 201 Programming in C++ 3 cr.
  • 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.

CS 202 Python 4 cr.  (4-0-0)
  • 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.

CS 222 Data Structures 4 cr.
  • 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.).

CS 228 Network Programming 3 cr.
  • 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.

CS 255 Computing for Teachers 4 cr.
  • 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.

CS 302 Unix System Administration 4 cr.
  • 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.

CS 322 Principles of Programming Languages 4 cr.
  • 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.

CS 326 Object-Oriented Design 3 cr.
  • Offered: Winter
  • Prerequisites: CS 222 or consent of instructor.
The aim of this course is to develop a thorough understanding of software engineering principles that support the development of large projects. Object-oriented design patterns will be emphasized in this course.
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.