Major Overview

By learning how to apply computational and quantitative methodologies to diverse subject areas, while understanding the theoretical underpinnings of computing and software development, you will be prepared for fields where radical change is the norm. Our curriculum provides detailed instruction in topics as wide-ranging as java programming and discrete mathematics and will help deepen your liberal arts foundation by enhancing your quantitative and abstract reasoning skills and your ability to efficiently formulate and solve problems. Find immediate practical applications for your studies through our Technology and Cognition Lab and your professors’ ongoing collaborative projects with colleagues at world-renowned universities and research labs. 

Featured Course

Computer Game Design

Students with little or no experience will learn how to create their own computer games using...

Learning Environment

You will find yourself within a setting that stresses the importance of a contextualized and active learning approach, which emphasizes interdisciplinary education and research through close ties with other AUP departments, as well as universities and industries around the world. Our small classes are meant to foster open discussion, guided individual and group projects, as well as broader student-professor collaborations. 



I’ve always been ambitious but AUP helped me place...


Alumnus '12

I will be joining eBay in NYC as a software engineer...

Major Components
Build your Degree

With every single one of our majors, you’ll find a carefully curated medley of core courses and electives, which will provide you with the tools you need to establish an unshakeable foundation in the principles and concepts fundamental to your growth within your disciplines of choice. Many majors also enable you to specialize further within the broader area of study.

Core Courses

Core Courses

We aim to help you develop a range of skills, capacities, and modes of inquiry that will prove crucial since employers and graduate schools are looking for the critical thinking and innovative problem-solving skills that are associated with a liberal arts education. Many of our students continue their studies at top institutions like MIT and Harvard, while others begin careers in fields like mobile application development. 

Scroll to Core Courses



Each elective provides you with entry to a variety of subject areas which you can choose among to further focus your studies. With the help of your academic advisor, you’ll be able to tailor your major so that it most effectively prepares you for the next step in your academic and professional journey.

See all Major Electives



You may choose to orient your Computer Science major towards the Information and Communication Technologies specialization. While building the groundwork for your computer science studies, you will take complementary courses to link your major with another, broader, interest. Previous students have chosen to combine computer science with subject areas that include business, economics, art history, and psychology.

See ICT Requirements

Core Curriculum

The Computer Science core courses, which you must take as part of the major requirements, will provide you with the tools you’ll need to ground your present and future studies. Your introduction to the fundamentals of Computer Science will help pave the way for your successful completion of other Computer Science courses.

MA1020 Applied Statistics I

Introduces the tools of statistical analysis. Combines theory with extensive data collection and computer-assisted laboratory work. Develops an attitude of mind accepting uncertainty and variability as part of problem analysis and decision-making. Topics include: exploratory data analysis and data transformation, hypothesis-testing and the analysis of variance, simple and multiple regression with residual and influence analyses.

MA1030 Calculus I

Introduces differential and integral calculus. Develops the concepts of calculus as applied to polynomials, logarithmic, and exponential functions. Topics include: limits, derivatives, techniques of differentiation, applications to extrema and graphing; the definite integral; the fundamental theorem of calculus, applications; logarithmic and exponential functions, growth and decay; partial derivatives. Appropriate for students in the biological, management, computer and social sciences.

CS1040 Intro To Computer Programming I

Introduces the field of computer science and the fundamental concepts of programming from an object-oriented perspective using the programming language Java. Starts with practical problem-solving and leads to the study and analysis of simple algorithms, data types, control structures, and use of simple data structures such as arrays and strings.

CS1050 Intro To Computer Programming II

This is the second part of the foundation course for the Information and Communication Technologies degree program. Successful students will have a thorough knowledge of the computer language Java, the systematic development of programs, problem-solving and a knowledge of some of the fundamental algorithms of computer science. Essential concepts include inheritance, polymorphism, and error-handling, using exceptions.

CS2071 Languages & Data Structures

Uses predefined classes and class libraries to introduce standard data structures (stacks, queues, sets, trees, and graphs). Studies and implements algorithms for string-searching, sorting, trees and graph traversals. Introduces algorithm complexity analysis and big-Oh (O,,) notation.

CS3048 Human-computer Interaction

Introduces theories of human-computer interaction and analyzes human factors related to the design, development, and use of Information Systems. Students will apply these theories with examples of design, implementation, and evaluation of multimedia user interfaces. The subject of this course is inherently interdisciplinary and the students attending the course normally represent several majors.

CS3068 Database Applications

Introduces databases from the programmer's perspective. IT and CS students have common lectures but different projects. IT students learn the fundamentals of database design, SQL, and how to integrate a database into applications. CS students learn the fundamentals of database design, application integration, query motors, and space management.

CS3051 Web Applications

Introduces web-server-side programming. Students learn the fundamentals of web applications and web servers, security, state management, and dynamic page generation using server-side Java technologies such as Java servlets, Java Server Pages, Java Server Faces and others. Explores database connection, site management and 'helper applications' such as FTP servers and e-mail. CS/CM 1005 is recommended as a prerequisite.

MA2400 Discrete Mathematics

This course is designed to highlight discrete mathematical structures. Discusses propositional logic, proofs and mathematical induction, matrices of relations and digraphs, set theory and number bases, combinatorial analysis, graph theory and Boolean algebra.The prerequisite for this course is MA1010 or above or CS 1040.

CS3032 Operating Systems

Studies the design and implementation of general-purpose operating systems on digital computers: memory management, virtual memory, storage hierarchy evaluation, multiprogramming, process creation, synchronization, deadlock, message communication, parallel programming constructs, I/O management, and file systems. Includes case studies of major operating systems.

CS3015 Computer Networks

The course explains through an architecture perspective the principles and practice of computer networking, with emphasis on the Internet and on pervasive computing. The following topics will be covered: structure and components of distributed systems, layered ISO/OSI architectures, protocols, local Area Networks, wide area networking issues including routing, flow control. Some advanced topics will also be covered such as pervasive computing, ad-hoc networks, security and privacy.

CS3053 Software Engineering

Covers methods and tools associated with the entire software life cycle: requirement management, testing and profiling, deployment, change and configuration management, quality management, project management and security. Special emphases are given to object-oriented software analysis and design as a foundation to Model-driven architecture (MDA). Automated and semi-automated tools that support these procedures will also be examined.

CS4095 Senior Project
CS3098 Internship

Internship can replace one elective from the ICT curriculum. May be done in France or elsewhere. 1 or 4 Credits. Please contact the Internship Office for more details.


One CS elective course at or above 3000 level or MA 2007