Department of Computer Science

Computer Science Courses

COMP 10100 - Technology for the Middle/High 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 computer science department and the coordinator of teacher education before enrolling in this course. Open only to students in teacher education programs. 2 credits. (F-S,Y)

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. 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 10700 - Introduction to 2D Game Development 2B LA NS

An introduction to the design, development, and implementation of two-dimensional (2-D) games. Topics to be covered will include principles of designing games and the computational methods and tools used to create game content. Some programming will be introduced, but no prior computing experience is needed. Students will also learn the basic principles of project management and teamwork. Concepts will be put into practice as teams design and develop their own 2-D game. The course will be a combination of lectures and hands-on exercises. 4 credits. (F,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, HLTH 13901, 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 17200 - Principles of Computer Science II LA NS

The focus of this course is to reinforce and strengthen the foundational concepts learned in Computer Science I and to provide additional experience with problem solving and algorithmic thinking independent of the programming language used. This course will provide the requisite skills needed by majors and minors to successfully progress in Computer Science. Robotics will be used as the context for strengthening skills in design, programming and testing of software. Students will explore new concepts such as real-time control, sensors, and basic automated reasoning. The course will be a combination of lectures, in-class exercises, and labs, with a strong hands-on approach. Prerequisites: COMP 17100. 4 credits. (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. (F-S,Y)

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
COMP 19001 - Selected Topics in Computer Science LA NS
COMP 19002 - Selected Topics in Computer Science LA NS
COMP 19003 - Selected Topics in Computer Science LA NS
COMP 19004 - Selected Topics in Computer Science LA NS
COMP 19005 - 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. 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 20200 - Computational Foundation of Emerging Media LA NS

Introduction to the concepts, tools, and computational methods underlying the most popular forms of emerging media. Topics include existing software tools for design, development, and
analysis of emerging media and the computational methods and concepts underpinning both the tools and the media itself. Hands-on exercises in programming, scripting, and using a variety of software packages. Prerequisites: COMP 17100. 4 credits. (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. 4 credits. (F,Y)

COMP 20700 - Game Development and Technologies LA NS

This course covers the methods and technologies used to implement and test video games. Students will continue the design process begun in Game Design and Development, with an emphasis on the software design and development, prototyping, and testing phases. Additionally, the course will introduce students to the various technologies (graphics, artificial intelligence, game physics, audio, and networking) and software tools used by game developers. This course may not be counted toward a computer science major. Prerequisites: COMP 10700 or COMP 17100. 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 17200. 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 17200; COMP 11500 or MATH 11100 (may be taken concurrently). 4 credits. (F,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 17200. 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. (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
COMP 29001 - Selected Topics in Computer Science LA NS
COMP 29002 - Selected Topics in Computer Science LA NS
COMP 29003 - Selected Topics in Computer Science LA NS
COMP 29004 - Selected Topics in Computer Science LA NS
COMP 29005 - 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: Sophomore standing. 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. (S,Y)

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 and COMP 22000. 4 credits. (F,Y)

COMP 33000 - Introduction to 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 with VR hardware and software. Prerequisites: COMP 20700 or COMP 22000. 4 credits. (F,O)

COMP 34500 - 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 22000. 4 credits. (S,Y)

COMP 35400 - Intelligent Systems LA NS

Explores key concepts of intelligent systems, including knowledge-based search techniques; automatic deduction, knowledge representation using predicate logic, and machine learning. Selected applications of artificial intelligence, such as problem solving, data mining, game playing, expert systems, planning, natural language understanding, and computer vision. Requires implementation of a significant intelligent software system. Prerequisites: COMP 22000. 4 credits. (S-O)

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 11500 and 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 20500 or COMP 22000 or COMP 22500. 4 credits. (S,Y)

COMP 38500 - Emerging Media Project NLA

Hands-on introduction to project design, development, implementation, and testing, with emphasis on the knowledge and skills required to successfully complete the production cycle, including team dynamics, market analysis, project management, documentation, and testing. Students work in teams on projects assigned by the instructor. Cross-listed with TVR 38500; students cannot receive credit for both COMP 38500 and TVR 38500. Open only to emerging media majors. Prerequisites: COMP 20200; junior standing. 4 credits. (S, Y)

COMP 39000 - Selected Topics in Computer Science LA NS
COMP 39001 - Selected Topics in Computer Science LA NS
COMP 39002 - Selected Topics in Computer Science LA NS
COMP 39003 - Selected Topics in Computer Science LA NS
COMP 39004 - Selected Topics in Computer Science LA NS
COMP 39005 - 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: Junior standing. 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. (IRR)

COMP 41500 - Computer Graphics LA NS

An introduction to the fundamentals of computer graphics, including the mathematical foundations of graphics techniques; 2D and 3D algorithms for geometry, transformations, viewing, and lighting; stereo viewing, ray tracing, and radiosity. At least two different graphics APIs will be introduced and will be used to implement graphics programs and provide hands-on experience in the topics covered. Prerequisite: COMP 31100. 4 credits. (S, E)

COMP 45400 - Intelligent Systems LA NS

This course explores key concepts of intelligent systems, including knowledge-based search techniques, automatic deduction, knowledge representation using predicate logic, machine learning, and probabilistic reasoning. Selected applications of artificial intelligence, such as problem solving, data mining, game playing, expert systems, planning, natural language understanding, and computer vision, will be explored. Implementation of a significant intelligent software system will be required. Prerequisites: COMP 31100. 4 credits. (S-O)

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 46500 - Topics in Networks LA NS

This course investigates contemporary advanced algorithmic and networking concepts. Topics change depending on the semester but include the structure and function of networks, security in networks, and network simulations. The course exposes students to computing research and requires at least one significant programming project. Prerequisites: COMP 31100 and COMP 36500. 4 credits. (F,E)

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 48500 - Emerging Media Capstone NLA

Working as part of a team, the student designs, develops, and documents a significant emerging digital media project under the guidance of one or more faculty members. Cross-listed with TVR
48500; students cannot receive credit for both COMP 48500 and TVR 48500. Prerequisites: COMP 38500 or TVR 38500 with a minimum grade of C-. 4 credits. (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: Senior standing. 1-4 credits. (IRR)

COMP 49002 - Selected Topics in Computer Science LA NS
COMP 49003 - Selected Topics in Computer Science LA NS
COMP 49004 - Selected Topics in Computer Science LA NS
COMP 49005 - 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:
Senior standing. 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

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)

COMP 49800 - Computer Science Internship for Majors NLA

A computer science project (carried out within an organization outside the department) that is not routine, entails significant work experience, and has substantial academic content. The student is responsible for developing a project proposal and completing it in conjunction with a faculty sponsor from the department and a supervisor from the outside organization. At the end of the project, the student shall present a report based on the experience. With departmental approval, up to 4 credits may be counted as upper-level elective credit toward a major in computer science or mathematics-computer science. Prerequisites: Permission of a faculty sponsor; completion of three-fourths of the required coursework for the major in computer science, computer information systems, or mathematics-computer science. 1-12 credits. (IRR)