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 Summer
This class covers all facets of Web site construction, from the creation of a Web site's content to technical definitions such as "hit" and "page view." 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.
  • Offered: Fall Winter Summer
  • Prerequisites: MA 100 or equivalent or instructor's permission.
This intensive, fast-paced course is the first programming course for computer science and network computing 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. Students with a substantial programming background should take CS 120A.

CS 120A Accelerated Computer Science I 4 cr.
  • Offered: Fall
  • Prerequisites: MA 100 and one high school computer class or equivalent or instructor's permission.
This course covers the same range of topics as CS 120, but carries some topics further, adding additional topics as appropriate.
CS 122 Computer Science II 4 cr.
  • Offered: 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. Students with some programming experience, especially in C, may take CS 201 concurrently with CS 122.
CS 201 teaches how to program in C++. Topics include pointers, memory management, data structures, object-oriented design and file processing.
CS 222 Data Structures 4 cr.
  • Offered: Winter
  • Prerequisites: CS 122, CS 201 and either MA 240 or MA 340.
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 122 and 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: Fall Winter
  • Prerequisites: MA 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: Fall 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. Notes:

Required for the computer science major.

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: An introductory laboratory course in a natural science or a computer programming course or instructor's 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 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 (senors, 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 422 Algorithms Design and Analysis 3 cr.
  • Offered: Winter
  • Prerequisites: CS 222 and MA 161 or MA 271.
Overview of algorithm design strategies. Topics: O-notation, induction, recurrence relations, sorting, searching, dynamic programming, greedy algorithms, number-theoretic algorithms, NP-completeness. Notes:

Required for the computer science major.

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 3 cr.
  • Offered: Fall
  • Prerequisites: CS 228 and CS 330, junior standing or instructor's permission.
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 3 cr.
  • Offered: Fall 2007, then every third semester
  • Prerequisites: CS 228, junior standing or instructor's permission.
The course teaches several higher-level computer networking concepts, such as distributed objects and high-level communication protocols. Network programming skills will be developed. Students will write and test networked programs using a variety of paradigms. Current topics of industry interest such as CORBA and DCOM will be covered.
CS 444 Parallel and Distributed Processing 4 cr.
  • Offered: Winter 2007, then every third semester
  • Prerequisites: CS 228 or instructor's permission.
This course introduces the students to the basics of parallel and distributed computing. Topics include parallel hardware architecture, multi-processor architecture, process communications, data sharing, threads, deadlock avoidance, distributed algorithms, remote method invocation and client/server applications. Students will write programs demonstrating their understanding of these topics.
CS 446 Computer Graphics 4 cr.
  • Offered: On demand
  • Prerequisites: CS 322 and MA 211 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 460 Advanced Web Programming 3 cr.
  • Offered: Every third semester (last offered fall 2006)
  • 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. 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 3 cr.
  • Offered: On demand
  • 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.