Computer Science (COMP)

COMP 10500 Introduction to Website Development (LA)

Introduction to the design and construction of responsive interactive websites using current technologies and tools. The course covers principles of effective website design, the design process, and implementation techniques. A term project building a large interactive, mobile-ready website is required. Students who have completed or are taking COMP 20500 may not receive credit for this course. (F-S,Y)
Attributes: CA, CCCS, ESTS, NS, TWOS
3 Credits

COMP 10600 Multimedia Programming (LA)

Fundamental concepts and skills in media programming are covered through design and development of interactive, multimedia websites and applications. Assignments include hands-on projects built using text, images, video, audio, animation, and interactivity. (F-S,Y)
Attributes: CA, CCCS, ESTS, NS, TIII
3 Credits

COMP 10700 Introduction to 2D Game Development (LA)

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. (F,Y)
Attributes: 2B, CA, NS, TIII
4 Credits

COMP 11000 Computers and Information Technologies (LA)

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. Prerequisite: Passing score on math competency exam. (F-S,Y)
Attributes: 2B, NS, QL
3 Credits

COMP 11500 Discrete Structures for Computer Science (LA)

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. (S,Y)
Attributes: 2B, NS
4 Credits

COMP 12200 Introduction to Robotics Using Legos (LA)

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. (IRR)
Attributes: 2B, NS
3 Credits

COMP 12400 Geographical Information Systems (LA)

Exploration of analytical and computational concepts and skills necessary to create, manipulate, analyze, visualize, and manage spatial databases. Skill-development in using a geographic information system (GIS) in a computer laboratory. Prerequisite: WRTG 10600, ICSM 108xx or ICSM 118xx. (F,Y)
Attributes: CCCS, ESTS, NS, WI
3 Credits

COMP 17000 Introductory Computer Project (NLA)

Student undertakes a project to design and implement a computer application under the guidance of one or more faculty members. May be repeated for a total of Prerequisites: Permission of the computer science faculty. (F-S,Y)
1-3 Credits

COMP 17001 Introductory Computer Project (NLA)

Student undertakes a project to design and implement a computer application under the guidance of one or more faculty members. May be repeated for a total of Prerequisites: Permission of the computer science faculty. (F-S,Y)
1-3 Credits

COMP 17100 Principles of Computing Science I (LA)

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. (F-S,Y)
Attributes: 2B, NS
4 Credits

COMP 17200 Principles of Computer Science II (LA)

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. It will provide the requisite skills needed by majors and minors to successfully progress in Computer Science. The course will be a combination of lectures, in-class exercises, and labs, with a strong hands-on approach. Prerequisites: COMP 17100. (F-S, Y)
Attributes: NS
4 Credits

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. (IRR)
Attributes: UND
1 Credit

COMP 19000 Selected Topics in Computer Science (LA)

Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
Attributes: NS
1-4 Credits

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. (IRR)
Attributes: UND
1-4 Credits

COMP 20200 Computational Foundation of Emerging Media (LA)

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. (S, Y)
Attributes: NS
4 Credits

COMP 20500 Advanced Web Programming (LA)

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 17200. (F,Y)
Attributes: CCCS, NS
4 Credits

COMP 20700 Game Development and Technologies (LA)

Covers the methods and technologies used to implement and test video games, with an emphasis on the software design and development, prototyping, and testing phases. Additionally, students are introduced 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 (S,Y)
Attributes: NS
4 Credits

COMP 21000 Introduction to Computer Organization and Systems (LA)

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

COMP 22000 Introduction to Data Structures (LA)

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). (F,Y)
Attributes: NS
4 Credits

COMP 27000-27001 Intermediate Computer Project (NLA)

Students undertake a project to design and implement a substantial computer application under the guidance of one or more faculty members. May be repeated for a total of Prerequisites: Sophomore standing and permission of the computer science faculty. (F-S,Y)
1-3 Credits

COMP 29000 Selected Topics in Computer Science (LA)

Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
Attributes: NS
1-4 Credits

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. (IRR)
Attributes: UND
1-4 Credits

COMP 31000 Implementation of Computer Operating Systems (LA)

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. (IRR)
Attributes: NS
4 Credits

COMP 31100 Algorithms and Data Structures (LA)

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. (S,Y)
Attributes: NS
4 Credits

COMP 32100 Programming Languages (LA)

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. (F,Y)
Attributes: NS
4 Credits

COMP 32500 HCI: User Interface Design and Development (LA)

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 and one of COMP 20500, COMP 20700, or COMP 22000. (S,Y)
Attributes: NS
4 Credits

COMP 33000 Introduction to Virtual Reality (LA)

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. (F,E)
Attributes: NS
4 Credits

COMP 34500 Introduction to Software Engineering (LA)

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. (S,Y)
Attributes: NS
4 Credits

COMP 35400 Intelligent Systems (LA)

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. (S,E)
Attributes: NS
4 Credits

COMP 36500 Computer Networks (LA)

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. (F,O)
Attributes: NS
4 Credits

COMP 37000-37001 Intermediate II 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. (F-S,Y)
1-3 Credits

COMP 37500 Database Systems (LA)

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. (F,E)
Attributes: NS
4 Credits

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. (F-S, Y)
4 Credits

COMP 39000 Selected Topics in Computer Science (LA)

Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
Attributes: NS
1-4 Credits

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. (IRR)
Attributes: UND
1-4 Credits

COMP 41500 Computer Graphics (LA)

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 or COMP 33000. (IRR)
Attributes: NS
4 Credits

COMP 45500 Search Engines and Recommender Systems (LA)

Explores how information retrieval and recommendation systems such as Netflix, Facebook, and Pandora, are designed and implemented. Combines development of information retrieval skills such as web-crawling, text & multimedia processing, boolean & vector-space modeling, classification, clustering, and similarity analysis. Will involve hands-on implementation of computer softwarde systems. Prerequisites: COMP 22000 and one level-3 COMP or MATH course. (S,O)
4 Credits

COMP 46500 Topics in Networks (LA)

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. (IRR)
Attributes: NS
4 Credits

COMP 47000-47001 Advanced Computer Project (NLA)

Students undertake a project to design and implement a substantial computer application under the guidance of one or more faculty members. May be repeated for a total of Prerequisites: Junior standing and permission of the computer science faculty. (F-S,Y)
1-3 Credits

COMP 47500 Senior Project (LA)

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. (F-S,Y)
Attributes: NS
3 Credits

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-. (F-S, Y)
4 Credits

COMP 49000 Selected Topics in Computer Science (LA)

Topics to be determined by the instructor and the Department of Computer Science. May be repeated for credit for selected topics on different subjects. (IRR)
Attributes: NS
1-4 Credits

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. (IRR)
Attributes: UND
1-4 Credits

COMP 49800 Computer Science Internship for Majors and Minors (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 sponsorfrom the department and a supervisor from the outside organization. At the end of the project, thestudent shall present a report based on the experience. With departmental approval, up to may be counted as upper-level elective credit toward a major in computer science or mathematicscomputer science or a minor in the Computer Science Department. Students should have completed three-fourths of the major or minor to be eligible for this opportunity. Prerequisites:Permission of a faculty sponsor. 1-(IRR)
1-12 Credits