School of Humanities and Sciences

Computer Science Courses

COMP 10500 - Introduction to Website Development LA NS

Introduction to the Internet, web browsers, and using the Internet as a research resource. Students study web page design techniques and concepts and use these to develop web pages with basic HTML and more advanced features such as tables, frames, forms, and style sheets. The basics of storing and displaying graphics, including file formats for graphics files, creating images for the web, and optimizing colors and size for display on browsers. The use of scripting languages such as JavaScript is introduced. Prior experience using Microsoft Windows or the Mac OS is expected. Students who have completed or are taking COMP 20500 may not receive credit for this course. Students may not receive credit for both this course and MGMT 26000. 3 credits. (F-S,Y)

COMP 10600 - Flash for Animation and Games LA NS

This course is an introduction to the use of Macromedia Flash for creating animations and interactive games. The course will focus on using the Flash animation and multimedia tools to create interactive multimedia applications for use on the computer and the web. The course will also address the Flash scripting language, which can be used to create even more elaborate content. The course is a combination of lecture and lab, along with exams and projects. 3 credits. (F-S,Y)

COMP 11000 - Computers and Information Technologies 2B LA NS

Develops student expertise in the use of a computer and the major software tools used for personal and professional productivity, with an emphasis placed on spreadsheets and database management systems. Includes an introduction to the components of a computer system and to social and ethical issues surrounding the use of a computer. Students may receive credit for only one of the following courses: COMP 11000, PHED 13900, TRLS 13900, HLTH 13900, EXSS 13900. Students who have already taken COMP 20100 cannot receive credit for this course. 3 credits. (F-S,Y)

COMP 11500 - Discrete Structures for Computer Science 2B LA NS

An introduction to discrete structures for computer science. The major topics of study include sets, proof techniques, logic, predicate logic, relations and functions, counting and probability, matrices, and induction. Prerequisites: Group 2 or 1 on the math placement exam. 4 credits. (F-S,Y)

COMP 12100 - 3D Animation Programming 2B LA NS

An introduction to programming using visualization and 3D animation. We will create animations using Alice, a software package using 3D models and program visualization. The
animations will be in the style of Pixar and Disney animated films. The focus of the course includes the use of storyboards for design, fundamental programming concepts (sequence, variables, conditional execution, repetition), and object-oriented concepts (classes, objects, methods, parameters, and inheritance). The emphasis is hands-on labs along with presentations and demonstrations. This course is designed for students who have little or no previous programming experience. The course may not be taken for credit after COMP 22000 or COMP 22500. 3 credits. (F,Y)

COMP 12200 - Introduction to Robotics Using Legos 2B LA NS

This course introduces students to robotics and programming using Legos. Students will build various type of robotic objects incorporating output devices such as motors and lights as well as sensor input devices such as touch sensors, light sensors, sonar sensors, and rotation sensors. The emphasis is on hands-on labs. Programs to control and robots will be developed using an object-oriented language such as Java or C++ and cover the basic object-oriented concepts. Engineering concepts involving the use of gears will be briefly explored. The emphasis is hands-on labs along with presentations and demonstrations. This course is designed for students who have little or no previous programming experience. The course may not be taken for credit after COMP 22000 or COMP 22500. 3 credits. (F,Y)

COMP 17100 - Principles of Computing Science I 2B LA NS

A disciplined introduction to problem-solving methods and program development. Topics include standard control structures, basic data structures, algorithms and abstraction mechanisms, testing, and an introduction to algorithm analysis. 4 credits. (F-S,Y)

COMP 17900 - Topics: Computer Languages LA

The syntax, data structures, and distinctive features of a specific programming language chosen from those not given detailed coverage in any regularly offered computer science course. Programming assignments develop students' skills in the language and illustrate typical applications. Possible languages include C++, LISP, and PROLOG. Prerequisites: COMP 17100. Restricted to students who have not already taken a course treating in detail the language offered by this course. May be repeated for credit with different languages. 1 credit. (IRR)

COMP 18000 - Java Programming LA

The study of the syntax, data structures, and distinctive features of the Java programming language. Programming assignments develop students' skills in Java and illustrate typical Java applications. Prerequisites: COMP 17100. 1 credit. (IRR)

COMP 18200 - COBOL Programming LA

The syntax, data structures, and distinctive features of the COBOL programming language. Programming assignments develop students' skills in COBOL and illustrate typical COBOL applications. Prerequisites: COMP17100. 1 credit. (IRR)

COMP 18300 - C++ Language Programming LA

The syntax, data structures, and distinctive features of the C++ programming language. Programming assignments develop students' skill in C++ and illustrate typical C++ applications. Prerequisites: COMP17100. 1 credit. (IRR)

COMP 19000 - Selected Topics in Computer Science LA NS

Topics to be determined by the instructor and the Departments of Mathematics and Computer Science. May be repeated for credit for selected topics on different subjects. Prerequisites: As appropriate to topics. 1-4 credits. (IRR)

COMP 19200 - Independent Study in Computer Science LA

Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. 1-4 credits. (IRR)

COMP 20100 - Technology for the Middle/Secondary School Teacher LA NS

Introduction to the concepts and skills necessary for applying information technology in educational settings. Topics include basic computer/technology operations and concepts such as terminology, access and manipulation of data, installation and use of software, basic troubleshooting, use of a variety of peripheral devices, and social and ethical issues. Pedagogical studies of technologies. Projects require integrating application software problem-solving skills, concepts, and technical skills and relating them to some aspect of the teaching profession. Students who have completed COMP 11000 should consult with the mathematics and computer science departments and the coordinator of teacher education before enrolling in this course. Prerequisites: One course with a field experience component from the humanities and sciences teaching option program (may be taken concurrently). 2 credits. (F-S,Y)

COMP 20500 - Advanced Web Programming LA NS

Introduction to the creation of interactive and dynamic web pages. Students study the technologies and concepts necessary to add interactive scripts to web pages (client-side programming), receive and supply information to web pages (server-side programming using scripting), and store information (database creation). Prerequisites: COMP 17100, or COMP 10500 and COMP 10600. 4 credits. (S,Y)

COMP 21000 - Introduction to Computer Organization and Systems LA NS

Computer structure and organization. Investigation of operating systems, including processes, memory management, and file systems. Prerequisites: COMP 22000 or COMP 22500. 4 credits. (S,Y)

COMP 22000 - Introduction to Data Structures LA NS

This course covers basic data structures, including stacks, queues, trees, and graphs. Fundamental algorithmic techniques, such as sorting and searching, are also covered. Prerequisites: COMP 17100; COMP 11500 or MATH 11100 (may be taken concurrently). 4 credits. (S, Y)

COMP 22500 - HCI: User Interface Design and Development LA NS

This course presents the fundamental concepts of design, prototyping, evaluation, and implementation of user interfaces (UIs), which are part of the field of HCI (human-computer interaction). Topics of study include user-centered design, task analysis, prototyping, interface design principles, user testing, interface metaphors, windows and event-driven programming, and heuristic evaluation. Principles of human perception and cognition are applied to user interface design. Web interface designs and three-dimensional user interfaces are also studied. Prerequisites: COMP 17100; COMP 18000; COMP 20500 or COMP 22000. 4 credits. (F,Y)

COMP 23400 - Ethical Issues in the Computing Field 1 LA NS

The seminar acquaints students with many of the ethical issues faced by professionals in the computing field. Students are required to formulate and support positions on these issues, both orally and in writing. Readings explore differing opinions and issues of controversy among computer professionals. Prerequisites: COMP 17100. 3 credits. (S,Y)

COMP 24500 - Introduction to Software Engineering LA NS

An introduction to the software development process, focusing on analysis, design, programming, and testing of a medium-scale team project. Object-oriented software engineering practices are discussed, with an emphasis on the unified process, use case-based design and the unified modeling language (UML). Testing, risk analysis, and design patterns are also addressed. Prerequisites: COMP 18000; COMP 17100; and COMP 22000 or COMP 22500. 4 credits. (F,Y)

COMP 28400 - Assembly Language Programming NLA

Introduction to the syntax and distinctive features of an assembly language. Includes a discussion of addressing modes and methods of passing parameters to procedures. Programming assignments develop the student's skills in using an assembly language and illustrate the utility of lower-level programming. Prerequisites: COMP17400. 1 credit. (S,Y)

COMP 29000 - Selected Topics in Computer Science LA NS

Topics to be determined by the instructor and the Departments of Mathematics and Computer Science. May be repeated for credit for selected topics on different subjects. Prerequisites: As appropriate to topics. 1-4 credits. (IRR)

COMP 29200 - Independent Study in Computer Science LA

Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. 1-4 credits. (IRR)

COMP 31000 - Implementation of Computer Operating Systems LA NS

In-depth investigation of the major concepts, algorithms, and implementation principles of computer operating systems. Both theoretical and practical aspects of operating systems are considered; students undertake substantial programming projects to illustrate concepts. Topics include scheduling; resource and storage allocation; problems of resolving deadlock, exclusion, and synchronization; memory allocation; secondary storage implementation; and distributed system structures. Prerequisites: COMP 21000. 4 credits. (S,O)

COMP 31100 - Algorithms and Data Structures LA NS

Analysis of major algorithms and data structures for primary memory. Data structures include graphs, dynamic hash tables, and balanced tree structures. Other major topics are algorithm design techniques (greedy method, divide/decrease and conquer, recursion and dynamic programming, branch and bound, and approximation algorithms). Prerequisites: COMP 22000 and COMP 11500. 4 credits. (F,Y)

COMP 31500 - Computer Graphics LA NS

An introduction to the fundamentals of computer graphics, two-dimensional and three-dimensional algorithms for geometry, transformations, and viewing and lighting. The emphasis is on real-time, event-driven graphics techniques. Programming projects provide hands-on experience in the topics covered. Prerequisites: COMP 22000; COMP 11500 or MATH 26000. 4 credits. (F,O)

COMP 32100 - Programming Languages LA NS

An intermediate-level course in programming language constructs, including design issues, paradigms and corresponding machine models, language constructs, syntax, and semantics. Includes a survey of actual programming languages representative of common paradigms, critically comparing the design choices and features unique to each. Algorithmic, functional, and logical languages are considered. Prerequisites: COMP 21000. 4 credits. (S,Y)

COMP 34400 - Computer Architecture NLA

Investigates the design and organization of computer hardware. Reviews computer organization issues; provides an overview of data representation, addressing modes, subroutine calling mechanisms, and a thorough introduction to digital logic; examines in detail the major components of a computer (including arithmetic logic units, control units, and memory). Prerequisites: COMP 21000. 4 credits. (S,E)

COMP 36500 - Computer Networks LA NS

Basic concepts of computer networks and data communications. The major topics include transmission media, error detection, routing, client-server models, remote execution, and encryption. Includes a discussion of characteristics of local and wide area networks, heterogeneous networks, and case studies of current networks. This course contains a laboratory component that includes topics such as network configuration, topologies and protocols, and installation of networks. Prerequisites: COMP 21000. 4 credits. (F,Y)

COMP 37000 - Computer Project NLA

After consultation with the computer science faculty, the student undertakes a project to design and implement a substantial computer application under the guidance of one or more faculty members. Prerequisites: Junior standing; permission of the computer science faculty. 1-3 credits. (F-S,Y)

COMP 37500 - Database Systems LA NS

Study of the basic concepts involved in database systems, including database architecture, data models, database design, and query techniques. The course includes practical experience through a semester-long team project to design and implement a database and related applications using SQL. Prerequisites: COMP 17100; COMP 22000 or COMP 22500. 4 credits. (S,Y)

COMP 39000 - Selected Topics in Computer Science LA NS

Topics to be determined by the instructor and the Departments of Mathematics and Computer Science. May be repeated for credit for selected topics on different subjects. Prerequisites: As appropriate to topics. 1-4 credits. (IRR)

COMP 39200 - Independent Study in Computer Science LA

Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. 1-4 credits. (IRR)

COMP 41100 - Formal Languages and Automata LA NS

Introduction to theoretical computing science, examining (with some mathematical rigor) the basic models of computation and exploring the capabilities and limitations for computers. Finite automata, regular languages, regular grammars, undecidability, and other structural properties are examined. Prerequisites: COMP 31100. 4 credits. (F,E)

COMP 42000 - Compiler Theory LA NS

Study of the principles and techniques of compiler construction. Topics include lexical analysis, parsing, semantic analysis and intermediate code generation, run-time environments, code generation, code optimization, and error recovery. Prerequisites: COMP 32100. 4 credits. (F,O)

COMP 43000 - Virtual Reality LA NS

This course introduces the fundamental concepts of virtual reality (VR), with an emphasis on the interdisciplinary nature of VR system development and applications. Topics include survey and analysis of VR hardware, software, and methodologies; advanced topics in computer graphics; interaction and navigation within VR; simulation and behaviors in virtual worlds; human perception; and applications of VR. The course includes hands-on experience programming a VR project utilizing the department's VR laboratory. Prerequisites: COMP 31500. 4 credits. (S,E)

COMP 46100 - Systems Analysis and Design LA NS

Study of the analysis and design of business-oriented systems. The major topics include data flow analysis, the systems development life-cycle approach, qualities of good system design, and design strategies. This course also introduces students to structured analysis and design techniques. Prerequisites: COMP 37500. 4 credits. (F,Y)

COMP 47000 - Computer Project NLA

After consultation with the computer science faculty, a project is undertaken to design and implement a substantial computer application under the guidance of one or more faculty members. Prerequisites: Senior standing; permission of the computer science faculty. 1-3 credits. (F-S,Y)

COMP 47500 - Senior Project LA NS

Offers students the opportunity to consolidate theory and apply concepts to a computer-based problem, thus enhancing their understanding of various facets of the computing discipline. Students are responsible for the analysis, design, development, documentation, implementation, and testing of the computer system. The project may be carried out singly or in small groups of up to four people. Prerequisites: Senior standing; permission of instructor. 3 credits. (F-S,Y)

COMP 49000 - Selected Topics in Computer Science LA NS

Topics to be determined by the instructor and the Departments of Mathematics and Computer Science. May be repeated for credit for selected topics on different subjects. Prerequisites: As appropriate to topics. 1-4 credits. (IRR)

COMP 49200 - Independent Study in Computer Science LA

Enrichment and extension of the regular curriculum to areas not covered in existing courses. Arranged individually between student and faculty sponsor according to guidelines available from the department. 1-4 credits. (IRR)

COMP 49300 - Honors Course: Computer Science LA NS
COMP 49400 - Honors Course: Computer Science LA NS

Preparation of honors thesis in partial fulfillment of requirement for graduation with honors in computer science. Prerequisites: Honors standing in computer science. 1-2 credits. (IRR)