Artificial Intelligence
- Offered: On demand
- Prerequisites: CS 222, junior standing or instructor's permission.
- Bulletin Year: 2021 - 2022 Undergraduate Bulletin | View the current NMU Catalog.
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.
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.
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.
Overview of algorithm design strategies. Topics: asymptotic notation, induction, recurrence relations, sorting, searching, dynamic programming, greedy algorithms, number-theoretic algorithms, NP-completeness and complexity.
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.
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.