Computer Science Courses

The department offers a spectrum of courses, from introductory courses for majors as well as non majors to advanced graduate courses on a broad array of topics. As part of our commitment to continual evaluation and improvement, courses are continually revised and new courses are frequently added. Links to courses’ Web sites are provided when available. Should the following information not meet your needs, please contact the department office for further assistance.

COS 101 – Introduction to PC Hardware and Windows


Topics include an overview of PC hardware, the Windows operating system, the Internet, and use of Web browsers. Does not meet Bachelor of Arts Core Distribution Area III requirement. Credit does not count towards the COS major.

Course Typically Offered: Not Regularly Offered

Credits: 1

COS 102 – Introduction to the Internet and the World Wide Web


Topics include the structure and design of Web pages. Does not meet Bachelor of Arts Core Distribution Area III requirement. Credit does not count towards the COS major. This course assumes practical skills with the Windows operating system.

Course Typically Offered: Not Regularly Offered

Credits: 1

COS 103 – Introduction to Spreadsheets


Topics include design and use of spreadsheets to solve problems using formulas, charts and data functions.  Credit does not count towards the COS major. This course assumes practical skills with the Windows operating system.

Course Typically Offered: Fall, Spring, Summer

Credits: 1

COS 104 – Introduction of Presentation Software


Topics include use of presentation software containing text, graphics and multimedia components to enhance presentations. Credit does not count towards the COS major. This course assumes practical skills with the Windows operating system.

Course Typically Offered: Fall, Spring, Summer

Credits: 1

COS 115 – Web Design in HTML/XHTML/CSS


Teaches the fundamentals of Web page design using HTML/XHTML.  Topics include text formatting, links, images, tables, forms and style sheets.  This course assumes practical skills with the Windows operating system.

Course Typically Offered: Fall, Spring, Summer

Credits: 3

COS 120 – Introduction to Programming I


Topics include the development of programming skills in the novice with instruction in a sample programming language. A laboratory/recitation session is included. Credit does not count towards the computer science major. This course assumes knowledge of the Windows operating system, basic word processing, and file and folder management.

General Education Requirements: Satisfies the General Education Mathematics Requirement.

Course Typically Offered: Fall, Spring, Summer

Credits: 3

COS 125 – Introduction to Problem Solving Using Computer Programming


Students are introduced to programming as a tool for problem solving. Basic programming practices, data structures and the analysis of algorithms are introduced. A language such as Scheme, ML or Python will be used. Required for majors.

General Education Requirements: Satisfies the General Education Mathematics Requirement.

Course Typically Offered: Fall

Credits: 3

COS 140 – Foundations of Computer Science


Introduces students to the discipline of computer science. Several core areas of computer science (e.g., digital logic, computer organization and architecture, programming languages, operating systems, computer networks, artificial intelligence, and professional ethics) are covered. In each area, particular solutions to fundamental problems in the area are studied in depth. No programming is taught in the course.

Course Typically Offered: Fall

Credits: 3

COS 198 – Topics in Computer Science


Introductory topics in computer science not regularly covered in other courses. Content varies to suit current needs. May be repeated for credit.

Prerequisites: permission.

Course Typically Offered: Fall, Spring, Summer

Credits: 1-3

COS 211 – Principles of Data Processing


Presents basic concepts in database management systems using a microcomputer database system and basic theory of database design. Students will construct systems in various application area. Credit does not count toward the computer science major.

Course Typically Offered: Fall & Spring

Credits: 3

COS 213 – Advanced Excel Spreadsheet Design


This course explores techniques in spreadsheet software as used to develop business-related applications.  Topics include formulas and functions, charting, data operations, pivot tables, goal seeking, what-if analysis, management of large workbooks, and macros.  The programming language VBA (Visual Basic for Applications) is introduced.

Course Typically Offered: Fall, Spring, Summer

Credits: 3

COS 215 – Introduction to Computing Using FORTRAN


Programming logic and techniques using FORTRAN including introductory hardware concepts. Students are assigned programs from various areas of application. Credit does not count towards the computer science major. NOTE: Degree credit will not be given for both COS 215 and COS 220.

General Education Requirements: Satisfies the General Education Mathematics Requirement.

Course Typically Offered: Spring

Credits: 3

COS 216 – Web Design in JavaScript


This course covers advanced web design using XHTML, cascading style sheets, and client-side programming with JavaScript to create menus, rollovers, form validations, dynamic objects, and other topics.

Prerequisites: COS 115.

Course Typically Offered: Not Regularly Offered

Credits: 3

COS 220 – Introduction to C++ Programming


Topics include programming techniques with a brief introduction to hardware concepts as they apply to software development. Students are assigned programs emphasizing numerical algorithms for implementation in the C++ language. Assumes knowledge of the Windows operating system, basic word processing, and file and folder management. Some prior experience in programming logic, macros, or scripting is recommended.  NOTE:  Degree credit will not be given for both COS 220 and COS 215.

General Education Requirements: Satisfies the General Education Mathematics Requirement.

Course Typically Offered: Fall & Spring

Credits: 3

COS 221 – Data Structures in C++


This course introduces object-oriented programming techniques and data structures in C++.  Topics include class design, dynamic memory management, lists, stacks, queues, trees. STL, algorithm efficiency, searching and sorting algorithms.

Prerequisites: COS 220 or ECE 177.

Course Typically Offered: Fall

Credits: 3

COS 225 – Introduction to Object-Oriented Programming and Design


Introduces the student to the fundamental principles of object-oriented design and programming using a high-level object-oriented language. Focuses on the specification, design, and implementation of classes and the interactions between classes. Covers more advanced object-oriented concepts such as inheritance, abstract classes, and polymorphism.

General Education Requirements: Satisfies the General Education Mathematics Requirement.

Prerequisites: COS 125.

Course Typically Offered: Spring

Credits: 4

COS 226 – Introduction to Data Structures


Introduces the student to the fundamental principles of data structure usage, specification, and implementation using a high-level, object-oriented language. Driven by the use of object-oriented techniques for program specification and modeling. Focuses on how data structure implementation choices affect and are affected by application needs.

General Education Requirements: Satisfies the General Education Mathematics Requirement.

Prerequisites: COS 225.

Course Typically Offered: Fall

Credits: 3

COS 250 – Discrete Structures


Introduction to discrete structures used in various areas of computer science. Topics include logic, sets, relations, functions, cardinality, enumeration, and computability.

Prerequisites: COS 225, MAT 126.

Course Typically Offered: Fall

Credits: 3

COS 298 – Topics in Computer Science


Introductory topics in computer science not regularly covered in other courses. Content varies to suit current needs. May be repeated for credit.

Prerequisites: Permission.

Course Typically Offered: Variable

Credits: 1-3

COS 301 – Programming Languages


Formal description of programming languages including specification of syntax and semantics. Discussion of infix, prefix, and postfix notation with translation techniques. Topics include branching, grouping of statements, storage allocation, list and string processing, relation of language design to efficiency.

General Education Requirements: Satisfies the General Education Writing Intensive Requirement.

Prerequisites: COS 226 and COS 250.

Course Typically Offered: Fall

Credits: 3

COS 312 – An Introduction to Video Game Programming with the Unity Game Engine


A high-level approach to game programming uses one of the game engines commonly employed by game-development companies. Among these is Unity, a game engine that can create standalone video games for PCs and Macs, as well as versions playable in a web-page environment. Built-in tools include character controllers, cameras, lights, shaders, a powerful physics engine, terrain editors, tree generators, and more. Many of these are scripts written in Javascript, C#, or Boo. While many of the exercises stress the scripting aspects of working with Unity, a student who is a beginning programmer can create significant game content using only the pre-packages assets that are a standard part of the Unity system.

Prerequisites: COS 125

Credits: 3

 COS 335 – Computer Organization and Architecture


Examines the architecture and organization of the computer including digital logic, the CPU, busses, internal and external memory, computer number representation and arithmetic, computer instructions and some advanced topics (e.g., RISC machines). Particular attention is paid to assembly language as a mechanism for better understanding the architecture, and students will be expected to write significant programs in assembly language.

Prerequisites: COS 140 and COS 226.

Course Typically Offered: Spring

Credits: 4

COS 350 – Data Structures and Algorithms


Introduction to abstract data types as a unifying concept in the study of data structures. Topics include lists, queues, multi-linked lists, priority queues, trees, and graphs. The impact of these structures on algorithm design is explored. External memory management is discussed.

Prerequisites: COS 226 and COS 250.

Course Typically Offered: Spring

Credits: 3

COS 397 – Computer Science Capstone 1


The first of a two-course sequence, designed to guide students in proposing the Capstone project in either an independent study, group project, or field experience format.  The focus is on the early stages of project work, including finding a suitable topic and project advisor, investigating related work, and writing a thorough project proposal.  The relevant skills are covered and practiced by studying a collection of classic and topical papers.

General Education Requirements: Upon completion of the two course sequence (COS 397 &COS 497), satisfies the General Education Writing Intensive and Capstone Experience Requirements.

Prerequisites: COS Majors with at least Junior standing and permission.

Course Typically Offered: Fall

Credits: 3

COS 398 – Topics in Computer Science


Topics not regularly covered in other courses. Content varies to suit current needs. May be repeated for credit.

Prerequisites: permission.

Course Typically Offered: Fall & Spring

Credits: 1-3

COS 400 – Introduction to Compiler Construction


Basic concepts of programming language translation, compiler design and construction. Topics include the compilation process, language definition, lexical analysis, syntax analysis, error detection and recovery, grammars, ompiler design issues, symbol-tables, storage allocation, code generation and machine-independent code improvement. Programming projects illustrate various concepts.

Prerequisites: COS 301 and COS 350 or permission.

Course Typically Offered: Not Regularly Offered

Credits: 3

COS 415 – Computer Simulation and Modeling, from Development to Display


The process of designing and using a computer model is examined in detail. The development of the model equations, numerical techniques for solving them, and basic graphical techniques for displaying the results of the calculations will be presented.

Prerequisites: Familiarity with a programming language or permission

Course Typically Offered: Spring

Credits: 3

COS 420 – Introduction to Software Engineering


A broad view of software engineering which introduces a variety of software engineering techniques which can be applied to practical software projects. Topics include process models, human factors, software specification; software design, programming techniques and tools, and validation.

Prerequisites: COS 331 or permission; junior standing.

Course Typically Offered: Spring

Credits: 3

COS 430 – Introduction to Cybersecurity


An overview of Cybersecurity as information security, policies, guidelines, and legal issues; the nature of network and computer attacks, system vulnerabilities and defense; implementation issues in Unix/Linux.  Projects include system setup, attack, and defense.

Prerequisites: COS 335 and COS 331.

Course Typically Offered: Not Regularly Offered

Credits: 3

COS 331 – Operating Systems


Study of the structure of current computer operating systems. Topics include I/O management, memory management, multiprogramming, linking loaders, real and virtual systems, batch and time sharing.

Prerequisites: COS 226, COS 335 or permission.

Course Typically Offered: Fall

Credits: 3

COS 440 – Computer Networks I


Covers data and computer communications using ISO model. Discussion of physical media, communication protocols, and network architectures including wide area and local area networks. Includes examples of networks currently in use.

Prerequisites: COS 331 or permission.

Course Typically Offered: Fall

Credits: 3

COS 451 – Automata, Computability, and Languages


Fundamentals of formal languages and the mathematical theory of computation; finitestate automata, nondeterminism, regular expressions, and Kleene’s Theorem; context-free grammars, pushdown automata, the correspondence theorem and the pumping lemma; computability, Turning machines, and the halting problem.

Prerequisites: COS 250.

Course Typically Offered: Spring

Credits: 3

COS 460 – Interactive Computer Graphics


Topics include graphic I/0 devices: plotter, CRT, and light pen; vector generation; transformation of two/and three-dimensional objects; clipping and windowing; hidden line removal; interrupt handling; interactive techniques; data structures for graphics; and various display algorithms.

Prerequisites: COS 226 or equivalent and MAT 126 and junior standing or permission.

Course Typically Offered: Not Regularly Offered

Credits: 3

COS 470 – Introduction to Artificial Intelligence


Surveys fundamental areas of research in Artificial Intelligence including knowledge representation, vision, planning, logic, learning, expert systems, and natural language comprehension as well as techniques including predicate calculus, backtracking, tree searching, and semantic networks. Also covers LISP, a principal Artificial Intelligence programming language.

Prerequisites: COS 350 or permission.

Course Typically Offered: Fall

Credits: 3

COS 480 – Database Management Systems


Covers database management systems from the perspective of database designers and database application programmers.  Topics include Entity-Relationship modeling, relational databases, transactions and isolation, and Web-database applications.  Includes both individual programming assignments and semester-long group projects culminating in demonstrations of substantial database application.

Prerequisites: COS 350 or permission.

Course Typically Offered: Fall

Credits: 3

COS 490 – Computers, Ethics and Society


Consideration of human and social consequences of technological development and application of computers, ethical questions of computer use, professional ethics.

General Education Requirements: Satisfies the General Education Ethics and Writing Intensive Requirements.

Prerequisites: COS 331, ENG 317.

Course Typically Offered: Fall

Credits: 3

COS 495 – Field Experience


A pre-planned work experience of no less than ten and preferably more weeks in a commercial environment, with faculty supervision. Normally a paid work experience. A presentation open to interested faculty, staff and students might be required at the completion of the project. May be repeated for a maximum of 3 credit hours. (Pass/Fail Grade Only.)

General Education Requirements: Satisfies the General Education Capstone Experience Requirement.

Prerequisites: Normally a student must complete COS 301, COS 420, COS 331 and preferablyCOS 350, with at least a grade of “C” and permission.

Course Typically Offered: Not Regularly Offered

Credits: 1-3

COS 497 – Computer Science Capstone 2


The second of a two-course sequence, designed to guide students in completing the Capstone project in either an independent study, group project, or field experience format.  The focus is on the later stages of project work, including completing the programming tasks, evaluating the implemented systems, documenting all work in a project report, demonstrating the work in action, and making a public oral presentation.  The relevant skills are covered and practiced by studying a collection of classic and topical papers.

General Education Requirements: Upon completion of the two course sequence (COS 397 &COS 497), satisfies the General Education Writing Intensive and Capstone Experience Requirements.

Prerequisites: COS Majors with Senior standing, COS 397, and permission.

Illustrative Capstone Presentations

Course Typically Offered: Spring

Credits: 3

COS 498 – Topics in Computer Science


Topics not regularly covered in other courses. Content varies to suit current needs. May be repeated for credit.

Prerequisites: One semester of programming.

Course Typically Offered: Fall & Spring

Credits: 1-3

COS 499 – Senior Project


An undergraduate research project in computer science under the direction of an approved advisor. An individual or small group will work on the conception, design and implementation of a significant computer science project. A presentation, open to interested faculty, staff and students may be required at the completion of the project.

General Education Requirements: Satisfies the General Education Capstone Experience Requirement.

Prerequisites: permission.

Course Typically Offered: Fall, Spring, Summer

Credits: 3

COS 515 – Topics in Scientific Computation: Simulation and Modeling


The purpose of designing and using a computer model is examined in detail. The development of the model equations, numerical techniques for solving them, and basic graphical techniques for displaying the results of the calculations will be presented.

Prerequisites: Familiarity with a programming language or permission.

Course Typically Offered: Variable

Credits: 3

COS 520 – Software Engineering I


Specification, design, implementation, and maintenance of reliable software. Various methodologies will be explored with Ada as the implementation tool.

Prerequisites: COS 350 and COS 331.

Course Typically Offered: Spring

Credits: 3

COS 550 – Theoretical Computer Science I


A survey of automata theory, formal languages, undecidability and computational complexity.

Prerequisites: COS 250 and COS 301.

Course Typically Offered: Fall

Credits: 3

COS 554 – Algorithms


Important algorithms and their application to solving problems.

Prerequisites: COS 350

Course Typically Offered: Spring

Credits: 3

COS 570 – Topics in Artificial Intelligence


Topics in artificial intelligence not regularly covered in other courses. May be repeated for credit.

Prerequisites: permission.

Course Typically Offered: Fall

Credits: 3

COS 580 – Topics in Database Management Systems


Course taught in database management not regularly covered in other courses. May be repeated for credit.

Course Typically Offered: Fall

Credits: 3

COS 598 – Advanced Topics in Computer Science


Topics in computer science not regularly covered in other courses. May be repeated for credit.

Prerequisites: permission.

Course Typically Offered: Fall, Spring, Summer

Credits: 1-3

COS 599 – Graduate Project


Graduate Project

Course Typically Offered: Fall, Spring, Summer

Credits: Ar

COS 600 – Research Seminar


Topics currently of research interest; emphasis on presentation. May be repeated for credit.

Course Typically Offered: Variable

Credits: 1 – 3.

COS 699 – Graduate Thesis / Research


Graduate Thesis

Course Typically Offered: Fall, Spring, Summer

Credits: Ar