##
**Course Listings **

**COMP- 121Q. Computing in the Arts and Sciences. 4 semester hours. **

Broad introduction to computing designed for the general liberal arts student. Emphasis on problem-solving through spreadsheets, databases, graphics and elementary programming. Operating systems, computer networks, and issues related to computers in society are also addressed. Laboratory required. Prerequisite: Math Placement score of 2 suggested. Every year.

**COMP- 150Q. Computer Programming I. 5 semester hours. **

Introduction to computer science through the use of programming. Designed primarily for the student who expects to take further courses in computer science. Topics include programming in a high-level language, problem-solving, algorithm design, control constructs, data constructs, input output, procedural abstraction and the role of computing in society. Students in COMP 150 are required to sign up for one lab section of COMP 151. Prerequisite: Math Placement score of 2 suggested. Every year.

**COMP- 151. Lab for Computer Programming I. 0 semester hours**.

Students in COMP 150 are required to sign up for one section of COMP 151. Graded on S/NC basis. Every year.

**COMP – 171. Discrete Mathematics. 2 semester hours.**

This course studies mathematical topics useful in computer science including logic, set theory, combinatorics, mathematical induction, recursion, recurrence relations, and graph theory. Prerequisites: Math Placement score of 2 suggested.

**COMP- 250. Computer Programming II. 4 semester hours. **

Continuation of Computer Science 150. Disciplined programming using one or two high-level languages with specific emphasis on program design, style, efficiency and documentation. Includes the theory and application of abstract data types using arrays, lists, stacks, queues, trees and networks. Also provides an overview of computer science. Prerequisite: COMP 150 or equivalent. Writing intensive. Every year.

**COMP- 255. Principles of Computer Organization. 5 semester hours. **

Considers the organization and architecture of the computer from the digital logical level to the conventional machine level to the operating system level. Programming assignments in Assembly language are used to demonstrate and reinforce the various architectural structures and techniques studied. Laboratory required. Prerequisite: COMP 150Q. Every year.

**COMP- 265. Principles of Programming Languages. 4 semester hours. **

This course emphasizes the principles and programming styles associated with the four major language paradigms: imperative, functional, object-oriented and declarative; examination of contemporary programming languages. Topics include syntax and semantics, statement and subprogram control, data types and data control, design and implementation issues. Prerequisite: COMP 250. Every year.

**COMP- 275. Sequential and Parallel Algorithms. 4 semester hours. **

Systematic study of algorithms and of their complexity. A number of symbolic and numeric algorithms from the areas of searching and sorting, string and pattern matching, matrix and vector processing, and graph and tree algorithms are studied. Sequential and parallel algorithms are compared. The issues of intractable problems, P and NP algorithms, and NP completeness are studied. Prerequisite: COMP 250 and 171. Every year.

**COMP- 280. Topics in Computer Science. 1-5 semester hours. **

Study of special topics not included in other departmental offerings. Offered occasionally according to the needs and interests of students and/ or faculty. Possible topics include Analysis of Algorithms, Compiler Theory, Networks, Optimization Techniques, Parallel Processing, and Simulation Methods. Prerequisites vary. This course may be repeated for credit.

**COMP- 285. Theory of Computation. 4 semester hours. **

Covers topics in the theory of computation. Topics include the study of finite state machines, pushdown automata, linearly bounded automata, Turing machines, languages, phase-structure grammars (regular, context-free, context-sensitive, unrestricted), parsing, decidability, computability, computational complexity, and the Chomsky Hierarchy. Prerequisite: COMP 171 and 250. Usually offered in alternate years.

**COMP- 290. Databases and Web-Based Computing. 4 semester hours. **

The primary topic of this course is databases and how they are used in database-driven web sites. We will cover some theoretical aspects of the field, but the primary emphasis will be on practical applications. Topics include design and use of databases through common software, the ER and Relational Data models, PHP, MySQL and development of a web-based database. Assignments will be both theoretical and applied. Prerequisite: COMP 150. Alternate years.

**COMP- 295. Introduction to Networking – 2 semester hours**

The principles and practices of computer networking. Topics include network terminology, topology, local- and wide-area networks, the OSI model, routing, TCP/IP and other protocols, congestion, and quality of service. Prerequisites: COMP 150, and a corequisite of COMP 250.

**COMP- 331. Introduction to Computer Hardware. 4 semester hours. **

This course covers the design of digital electronic circuits including both combinatorial logic and synchronous sequential logic. FPGA based circuit boards programmed using VHDL are used. Prerequisite: COMP 255. Usually offered in alternate years.

**COMP- 350. Artificial Intelligence. 4 semester hours. **

Introduction to the major areas of artificial intelligence and the use of computer language with both symbolic and numeric processing capabilities such as Common Lisp. The AI areas include knowledge representation, language understanding vision, expert systems, neural networks and robotics. Programs to implement techniques associated with these areas are written primarily in this language. Social, ethical and philosophical viewpoints related to AI are addressed. Prerequisite: COMP 250, and either MATH 210Q or COMP 171 or permission of instructor. Usually offered in alternate years.

**COMP- 351. Operating Systems. 4 semester hours. **

Process management, I/O devices, interrupt structures, resource and memory management, and file systems. Students study aspects of several operating systems and work in detail on one. Prerequisite: COMP 255. Writing intensive. Usually offered in alternate years.

**COMP- 353. Software Engineering. 4 semester hours. **

Overview of the discipline of software engineering. The phases of software development – requirements, specification, implementation, testing – are described. Agile and waterfall methodologies are applied to structure the process. Metrics for measuring progress and quality are discussed. Consideration is given to organizational issues, including requirements gathering, team structure, and project scheduling. Prerequisites: COMP 250, Senior standing.

**COMP- 370. Computer Graphics. 4 semester hours. **

Explores computer graphics. Emphasis is on the techniques used and mathematics behind the standard graphics algorithms. Graphics software is developed based on a small number of primitive graphics operations. Co-requisite: COMP 275. Usually offered in alternate years.

**COMP- 380. Topics in Computer Science. 1-5 semester hours. **

(See course description for COMP 280). This course may be repeated for credit.

**COMP- 460. Seminar/Colloquium. 2 semester hours. **

Combined individual and group research presentations involving advanced computer science material. Required of all computer science majors. Writing intensive. Every year. This course may be repeated for credit.

**COMP- 480. Topics in Computer Science. 1-5 semester hours. **

(See course description for COMP 280). This course may be repeated for credit.

**COMP- 490. Independent Study. Variable credit. **

Individual study by the advanced student of a topic beyond the scope of regular courses. Prerequisite: Approval of faculty member directing the study. This course may be repeated for credit.