Courses
The department offers a spectrum of courses, from introductory courses for majors as well as nonmajors 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.
A graph depicting course prerequisites appears in the reference section.
COS 100 Introduction to Personal Computers: Topics include: introduction to the IBM-compatible, microcomputer hardware and operating systems, introduction to communications and the Internet, introduction to spreadsheets, and presentation software. Does not meet Bachelor of Arts Core Distribution Area III requirement. Credit does not count towards the computer science major. Cr. 3.
COS 101 Introduction to PC Hardware and Windows: Topics include types, care and maintenance of equipment, types of programs, and use of the windows operating system. This course is equivalent to the first 5 weeks of COS 100. Cr. 1.
COS 102 Introduction to the Internet and the WWW: Topics include organization of the Internet, use of WWW browsers and the Internet tools and development of web pages. This course is equivalent to the second 5 weeks of COS 100. Cr. 1.
COS 103 Introduction to Spreadsheets: Topics include design and use of spreadsheets to solve problems using formulas, charts and data functions. This course is equivalent to the third 5 weeks of COS 100. Cr. 1.
COS 104 Introduction to Presentation Software: Use of presentation software. The integration of text, graphics, and multi-media components to enhance presentations. This course is offered in a 5-week module. Does not meet Bachelor of Arts Core Distribution Area III requirement. Credit does not count towards the computer science major. Prerequisite: COS 101 or equivalent knowledge. Cr. 1.
COS 110 Introduction to Personal Computers Using the Macintosh: Investigates the friendly interface of the Apple Macintosh personal computer. A number of software systems will be explored including spreadsheets in Excel, word processing in MSWORD, Superpaint and MacDraw for graphical operations and authoring in hypercard. Considerable overlap in content with COS 100. Cr. 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. Cr. 3.
COS 120 Introduction to Programming: The development of programming skills in the novice. Description and use of those features of programming languages common to a wide range of popular languages through instruction in one or two specific languages. This includes basic description and use of computer hardware. A laboratory session may be included. Credit does not count toward the computer science major. Prerequisite: COS 100 or equivalent. Cr. 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 in the course. This is the introductory programming course required for majors. Prerequisites: None. Cr. 3. Course Web site.
COS 140 Foundations of Computer Science: This course 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. Prerequisite: None. Cr. 3. Course Web site.
COS 198 Topics in Computer Science: Topics not regularly covered in other courses. Content is not fixed, but can be varied to suit current needs. May be taken more than once. Prerequisite: permission. Cr. 1-3. COS 201 Introduction to Programming II. Continuation of COS 120 with development of programming skills in arrays, classes, algorithms, and user interfaces. Other topics include integration with databases, spreadsheets and the Internet. Prerequisite: COS 120. Cr. 3.
COS 203 Programming in COBOL: A brisk introduction to the COBOL language for those with programming experience in another language. Prerequisite: COS 220 or equiv. Cr 1.
COS 204 Programming in FORTRAN: A brisk introduction to the FORTRAN language for those with programming experience in another language. Prerequisite: COS 220 or equiv. Cr 1.
COS 211 Principles of Data Processing: Basic concepts in data processing are presented using a microcomputer database system and a mainframe statistical analysis system. A service course. Students are assigned programs from various areas of application and these programs are run using facilities at the University. Credit does not count towards the major. Cr. 3.
COS 215 Introduction to Computing Using FORTRAN: Programming logic and techniques using FORTRAN. Introduction hardware concepts are covered as needed. A service course. Students are assigned programs from various areas of application and these programs are run on the University's computers. Credit does not count towards the major. Degree credit will not be given for both COS 215 and COS 220 . Cr. 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, and dynamic objects, and other topics. Prerequisite: COS 115. Cr. 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 a higher level language. This course 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. Satisfies the General Education Mathematics Requirement. Cr. 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, and searching and sorting algorithems. Prerequisite: COS 220 or ECE 177. Cr. 3.
COS 225 Introduction to Object-Oriented Programming and Design: This course introduces the student to the fundamental principles of object-oriented design and programming using a high-level object-oriented language. The course will focus on the specification, design, and implementation of classes and the interactions between classes. It will also cover more advanced object-oriented concepts such as inheritance, abstract classes, and polymorphism. Satisfies the General Education Mathematics Requirement. Prerequisites: COS 125. Cr. 4.
COS 226 Introduction to Data Structures: This course introduces the student to the fundamental principles of data structure usage, specification, and implementation using a high-level, object-oriented language. This course will be driven by the use of object-oriented techniques for program specification and modeling. It will focus on how data structure implementation choices affect and are affected by application needs. Satisfies the General Education Mathematics Requirement. Prerequisites: COS 225. Cr. 3. Course Web site.
COS 230 Computer Architecture and Assembly Language: Introduction to concepts of modern computers, instruction formats, addressing techniques. Input-output processes and interrupt handling. Programming aspects include assembler program segmentation and linkage. A specific assembler used to illustrate various topics. Prerequisite: COS 220 or equivalent. Cr. 3.
COS 231 Introduction to UNIX: An introduction to the UNIX operating system from the user's point of view. Covers the basic structure of UNIX, basic commands, file system, editing, utilities, shell programming, programming environment and customization. Prerequisite: Knowledge of a high level language or permission. Cr. 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. The topics will be presented in a framework useful for further study in computer science. Prerequisites: COS 225, MAT 126 . Cr. 3. Course Web site.
COS 298 Topics in Computer Science: Topics not regularly covered in other courses. Content is not fixed, but can be varied to suit current needs. May be taken more than once. Prerequisite: permission. Cr. 3.
(WI) 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, and relation of language design on efficiency. Prerequisite: COS 226 and 250 . Cr. 3. Course Web site.
COS 335 Computer Organization and Architecture: This course examines the architecture and organization of the computer including digital logic, the CPU, buses, 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 . Cr. 4. Course Web site.
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. Prerequisite: COS 250 and COS 226 or equivalent. Cr. 3.
(C,WI) COS 397 Computer Science Capstone 1: This course is the first of a three-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 recent papers. The papers and topics studied vary by semester, partly based on discussions in the first few class meetings. An important aspect of this course is the integration of knowledge and skills acquired in separate courses in the rest of the curriculum.
COS 398 Topics in Computer Science: Topics not regularly covered in other courses. Content is not fixed, but can be varied to suit current needs. May be taken more than once. Prerequisite: permission. Cr. 3.
COS 400 Introduction to Compiler Construction: This covers the basic concepts of programming language translation, compiler design and construction. Topics include the compilation process; language definition; lexical analysis; syntax analysis and error detection and error recovery; grammars; compiler design issues; symbol tables; storage allocation, code generation and machine-independent code improvement. Programming projects to illustrate the various concepts are used. Prerequisite: COS 301 and 350 or permission. Cr. 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. Prerequisite: Familiarity with a programming language and/or permission. Cr. 3.
COS 416 Parallel Programming: Introduce the students to a realistic programming environment where they can experience the differences and difficulties of programming in a multi-processor or multi-computer architecture. Prerequisite: permission. Cr. 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. Prerequisite: Junior standing and COS 431 or permission. Cr. 3.
COS 430: Introduction to Cybersecurity: This course provides a broad view of cybersecurity and information security. A key component is extensive hands-on experience and in-class cyberwars. Prerequisites: COS 230, COS 431 and one semester of programming. Cr. 3. Course Web site.
COS 431 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. Cr. 3. Course Web site.
COS 440 Computer Networks: This course covers data and computer communications using the ISO model as a basis of presentation. Discussion of physical media, communication protocols, and network architectures including wide area and local area networks. Examples of networks currently in use are included. Prerequisite: COS 431 or permission. Cr. 3.
COS 441 Computer Networks II: A continuation of COS 440, Computer Networks. This course is an in depth study of computer network protocols and certain network applications. Concentration is on network to application layers of the OSI model. Presently specific emphasis is on the Internet Protocol TCP/IP with examples from Appletalk and Novell protocols. Prerequisite: COS 440 or permission. Cr. 3.
COS 451 Automata, Computability, and Languages: Fundamentals of formal languages and the mathematical theory of computation. Finite-state automata, nondeterminism, regular expressions, and Kleeneās Theorem. Context-free grammars, pushdown automata, correspondence theorem and the pumping lemma. Computability, Turing machine, and the halting problem. Prerequisite: COS250. Cr. 3. Course Web site.
COS 460 Interactive Computer Graphics: Topics include the OpenGL and GLUT APIs, 2D and 3D images with emphasis on understanding the mathematical implementation of various different projections (classical, parallel, and perspective), interactive user interfaces such as the virtual trackball, and the physics behind the Phong Lighting Model used with shaded rendering. Advanced topics may include texture mapping, programmable shaders, or efficient representations of curves and surfaces. Prerequisites: COS 225 or equivalent; MAT 126 and junior standing. Cr. 3.
COS 461 Advanced Computer Graphics: This course builds on COS 460 Interactive Computer Graphics, and continues with advanced topics. Topics include three-dimensional transformations, hidden line and surface algorithms, color and raster graphics. Prerequisites: COS 460 and MAT 126. Cr. 3.
COS 470/570 Introduction to Artificial Intelligence: Artificial intelligence (AI) is the part of computer science concerned with giving computer programs abilities similar to those human abilities that require intelligence and with giving them abilities, such as understanding natural language, that are easy for humans, but very difficult for computers. This course will cover the fundamental concepts, areas, and techniques underlying all of AI, including the notion of agency, heuristic search, game-playing, logic and other approaches to knowledge representation, theorem proving, automated planning, and uncertainty management. It will also introduce such advanced topics as machine learning, natural language processing, and multiagent systems. Prerequisite: COS 350 or permission. Cr. 3. Course Web site.
COS 480/580 Database Management Systems: This course 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. The course includes both individual programming assignments and semester-long group projects culminating in demonstrations of substantial database applications. Prerequisite: COS 350 or permission. Cr. 3. Course Web site.
(WI) COS 490 Computers, Ethics, and Society: Consideration of the human and social consequences of the technological development and application of computers as viewed from the standpoints of the computer customer, the computer specialist, and the public. Prerequisite: COS 431 and ENG 317. Cr. 3. Course Web site.
(C) 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. This is normally a paid work experience. A written report and oral presentation are required at the completion of the project. Prerequisite: A student normally must complete COS 301, COS 420, COS 431, and preferably COS 350, with at least a grade of C in each of these courses, and permission. (Pass/Fail Grade Only.) May be repeated for a maximum of 3 credit hours.
(C,WI) COS 497 Computer Science Capstone 2: This course is the third of a three-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.
COS 498 Topics in Computer Science: Topics not regularly covered in other courses. Content is not fixed, but can be varied to suit current needs. May be taken more than once. Prerequisite: permission. Cr. 3. Course Web site.
(C) 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 might be required at the completion of the project. Prerequisite: permission. Cr. 3.
COS 515 Topics in Scientific Computing: 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. Prerequisite: Familiarity with a programming language and/or permission. Cr. 3.
COS 516 Topics in Scientific Computing: Parallel Programming. Introduce the students to a realistic programming environment where they can experience the differences and difficulties of programming in multi-processor or multi-computer architecture. Prerequisite: permission. Cr. 3.
COS 520 Software Engineering I: Provides the knowledge and tools necessary for the specification, design, implementation, and maintenance of reliable non-trivial software. Various specification and design methodologies are explored with Ada as the implementation tool. Students are assigned problems in both an individual and group setting. Prerequisites: COS 350 and COS 431. Cr. 3. Course Web site.
COS 521 Topics in Software Engineering: May be repeated. Prerequisite: permission.
COS 550 Theoretical Computer Science I: A survey of automata theory, formal languages, undecidability and computational complexity. Prerequisites: COS 301 and COS 250.
COS 554 Algorithms: This course surveys the classes of important algorithms and how they may be adapted to solving specific problems. Students will be expected to program some of the algorithms discussed in class. Prerequisite: COS 350. Course Web site.
COS 570 Topics in Artificial Intelligence: May be repeated. Prerequisite: permission.
COS 598 Advanced Topics in Computer Science: Topics in computer science not regularly covered in other courses. May be repeated for credit. Prerequisite: permission.
Advanced Topics in Database Management: Course Web site.
COS 599 Graduate Project: Cr. Ar.
COS 600 Research Seminar: Cr. 1
COS 699 Graduate Thesis: Cr. Ar.
Key:
(C): Satisfies the General Education Capstone Experience requirement.
(WI): Satisfies the General Education Writing Intensive in the major requirement.