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 1000. 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 1000 and MIS 2000. Credit not applicable toward major or minor in computer science. Prerequisite: one year of high school algebra or MATH 0950.

CS 1010. 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 1010 and CS 2610. Prerequisite: two years of high school algebra or MATH 0950.

CS 1800. 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 1810. 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 2010. 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 1120 or equivalent.

CS 2020. 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 2010.

CS 2170. 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 2010 or CS 2050.

CS 2800. 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 1010 or CS 2010 or equivalent.

CS 2900. 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 2020 or CS 2150. Graded S/U.

CS 3010. 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 2020 or CS 2150.

CS 3140. 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 2010 or CS 2050.

CS 3160. 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 2020 or CS 2150.

CS 3240. 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 2020 or CS 2150.

CS 3270. 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 2170 and either CS 2020 or CS 2150.

CS 3350. 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 2020 or CS 2150.

CS 3600. 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 1010 or CS 2010 or CS 2610 or equivalent.

CS 3710. Introduction to Unix (1)
Spring. The Unix operating system; utilities; file structure; pipes; filters; shell programming. Prerequisite: CS 1010 or CS 2010 or CS 2610.

CS 3800. 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 2010 or CS 2050. (Additional prerequisites, if any, will be announced.)

CS 3900. 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 4080. 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 3270.

CS 4090. Language Design and Implementation (3)
Fall. Fundamental concepts of languages. Processors, data, operations, sequence control, data control, storage management, syntax, translation. Prerequisite: CS 2170 and either CS 3250 or CS 3350.

CS 4100. 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 2220 or MATH 3220.

CS 4170. 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 3270.

CS 4200. 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 4250. 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 2020 or CS 2150 or CS 3350, and one of MATH 2220, 3220, 3320.

CS 4290. 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 3270.

CS 4400. 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 1010 or CS 2010 and either MATH 2220 or MATH 3220.

CS 4420. Techniques of Simulation (3)
Spring odd years. Principles of simulation and application of simulation languages to both continuous and discrete systems. Prerequisites: MATH 2470 and either CS 2020 or CS 2150.

CS 4510. 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 1010 or CS 2010 and MATH 3320. Not open to students with credit for MATH 4510.

CS 4520. 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 4510 and MATH 3370. Not open to students with credit for MATH 4520.

CS 4620. 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 2020 or CS 2150.

CS 4640. 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 3240.

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

CS 4900. 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