Department of Computer Science

Bachelor of Arts, Bachelor of Science

Sharon A. Stansfield, Associate Professor and Chairperson

From individual communication to mass media, from scientific research to business, from entertainment to health care, technology provides the structure and tools for living and working in the contemporary world. The majors and minors offered by the department of computer science are designed to equip students with the knowledge, problem-solving abilities, and technical skills to design and create this technology for the 21st century. All courses in the department introduce real-life problems and emphasize both practical software development and fundamental concepts, so that students can understand and adapt to continually evolving technology.

Majors in Computer Science

The computer science B.S. and B.A. majors combine breadth in theoretical and practical computer science with depth in specialized areas. The B.S. in computer science focuses on developing a depth of knowledge and skills in computing and the natural sciences, while the B.A. in computer science offers more flexibility for students who wish to also pursue majors or minors in other fields. In both programs, students are able to master the fundamental concepts of computing and develop the problem-solving skills needed to create computer-based solutions across all disciplines. Both programs also emphasize the challenges in human-computer interactions and the design skills necessary to make technology both approachable and useful for humans. Finally, both degrees provide students the comprehensive understanding of computer science necessary for a career in industry or for graduate school.

Major in Emerging Media

The B.S. in emerging media, a partnership between the Department of Television-Radio in the Roy H. Park School of Communications and the Department of Computer Science in the School of Humanities and Sciences, combines coursework in new media platforms and media computation to provide students with a unique skill set in emerging media technologies: identifying market opportunities, designing concepts, employing storytelling structures, creating and using software tools, developing sound economic models, and promoting the kinds of organizational and consumer change that make new media products successful. The mission of this program is to produce graduates who will be leaders within the evolving discipline of emerging media whether as designers and creators of media and technology or as entrepreneurs creating media products. Because new media are inherently multidisciplinary, integrating artistic creativity with computational expertise, this program takes an integrative approach to the education of our graduates — while still maintaining a strong disciplinary focus.

Students entering through the Department of Computer Science take the media computation concentration, emphasizing computational systems design and development. Students entering through the Department of Television-Radio take either the media design and production concentration or the media entrepreneurship concentration, emphasizing the creative design and promotion of new genres and platforms for emerging media. All students share a substantive common core, then branch out into the concentrations to develop their specialties, and finally come back together in two upper-level project courses where they will work as teams to design, develop, and pitch a new media product, such as an “app” for an iPhone, a new form of gaming or entertainment genre, or an innovative educational simulation.

Minors

The computer science department offers several minors designed to help students effectively incorporate technology in a diverse array of fields:

  1. The minor in computer science provides general computational skills that enable students not only to use computers and computer applications, but also to extend and combine applications to make them more effective.
  2. The minor in web programming helps students gain a deep understanding of how to create engaging and effective websites while also ensuring that they have a thorough knowledge of the fundamentals that enable them to quickly adapt to emerging web technologies.
  3. The minor in game development focuses on the concepts central to the design and implementation of games and on understanding the structure of the technologies behind games.

Minimum Grade for Prerequisites

A grade of C or better is required for a course in computer science to fulfill a prerequisite for another computer science course.

Advanced Placement

Students can receive credit and advanced placement in COMP 17100 with a grade of 4 or 5 on the College Board Advanced Placement examination, Computer Science A only.

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