BGSU Logo
BGSU Home BGSU Academics BGSU Admissions The Arts BGSU Athletics Libraries Offices
Department of Computer Science
Computer Science Home Undergraduate Program Graduate Program Computer Science Faculty Academic Advising Mission and Vision
Small font Medium font Larger font Largest font
Left bracket Undergraduate Courses Right bracket

Credit hours are shown in parentheses. Links point to additional information about the course.

CS 100. Computer Basics (3)
Fall, Spring, Summer. Computer technology and related social issues. Hardware, software, applications in diverse areas. Problems concerning computerized services, data banks, governmental controls. Problem solving using software packages (such as hypertext, spreadsheets, word processing, database, presentation graphics, etc.). Credit not allowed for both CS 100 and MIS 200. Credit not applicable toward major or minor in computer science. Prerequisite: one year of high school algebra or MATH 095.

CS 101. Introduction to Programming (3)
Fall, Spring, Summer. Algorithms. Programming language features: expressions, assignments, functions with parameters, conditions, loops, arrays. Several programming assignments required. Does not apply to the computer science major or minor. Credit not allowed for both CS 101 and CS 261. Prerequisite: two years of high school algebra or MATH 095.

CS 180. Introductory Topics (1-3)
Introduction to the use of a programming language or other computer software. Can be repeated to three hours if topics differ. Credit not applicable to major or minor in computer science.

CS 181. Introductory Topics (1-3)
Introduction to the use of a programming language or other computer software. Can be repeated to three hours if topics differ. Credit not applicable to major or minor in computer science. Graded S/U.

CS 201. Introduction to Object-Oriented Programming (3)
Fall, Spring, Summer. Introduction to programming using the object-oriented paradigm. Fundamental data types and control structures; objects and classes; strings, vectors and arrays. Introduction to data representation. Prerequisite: Two years of high school algebra or MATH 112 or equivalent.

CS 202. Objects and Data Abstraction (3)
Fall, Spring, Summer. Inheritance; virtual functions and polymorphism. Object-oriented design; recursion; sorting and searching algorithms; operator overloading; templates; pointers; elementary data structures including lists, stacks, and queues. Prerequisite: Grade of C or better in CS 201.

CS 217. Computer Organization (3)
Fall, Spring, Summer. Organization of digital computer hardware. Combinational and sequential circuits. Assembly language concepts. ALU, CPU, and control unit design. Projects will be implemented on a circuit simulator. Prerequisite: CS 201 or CS 205.

CS 261. Business Programming Principles (3)
Fall, Spring. Programming in a modern high-level language with emphasis on business-related applications. Introduction to structured programming, algorithms, and data structures. Credit not allowed for both CS 101 and CS 261. Prerequisite: MIS 200.

CS 280. Intermediate Topics (1-3)
Introduction to the use of a programming language or other computer software. For students who already know how to program. Can be repeated to three hours if topics differ. Credit not applicable to major or minor in computer science. Prerequisite: CS 101 or CS 201 or equivalent.

CS 290. Co-Op Preparation (1)
Fall. Introduction to co-op experience (benefits, scheduling alternatives, etc.). Career options in computer science. Job search strategies. Professional ethics. Credit not applicable to major or minor in computer science. Prerequisite or corequisite: CS 202 or CS 215. Graded S/U.

CS 301. Information Management Technologies (3)
Spring. An introduction to technologies of current importance in information management application development, such as database management, computer graphics, artificial intelligence, and web development. Prerequisite: CS 202 or CS 215.

CS 314. Web Application Development (3)
Spring. A survey of web technologies and emerging web standards, protocols, markup languages, and scripting languages. Both client-side and server-side technologies and scripting languages are covered. Prerequisite: CS 201 or CS 205.

CS 316. Windows Application Development (3)
Spring, Summer. Implementing a graphical user interface on the Windows operating system with object-oriented programming. Dialogs and controls; messages and commands; the view/document paradigm; database access; SDI and MDI. Prerequisite: CS 202 or CS 215.

CS 324. Usability Engineering (3)
Spring. User interface design and human-computer interaction. Understanding the user. Design and prototyping of highly usable interfaces. Design notations, dialog styles, screen layouts, and usability testing. Event-driven programming language for rapid prototyping. Prerequisite: CS 202 or CS 215.

CS 327. Operating Systems and Networks (3)
Fall. Design of multiprocessing operating systems, process scheduling and synchronization. Device drivers and communication hardware. Networks and their topologies. Communication protocols and client/server environments with implication for operating system services and user programs. Prerequisites: CS 217 and either CS 202 or CS 215.

CS 335. Data Structures and Algorithms (3)
Fall. Specification, encapsulation, adaptation, use and reuse of advanced data structures and related algorithms. Criteria for analysis and selection of software components for use in applications. Prerequisite: CS 202 or CS 215.

CS 360. COBOL Programming (3)
Spring, Summer. COBOL programming language and techniques for use; report generation; table handling; sorting; sequential and random-access data files; debugging techniques; COBOL standards. Prerequisite: Grade of "C" or better in CS 101 or CS 201 or CS 261 or equivalent.

CS 371. Introduction to Unix (1)
Spring. The Unix operating system; utilities; file structure; pipes; filters; shell programming. Prerequisite: CS 101 or CS 201 or CS 261.

CS 380. Special Topics in Computer Science (1-3)
Detailed study of the professional and ethical issues pertaining to computer science or of a particular computer system or programming language that is not covered elsewhere in the curriculum. May be repeated if topics differ. Prerequisite: CS 201 or CS 205. (Additional prerequisites, if any, will be announced.)

CS 390. Practicum in Computer Science (1-6)
For students working in internship or co-op programs. Written report required. Does not apply to major or minor in computer science. May be repeated to three hours. Students working through the co-op office may earn up to six hours of credit. Prerequisite: consent of department. Graded S/U.

CS 408. Advanced Operating Systems (3)
Spring. Structure of operating systems. Physical input-output, buffering, interrupt processing. Memory, processor, device, information management; resource management interdependencies. Job and processor scheduling. Prerequisite: CS 327.

CS 409. Language Design and Implementation (3)
Fall. Fundamental concepts of languages. Processors, data, operations, sequence control, data control, storage management, syntax, translation. Prerequisite: CS 217 and either CS 325 or CS 335.

CS 410. Formal Language Theory (3)
Fall odd years. Various types of languages (context-sensitive, context-free, regular). Discussion of recognition devices such as pushdown automata, linear bounded automata and Turing Machines. Some topics of current interest. Prerequisite: MATH 222 or MATH 322.

CS 417. Introduction to Parallel Computing (3)
Spring even years. Principles and practice of parallel computing. Parallel program design, implementation and evaluation of parallel programs for shared memory, local memory and vector architectures. Prerequisite: CS 327.

CS 420. Artificial Intelligence Methods (3)
Summer odd years. Intermediate AI programming with application to representative problems requiring searching, reasoning, planning, matching, deciding, parsing, seeing and learning. Prerequisite: junior or senior standing.

CS 425. Computer Graphics (3)
Spring every year; Summer even years. Graphic I/O devices; 2-dimensional and 3-dimensional display techniques; display processors; clipping and windowing; hidden-line removal; data structures for graphics. Prerequisites: CS 202 or CS 215 or CS 335, and one of MATH 222, 322, 332.

CS 429. Data Communication and Networks (3)
Spring. Data communication concepts; network topologies; transmission media; network access control; communication protocols; network architecture; LANs, MANs, and WANs; internetworking. Prerequisite: CS 327.

CS 440. Optimization Techniques (3)
Fall even years. Linear programming, game theory, PERT, network analysis; duality theory and sensitivity analysis; applications. Computer programs written to implement several techniques. Prerequisites: CS 101 or CS 201 and either MATH 222 or MATH 322.

CS 442. Techniques of Simulation (3)
Spring odd years. Principles of simulation and application of simulation languages to both continuous and discrete systems. Prerequisites: MATH 247 and either CS 202 or CS 215.

CS 451. Numerical Analysis (3)
Fall. Study of numerical methods for interpolation and approximation, integration and differentiation, solution of non-linear equations and systems of linear and non-linear equations. Prerequisites: CS 101 or CS 201 and MATH 332. Not open to students with credit for MATH 451.

CS 452. Numerical Analysis (3)
Spring. Numerical methods for the algebraic eigenvalue problem, solutions of ordinary differential equations; topics from approximation theory, numerical solution of partial differential equations, optimization techniques, and sparse matrix computations. Prerequisites: CS 451 and MATH 337. Not open to students with credit for MATH 452.

CS 462. Database Management Systems (3)
Fall. Semantic models for conceptual and logical design of databases. Detailed study of relational systems: design, dependency and normal forms. Use of interactive and embedded query language. Overview of topics such as database connectivity, security, and object-oriented systems. Prerequisite: CS 202 or CS 215.

CS 464. Software Development (3)
Fall. In-depth study of all aspects of software development process: user requirements, specifications, design, coding, testing, maintenance, documentation, management. Use of CASE tools for analysis and design. Prerequisite: CS 324.

CS 480. Seminar in Computer Applications (1-3)
Prerequisite: consent of instructor. May be repeated up to six hours.

CS 490. Independent Project (1-3)
Readings and/or computer implementations in area of interest to individual student. Does not apply to major or minor in computer science. May be repeated up to six hours. Graded S/U.

webmaster@cs.bgsu.edu