# CS Courses

### BS Computer Science

The Zaven & Sonia Akian College of Science and Engineering’s (CSE) BS in Computer Science is designed to provide an integrated and interdisciplinary undergraduate degree that applies the theoretical rigor of mathematics and computational methods to real-life problems.

The Program Goals and Student Learning Outcomes of the BS in Computer Science were developed to provide students with a deeper understanding of the degree program and a description of the competencies they can expect to possess after completing the program.

Students in the BS in Computer Science program will have the option of pursuing a general degree or of concentrating in one of two tracks: Mathematical Modeling or Computer Science. Each track consists of five concentration courses, two of which are mandatory.

The BS in Computer Science is offered as part of AUA’s liberal arts education. Program-wide and university-wide goals have been designed to ensure that AUA’s graduates become not only specialists in their fields, but also develop into well-rounded individuals, able to think critically and creatively, to learn independently, to understand different thinking traditions, to work collaboratively, and to interact with people from different cultures and disciplines.

As one of AUA’s founding colleges, the Zaven & Sonia Akian College of Science and Engineering is also home to the Engineering Research Center as well as two of the university’s Master’s degree programs: Industrial Engineering and Systems Management (IESM) as well as Computer and Information Science (CIS).

**General Education (GE)**

(15 courses)

Foundation Requirements

(6 courses)

ENGL 101 Freshman English Seminar 1

ENGL 102 Freshman English Seminar 2

CHSS 103 Armenian Language/Literature 1^{ 1}

CHSS 104 Armenian Language/Literature 2

CHSS *** Armenian History 1 ^{2}

CHSS *** Armenian History 2

*All undergraduate students must take these 6 courses*

Quantitative Sciences Requirements **

(3 courses)

Any 3 humanities courses coded as GE-QS

Arts & Humanities Requirements **

(3 courses)

Any 3 humanities courses coded as GE-AH

Social Sciences Requirements **

(3 courses)

Any 3 social science courses coded

Physical Education, First Aid, and Civil Defense Requirements

(3 courses)

PHED 110 Physical Education (120 hours)

PHED 152 First Aid (20 hours)

PHED 153 Civil Defense (20 hours)

*All undergraduate students must take these **3** courses*

**AND**

**CS Major Core**

(15 courses)

Core Requirements

(15 courses)

**MATH 100 Calculus 1** – This introductory course covers topics including: functions of one variable, transcendental functions; introduction to complex numbers; polar coordinates; limits, continuity; derivatives, techniques of differentiation, differentiability, extrema of differentiable functions, applications of differentiation; indefinite and definite integrals, mean value theorem, related-rates problems, and the fundamental theorem of calculus. Students are required to complete weekly problem sets in order to develop basic proficiency in the mathematical foundations introduced in the field of Calculus. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 101 Calculus 2** – This course builds on CS100 and covers topics including: techniques of integration, applications of integrals, improper integrals; separable differential equations; qualitative problem solving techniques, extreme case reasoning, dimensional analysis, iterative approximation, discretization, generalization; sequences, series, convergence, Taylor series. Students are required to complete weekly problem sets in order to develop proficiency in differential and integral Calculus. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 102 Calculus 3 –** This final course in the three-term Calculus sequence spans the following topics: vectors in multiple dimensions; functions of several variables, continuity, partial derivatives, the gradient and Jacobian, directional derivatives, extrema, Taylor’s Theorem, Lagrange multipliers; multiple integrals, line integrals, surface integrals, divergence theorem, Green’s theorem, Stokes’ theorem. Students are required to complete weekly problem sets in order to demonstrate intermediate competency in multi-variable Calculus. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 103 Real Analysis –**The fundamental concepts in analysis are rigorously treated with emphasis on reasoning and proofs. The topics include completeness and order properties of real numbers; limits, continuity and uniform continuity; conditions for integrability and differentiability; infinite sequences and series; basic concepts of topology and measure, metric spaces, compactness, connectedness; continuous functions on a compact set, the contraction mapping lemma. Students are required to apply practical analytical methods to formulate, critically assess, and solve problems which arise in computational sciences and mathematical modeling. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 104 Linear Algebra** – This introductory course covers topics including: vectors, dot products, hyperplanes in R^{n}; systems of linear equations, Gaussian elimination; matrix operations, determinants; vector spaces, linear independence, change of basis, eigenvectors and eigenvalues, the characteristic equation; the spectral theorem; complex vector spaces, complex eigenvalues, Jordan canonical form, matrix exponentials, differential equations. Students are required to apply practical analytical methods to solve problems which arise in computational sciences. Students will also learn to formulate a matrix representation of basic problems seen in mathematical modeling. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 106 Probability & Statistics** – The topics covered in this introductory course include: axioms of probability; conditional probability, independence; combinatorial analysis; random variables and distributions; expectation, variance, covariance; transformation of random variables; limit theorems, the law of large numbers, the central limit theorem; Markov chains; applications; statistical estimation; correlation, regression; hypothesis testing, maximum likelihood estimation, Bayesian updating; applications. Students are required to complete problem sets in order to demonstrate rudimentary foundational knowledge in mathematical modeling and to apply practical analytical and numerical methods to solve problems in computational sciences. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 110 Intro to Computer Science (Intro to CS)** – The course provides students with a broad foundation in computer science. Topics include: introduction to digital technology, historical review from valves to integrated circuits; logic gates; binary, octal, and hexadecimal systems; evolution of computer architecture, Von Neumann architecture, basic components, internal and external interfaces, types of removable media; introduction to operating systems. Students should be able to demonstrate basic understanding of the software and hardware systems related to computational sciences, and demonstrate strong understanding of the relevant common software and information technology. Students will develop rudimentary foundational knowledge in mathematical modeling and gain proficiency using software and hardware systems related to computational science. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 111 Discrete Math** – The course examines topics including: propositional logic, Boolean algebra; introduction to set algebra, infinite sets; relations and functions; methods of proof; introduction to number theory; introduction to graph theory, trees; combinatorics; applications to computer science. Students should be able to apply practical numerical methods to solve problems which arise in computational sciences. Students are required to demonstrate a rudimentary foundation in mathematical modeling through solving problems arising in computational science through analytical and numerical methods. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 112 Numerical Analysis** – The course investigates topics including: floating-point arithmetic, cancellation and rounding, random number generation; finding of roots of nonlinear equations and systems; interpolation, extrapolation, function approximation; numerical integration, Gaussian quadrature; Monte-Carlo methods; numerical solutions of ordinary differential equations, predictor-corrector methods, shooting methods for boundary value problems. Students are required to formulate, critically assess, and apply practical numerical methods to solve problems and subtasks. Through the problem sets and group projects, students will demonstrate intermediate proficiency in designing and analyzing complex data structures and algorithms as well as in developing and testing software tools and methods relevant to numerical analysis. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 121 Data Structures** – The course explores topics including: basic object-oriented programming principles; linear and non-linear data structures – linked lists, stacks, queues, trees, tables and graphs; dynamic memory management; design of algorithms and programs for creating and processing data structures; searching and sorting algorithms. Students are required to complete programming projects in which they design, analyze, and develop complex data structures in at least one programming language. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 120 Intro to Object Oriented Programming (Intro to OOP)** – The course will survey the following topics: control structures; functions; arrays; strings; introduction to UML; classes and data abstraction; inheritance; introduction to polymorphism, abstract classes and interfaces. Students are required to develop basic proficiency in utilizing and testing software systems related to computational sciences and in applying at least one programming language to software development. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 132 Theory of Communication Networks** – The course investigates several communication problems in networks; one-to-all, all-to-all, one-to-many. Specific communication models are considered by placing constraints on the sets of messages, senders, and receivers, on the network’s topology, on the rules that govern message transmissions, and on the amount of information about the network known to individual network members. One goal is to design network structures which are inexpensive to construct yet allow fast communication. The second major goal is to design efficient communication algorithms for commonly used networks under different communication models. These require knowledge of graph theory, combinatorics, and design and analysis of algorithms. The students are required to complete theoretical problem sets and proofs in order to develop advanced knowledge of efficient communication algorithms and combinatorial properties of certain types of networks. Students will also complete and present in class a project based on recent research articles in order to develop advanced knowledge and research skills to formulate and investigate real research problems in the future. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 211 Algorithms** – The course surveys topics including: review of main abstract data types; sorting algorithms, correctness, space and time complexity; hashing and hash tables, collision resolution strategies; graph algorithms; divide-and-conquer algorithms, dynamic programming; NP-completeness. Students are required to critically analyze, formulate and solve problems using analytical knowledge related to algorithms. Students should also be able to display proficiency in designing and analyzing complex algorithms and understand the software relevant to this field. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 213 Optimization** – The course explores the following topics: optimization problems; dogleg and hookstep methods; simulated annealing; approximation algorithms; introduction to game theory; scheduling; basic optimization models in financial markets; nonlinear continuous optimization; conjugate gradient methods, Newton-type methods. Through the course, students will develop the ability to critically analyze and solve problems using advanced knowledge related to optimization and contemporary methods in optimization techniques. Students will also develop proficiency in designing and analyzing complex data structures and algorithms. Additionally, students are required to complete individual projects in order to develop their ability to discover and learn relevant material on their own. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 220 Parallel and High Performance Computing (Parallel HPC)** – The course examines topics including: parallel hardware architectures, distributed computing paradigms, parallelization strategies and basic parallel algorithmic techniques, parallel programming with OpenMP and MPI, HPC numerical libraries. Students should be able to demonstrate advanced knowledge related to contemporary methods in parallel and HP Computing. Students are required to draw upon investigative techniques related to this field in order to critically analyze and solve problems using advanced knowledge. Coursework will require students to develop faster codes that are highly optimized for modern multi-core processors and clusters. Three hours of instructor-led class time per week including discussions, lab work and problem sets.

**COMP 296 Capstone** – Students will select a topic from their respective tracks and work on the course-long project under the mentorship of the advising instructor. No more than ten students will be mentored by one advisor. Students will discuss each others’ projects at scheduled weekly meetings led by the instructor. At the end of the course the projects will be presented and demonstrated orally and the project reports will be submitted in writing. Students are required to formulate and critically assess problems and sub-tasks including identifying sources and conducting independent research. Students should likewise be able to demonstrate expertise in core domains and in contemporary computing technologies. Students are required to produce technical documentation with references and demonstrate the capacity to discover and learn new material through independent research. Students are also required to draw upon critical thinking skills in a broad context and work as part of a team. Three hours of instructor-led class time per week.

Core Application Domains

(2 courses from following)

**PHYS 240 Mechanics** – The course surveys a range of topics including: the principles of relativity and determinacy, the Galilean group, Newton’s equations; systems with one and two degrees of freedom, conservative force fields, angular momentum, dynamics of a system of n points, the method of similarity; generalized coordinates, variational principles, Lagrange’s equations; conservation laws; integrations of the equations of motions, the two-body central-force problem; collisions between particles; small oscillations; rigid bodies; Hamilton’s equations; Poisson brackets, canonical and non-canonical transformations; the Hamilton-Jacobi equation, adiabatic invariants; canonical perturbation theory. Students are required to develop expertise in the application domain of mechanics. Students will complete individual research projects in order to develop advanced proficiency in discovering and analyzing new material. Three hours of instructor-led class time per week including discussions and problem sets.

**COMP 246 Artificial Intelligence (AI)** – The course covers topics including: basic artificial intelligence concepts; Bayes networks; hidden Markov models; supervised machine learning, unsupervised machine learning, reinforcement learning; games; image processing, computer vision, robot motion planning; natural language processing. Students are required to complete models and projects in order to develop intermediate level expertise in the application domain of artificial intelligence, and associated knowledge and experience in the contemporary computing technology of AI. Through coursework, students will complete and present their independent research to a broad audience. Three hours of instructor-led class time per week including discussions and problem sets.

AND

CS Tracks (5 courses)

**Mathematical Modeling Track**

(Minimum 5 courses)

Track Requirements (3 courses)

**MATH 105 Ordinary Differential Equations (ODE)** – The course examines topics including: first order equations, solution methods, higher order linear equations, series solutions, Laplace transforms, systems of linear equations, linear systems with constant coefficient, systems with periodic coefficients, existence and uniqueness of solutions, phase plots, eigenvalue problems, eigenfunction expansions, Sturm-Liouville theory, linearization about critical points, limit cycles, Poincaré-Bendixson theorem, Hartman-Grobman theorem, chaotic solutions and strange attractors, applications. Through the course, students will learn to formulate representations of basic problems seen in mathematical modeling. Students are required to apply practical analytical methods to solve problems which arise in computational sciences. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 212 Numerical Linear Algebra** – The course examine topics including: matrix representations, dense and sparse representations, matrix-free representations; Gaussian elimination, pivoting; LU decomposition, QR decomposition, singular-value decomposition (SVD); iterative methods; Jacobi and Gauss-Seidel Methods; overrelaxation; Krylov subspace methods, GMRES; eigenvalue and eigenvectors; overview of available software and libraries, BLAS, LAPACK, GSL. Through the course, students will be able to develop and test software tools and methods as well as critically analyze and solve problems using advanced knowledge related to numerical methods. Students are required to complete problem sets and course exercises in order to develop proficiency in designing and analyzing complex data structures and algorithms. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 201 Complex Analysis (#)** – The course examines the theory of functions of one complex variable. The topics include complex numbers, complex functions, differentiability, Cauchy-Riemann equations, analytical functions; complex integration, the Cauchy integral formula, calculation of residues, Liouville’s theorem, the Gauss mean value theorem, the maximum modulus theorem, Rouche’s theorem, the Poisson integral formula; Taylor-Laurent series; singularity theory; analytical continuation; elliptic functions; conformal mapping, applications to ODEs and PDEs. Students are required to complete weekly problem sets and proofs in order to develop advanced knowledge of analyticalal methods. Students will learn to utilize advanced methods to formulate, assess, and solve problems and subtasks in computational science as well as across a broad range of disciplines. Three hours of instructor-led class time per week including discussions and problem sets.

Track Electives (2 courses from following)

**PHYS 140 Dynamical Systems **– The course covers topics including: concepts of continuous and discrete dynamical systems; orbits, fixed points and periodic orbits; 1D and 2D maps; stability of fixed and periodic points, sinks, sources and saddles; Lyapunov exponents; chaos; linear and nonlinear systems; periodic orbits and limit sets; chaotic attractors and fractals; maps of the circle, hyperbolic dynamical systems, horseshoe maps; symbolic dynamics, topological entropy. Students are required to solve problems in computational science utilizing concepts and methods from mathematical disciplines of mathematical modeling. Three hours of instructor-led class time per week including discussions and problem sets.

**MATH 205 Equations of Mathematical Physics (Equations of MP)** – The course explores the following topics: first-order equations, the classical equations of mathematical physics, classification of second-order equations, the Cauchy-Kovalevsky theorem, harmonic functions, the Dirichlet principle; initial-value and boundary-value problems for hyperbolic, elliptic, and parabolic equations; systems of equations; special functions. Students are required to apply practical analytical methods to solve problems which arise in computational sciences at an intermediate level. Students will learn to formulate a representation of problems seen in mathematical modeling at the intermediate level. Three hours of instructor-led class time per week including discussions and problem sets.

OR

**Computer Science Track**

(Minimum 5 courses)

Track Requirements (3 courses)

**CS 130 Computer Organization** – Functional organization and operation of digital computers. Coverage of assembly language, addressing, stacks, argument passing, arithmetic operations, decisions, macros, modularization, linkers, debuggers. Device drivers will be considered.

Prerequisites: CS 110 CS 121

**COMP 132 Computer Networks** – The course examines topics including: data communication, circuit and packet switching, protocols; server / client applications, socket programming; TCP, UDP, flow control, congestion control; Internet protocols, routing, switching technologies; local area networks, error detection and correction; basic concepts in mobile computing. Students are required to complete practical exercises in design in order to develop intermediate knowledge of hardware and software networking systems related to computational sciences. Through various course assignments, students will develop a high level of proficiency in broad-based IT skills as well as gain experience investigating new material in this realm.

Track Electives (2 courses from following)

**COMP 131 Human-Computer Interaction (HCI)** – The topics include: concepts of human computer interaction, techniques for user interface design; user-centered design, interface development techniques, usability evaluation; overview of interface devices and metaphors; visual development environments, other development tools. Students should be able to demonstrate advanced knowledge of software and hardware systems related to computational sciences. Students should also be able to formulate and critically assess problems and sub-tasks including identification of sources and investigative techniques related to the field. Students are required to complete group projects in which they formulate, critically assess, and investigate problems relating to software and hardware systems. Students will complete formal presentations in order to develop experience communicating to audiences both within and outside the discipline. Three hours of instructor-led class time per week including discussions and problem sets.

OR

**General Track**

(Minimum 5 courses)

Students may choose any combination of Computational Science courses from Core Application Domains, Mathematical Modeling Track, or Computer Science Track.(###)

AND

Free Electives (Min. 3 courses)

Any 3 additional courses offered at AUA*****

* All courses are three credits unless otherwise noted.

** Students must take at least one upper division course in each of the disciplinary fields (AH, SS, QS)

***Courses offered outside of English, Business, and Computational Science majors do not yet have course numbers.

**** Courses will be coded (GE-AH, GE-SS, GE-QS) in the course catalog.

****To complete the BA in Computational Science, students must complete a total of 40 courses, including 15 General Education courses, 18 CS Major Core courses, 5 CS Track courses, and a minimum of 2 Free Elective courses, in addition to Physical Education, First Aid, and Civil Defense Requirements.

(#) Also satisfies CS track elective requirement

(##) Also satisfies MM track elective requirement

(###) Courses taken to satisfy the Core Domain Requirement may not also be used to satisfy the General track requirement. Also, at least 2 upper division (200 level) courses must be taken as part of the General track

### BS in Computational Sciences Program Goals & Outcomes

*Goal 1:**Equip students with knowledge and advanced skills in mathematical reasoning, problem solving, modeling and scientific computation*

Student Outcomes:

*Students will be able to:*

1.1. Use concepts and methods of mathematical disciplines relevant to mathematical modeling.

1.2. Have in-depth knowledge of analytical and numerical methods and be able to apply it to solving problems arising in computational sciences.

1.3. Utilize and adapt software and select and use hardware systems related to computational sciences.

*Goal 2: Train students for careers and advanced studies in a wide range of applied mathematical and computational disciplines*

Student Learning Outcomes:

*Students will be able to:*

2.1 Apply computational methods to one or more domains of application (e.g. thermodynamics, finance, artificial intelligence).

2.2 Utilize contemporary computing technologies, such as high-performance, parallel and distributed computing.

2.3 Formulate and critically assess problems and sub-tasks including conduct of appropriate research, identification of sources and investigative techniques.

*Goal 3: Prepare students for development of scientific, engineering and industrial software applications*

Student Learning Outcomes:

*Students will be able to:*

3.1 Design and analyze complex data structures and algorithms.

3.2 Develop and implement software applications in one or more programming languages.

3.3 Develop and test software tools and methods.

*Goal 4**:**Develop articulate, conscientious leaders and problem solvers who are committed to contributing to their fields and society.*

Student Learning Outcomes:

*Students will be able to*

4.1 Produce and deliver written and oral presentations, and communicate with specialists and non-specialists using appropriate media and technology.

4.2 Think critically and creatively, conceptualizing real-world problems from different perspectives.

4.3 Work productively in diverse teams and solve problems collaboratively.

*Goal 5**:**Provide students with a broad foundation of knowledge and skills and cultivate a commitment to life-long learning.*

Student Learning Outcomes:

*Students will be able to*

5.1 Use common software and information technology to pursue inquiry relevant to their academic and professional fields, and personal interests.

5.2 Weigh evidence and arguments, and appreciate and engage in diverse modes of inquiry characteristic of historical, cultural, political, economic, and quantitative disciplines.

5.3 Properly document and synthesize existing scholarship and data, keep current with developments, conduct independent research, and discover and learn new material on their own.