Lower Level Course Descriptions
(Effective Fall 2008)

(This list only goes as far as the 3000-level courses. The 4000-level courses are listed as upper level undergraduate courses.)

   CS 1000: Explorations in Computing
   CS 1090: Special Topics in Computer Science
   CS 1121: Intro to Computer Science I
   CS 1122: Intro to Computer Science II
   CS 1129: Intro to Computer Science II in C++
   CS 1131: Computer Science I
   CS 1721: Object Oriented Design
   CS 2090: Special Topics in Computer Science
   CS 2141: Software Development Using C/C++
   CS 2311: Discrete Structures
   CS 2321: Data Structures
   CS 3090: Special Topics in Computer Science
   CS 3141: Team Software Project
   CS 3311: Formal Models of Computation
   CS 3411: Systems Programming
   CS 3421: Computer Organization
   CS 3451: Computer Administration
   CS 3621: Computer Graphics: Elementary Geometric Objects and Processing
   CS 3911: Intro to Numerical Methods with FORTRAN

CS 1000 Explorations in Computing (0-1-0) f 1

Introduction to the study of computing: fundamental concepts and skills; opportunities at Michigan Tech; career opportunities; social and ethical issues.

CS 1090 Special Topics in Computer Science (On Demand) 1-3

Special topics in computer science offered on occasion based on student and faculty demand and interest.

CS 1121 Introduction to Computer Science I (0-2-2) f,s,su 3

Starting point of the computer science program. A high-level, object-oriented programming language is introduced as a problem-solving tool. Topics include design, coding, documentation, debugging and testing of programs. Programming assignments are given in both a closed lab setting and as homework.
Prerequisite: MA 1032(C)or MA 1031(C).

CS 1122 Introduction to Computer Science II (0-2-0) f,s,su 2

Continuation of CS1121. Topics include data abstraction, class hierarchies and polymorphism, list, stack and queue data structures, informal complexity-based algorithm and data structure choices, and recursion.
NOTE: Not open to students with credit in CS1129.
Prerequisite: CS 1121.

CS 1129 Introduction to Computer Science II (0-3-0) f,s 3

Continuation of CS1121. Topics include data abstraction, class hierarchies and polymorphism, list, stack and queue data structures, and recursion. The C and C++ programming languages are presented and used. Homework programming assignments are given.
NOTE: Not open to students with credit in CS 1122.
Prerequisite: CS 1121.

CS 1131 Computer Science I (0-4-0) f,s 4

An alternative starting point of the computer science program for students with some programming experience, combining material from CS 1121 and CS1122 and offering it at an accelerated pace. Homework programming assignments are given.
Prerequisite: MA 1032; permission of Computer Science Department .

CS 1721 Object Oriented Design (0-1-0) f,s 1

Principles of object oriented design. Includes the software life cycle and unit testing. Students are required to design, unit test, implement, and final test a relatively large project.
Prerequisite: CS 1121 or CS 1131.

CS 2090 Special Topics in Computer Science (On Demand) 1-3

Special topics in computer science offered on occasion based on student and faculty demand and interest.

CS 2141 Software Development Using C/C++ (0-3-0) f,s 3

This course provides an accelerated introduction to C/C++ for Java programmers. Topics include object oriented design with UML, object oriented programming with C++, C/C++ memory model differences between C and C++ use of libraries, and debugging with modern tools.
Prerequisite: CS 1721 and CS 2321 .

CS 2311 Discrete Structures (0-3-0) f,s 3

Presents fundamental concepts in discrete structures that are used in computer science. Topics include sets, trees, graphs, functions, relations, recurrences, proof techniques, logic, combinatorics and probability.
Prerequisites: CS 1122 or CS 1131 and (MA 1135 or MA 1160 or MA 1161).

CS 2321 Data Structures (0-3-0) f,s 3

Presents fundamental concepts in data structures. Topics include ADTs (trees, priority queues, dictionaries and graphs) and their implementations, algorithm analysis, sorting and text processing. Programming projects are designed to apply these topics.
Prerequisite: CS 1122 or CS 1131.

CS 3090 Special Topics in Computer Science (On Demand) 1-3

Special topics in computer science offered on occasion based on student and faculty demand and interest.

CS 3141 Team Software Project (0-3-0) f,s 3

Introduction to the development of large software projects. Presents examples of software design, quality assurance techniques, and test-case design in conjunction with a significant team project, involving design, test, and code documentation, as well as user documentation. Other topics: teamwork, user interfaces, social and professional responsibility.
Prerequisite: CS 2141 and CS 2311.

CS 3311 Formal Models of Computation (0-3-0) f,s 3

Introduction to the theory of formal languages and computation. Topics include regular languages and finite automata, context free languages and push-down automata, context free languages and push-down automata, Turing-acceptable languages and Turing machines, and the halting problem. Proof techniques and their applications such as parsing, are also treated.
Prerequisite: CS 2311.

CS 3411 Systems Programming (0-3-0) f 3

Development of programs on modern operating systems. Topics include: scripting; compilation, linking, loading; libraries; process creation; file system access and protection; network programming; heterogeneity.
Prerequisites: CS 2141 and CS 3421.

CS 3421 Computer Organization (0-4-0) f,s 4

Introduction to the logical structure of computers, including the fundamentals of logic design, information storage and manipulation, control,input/output, and assembly language programming. Topics include a review of current hardware technology, combinational and sequential logic, arithmetic,datapaths, hard-wired control, interrupts, caches, virtual memory, and an introduction to pipelining.
Prerequisites: CS 2311.

CS 3451 Computer Administration (0-3-3) s 4

Administration of non-networked computers. Topics include: operating system installation; boot-up and shutdown; process management; account management; file systems; storage technology; backups; serial devices.
Prerequisites: CS 3411 or CS 4411.

CS 3621 Computer Graphics: Elementary Geometric Objects and Processing (0-3-0) f 3

Topics include the creation, representation and manipulation of geometric objects. Major paradigms of building shapes are surveyed, including polyhedra, curved solids, curves, and surfaces. Covers classical computational geometry topics such as convex hulls and tessellations, algorithm robustness, the impact of finite precision arithmetic on geometric computing. Applications discussed.
Prerequisite: MA2160 and (MA2330 or MA2320 or MA2321 or MA2990) and CS 2141.

CS 3911 Introduction to Numerical Methods with FORTRAN (0-3-0) f 3

Topics include floating point arithmetic, sources of numerical error, Taylor polynomials, solution of linear systems and nonlinear equations, interpolation, numerical integration, and numerical solution of differential equations. FORTRAN 90 topics include data types, control flow, arrays, procedures, pointers and dynamic data structures, I/O, and modules. Numerical algorithms will be coded.
Prerequisites: (MA 1160 or MA 1161) and (MA 2320(C) or MA2321(C) or MA 2330(C)) and (CS 2321).

Please send questions and comments about this CS Web Page to cswebmaster@mtu.edu
Department of Computer Science
Last Updated: Tuesday, March 4, 2008