# Bachelor of Arts in Computer Science

The Bachelor of Arts in Computer Science teaches the principles of computation and algorithms and allows students to develop programming and computing skills. Computer scientists, software engineers, programmers, and other computing professionals are experts on how technology works and how computing can address even the most complicated and intricate problems.

## Requirements

**Core Courses.****Introduction to Computer Science.**One (1) course:- CSCI-C 200 Introduction to Computers and Programming
- CSCI-C 211 Introduction to Computer Science
- CSCI-H 211 Introduction to Computer Science, Honors

# CSCI-C 200 Introduction to Computers and Programming

- Credits
- 4
- Prerequisites
- High school precalculus math
- Description
- This course is an introduction, broadly, to algorithmic thinking and, specifically, to programming. It teaches the basics of programming using real world applications in natural, physical and social sciences. Students will develop ability to program by identifying problems in real world and then creating a program that solves the problem.
- Repeatability
- Credit given for only one of CSCI-C 200, CSCI-C 211, CSCI-H 211, or CSCI-A 591.

# CSCI-C 211 Introduction to Computer Science

- Credits
- 4
- Prerequisites
- High school precalculus math
- Description
- A first course in computer science for those intending to take advanced computer science courses. Introduction to programming and to algorithm design and analysis. Using the Scheme programming language, the course covers several programming paradigms. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 200, CSCI-C 211, CSCI-H 211, or CSCI-A 591.

# CSCI-H 211 Introduction to Computer Science, Honors

- Credits
- 4
- Prerequisites
- High school precalculus math
- Description
- Honors version of CSCI-C 211. A first course in computer science for those intending to take advanced computer science courses. Introduction to programming and to algorithm design and analysis. Using the Scheme programming language, the course covers several programming paradigms. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 591, CSCI-C 200, CSCI-C 211, or CSCI-H 211.

**Software Systems.**One (1) course:- CSCI-C 212 Introduction to Software Systems
- CSCI-H 212 Introduction to Software Systems, Honors

# CSCI-C 212 Introduction to Software Systems

- Credits
- 4
- Prerequisites
- CSCI-C 200 or CSCI-C 211.
- Description
- Design of computer software systems and introduction to programming in the environment of a contemporary operating system. Topics include a modern object-oriented programming language; building and maintaining large projects; and understanding the operating system interface. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 592, CSCI-C 212, CSCI-H 212, or ENGR-E 111.

# CSCI-H 212 Introduction to Software Systems, Honors

- Credits
- 4
- Prerequisites
- CSCI-C 200 or CSCI-C 211
- Description
- Honors version of CSCI-C 212. Design of computer software systems and introduction to programming in the environment of a contemporary operating system. Topics include a modern object-oriented programming language; building and maintaining large projects; and understanding the operating system interface. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 592, CSCI-C 212, CSCI-H 212, or ENGR-E 111.

**Discrete Structures.**One (1) course:- CSCI-C 241 Discrete Structures for Computer Science
- CSCI-H 241 Discrete Structures for Computer Science, Honors

# CSCI-C 241 Discrete Structures for Computer Science

- Credits
- 3
- Prerequisites
- CSCI-C 200 or CSCI-C 211
- Notes
- R: MATH-M 211
- Description
- Induction and recursive programs, running time, asymptotic notations, combinatorics and discrete probability, trees and lists, the relational data model, graph algorithms, propositional and predicate logic.
- Repeatability
- Credit given for only one of CSCI-C 241 or CSCI-H 241.

# CSCI-H 241 Discrete Structures for Computer Science, Honors

- Credits
- 3
- Prerequisites
- CSCI-C 200 or CSCI-C 211
- Notes
- R: MATH-M 211
- Description
- Honors version of CSCI-C 241. Induction and recursive programs, running time, asymptotic notations, combinatorics and discrete probability, trees and lists, the relational data model, graph algorithms, propositional and predicate logic.
- Repeatability
- Credit given for only one of CSCI-C 241 or CSCI-H 241.

**Data Structures.**One (1) course:- CSCI-C 343 Data Structures
- CSCI-H 343 Data Structures, Honors

# CSCI-C 343 Data Structures

- Credits
- 4
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structured data, and techniques for operating on data structures. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 343 or CSCI-H 343.

# CSCI-H 343 Data Structures, Honors

- Credits
- 4
- Prerequisites
- CSCI-C 212, CSCI-C 241 and CSCI-C 291
- Description
- Honors version of CSCI-C 343. Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structured data, and techniques for operating on data structures. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 343 or CSCI-H 343.

**Advanced Electives.**15 credit hours:- CSCI-B 351 INTRODUCTION TO ARTIFICIAL INTELLIGENCE
- CSCI-B 355 Autonomous Robotics
- CSCI-B 355 AUTONOMOUS ROBOTICS
- CSCI-B 361 INTRO ARTIFCL IN & COMP SIMUL
- CSCI-B 363 CSCI-B 363 Bioinformatics Algorithms
- CSCI-B 363 BIOINFORMATICS ALGORITHMS
- CSCI-B 365 Introduction to Data Analysis and Mining
- CSCI-B 365 INTRODUCTION TO DATA ANALYSIS AND MINING
- CSCI-B 392 Competitive Programming
- CSCI-B 392 COMPETITIVE PROGRAMMING
- CSCI-B 401 Fundamentals of Computing Theory
- CSCI-B 401 FUNDAMENTALS OF COMPUTING THEORY
- CSCI-B 403 Introduction to Algorithm Design and Analysis
- CSCI-B 403 INTRODUCTION TO ALGORITHM DESIGN AND ANALYSIS
- CSCI-B 430 Security for Networked Systems
- CSCI-B 430 SECURITY FOR NETWORKED SYSTEMS
- CSCI-B 433 Systems & Protocol Security & Information Assurance
- CSCI-B 433 SYSTEMS & PROTOCOL SECURITY & INFORMATION ASSURANCE
- CSCI-B 438 FUNDAMENTALS OF COMPUTER NETWORKS
- CSCI-B 441 Digital Design
- CSCI-B 441 DIGITAL DESIGN
- CSCI-B 443 INTRODUCTION TO COMPUTER ARCHITECTURE
- CSCI-B 443 Introduction to Computer Architecture
- CSCI-B 453 GAME DEVELOPMENT
- CSCI-B 455 Principles of Machine Learning
- CSCI-B 455 PRINCIPLES OF MACHINE LEARNING
- CSCI-B 456 Image Processing
- CSCI-B 456 IMAGE PROCESSING
- CSCI-B 457 Introduction to Computer Vision
- CSCI-B 457 INTRODUCTION TO COMPUTER VISION
- CSCI-B 461 DATABASE CONCEPTS
- CSCI-B 461 Database Concepts
- CSCI-B 471 NUMERICAL ANALYSIS I
- CSCI-B 472 NUMERICAL ANALYSIS II
- CSCI-B 481 INTERACTIVE GRAPHICS
- CSCI-B 481 Interactive Graphics
- CSCI-B 490 SEMINAR IN COMPUTER SCIENCE
- CSCI-B 490 Seminar in Computer Science
- CSCI-C 301 FORTRAN PROGRAMMING
- CSCI-C 302 PASCAL PROGRAMMING
- CSCI-C 303 COBOL PROGRAMMING
- CSCI-C 304 C PROGRAMMING
- CSCI-C 306 OBJECT ORIENTED PROGRAMMING
- CSCI-C 307 APPLIED PROGRAMMING TECHNIQUES
- CSCI-C 308 SYSTEM ANALYSIS AND DESIGN
- CSCI-C 311 Programming Languages
- CSCI-C 311 PROGRAMMING LANGUAGES
- CSCI-C 322 Object-Oriented Software Methods
- CSCI-C 322 OBJECT-ORIENTED SOFTWARE METHODS
- CSCI-C 323 Mobile App Development
- CSCI-C 323 MOBILE APP DEVELOPMENT
- CSCI-C 335 Computer Structures
- CSCI-C 335 COMPUTER STRUCTURES
- CSCI-C 341 FUNDAMENTALS OF COMPUTING THEORY
- CSCI-C 343 Data Structures
- CSCI-C 343 DATA STRUCTURES
- CSCI-C 390 INDIVIDUAL PROGRAMMING LAB
- CSCI-C 391 PROJECT IN PROFESSIONAL PRACTICE
- CSCI-C 422 DIGITAL HARDWARE DESIGN II
- CSCI-C 428 COMPUTER ARCHITECTURE
- CSCI-C 431 ASSEMBLERS AND COMPILERS 1
- CSCI-C 432 ASSEMBLERS AND COMPILERS 2
- CSCI-C 435 OPERATING SYSTEMS 1
- CSCI-C 436 OPERATING SYSTEMS 2
- CSCI-C 445 INFORMATION SYSTEMS I
- CSCI-C 446 INFORMATION SYSTEMS II
- CSCI-C 451 AUTOMATA AND FORMAL GRAMMARS
- CSCI-C 452 THEORY OF COMPUTABILITY
- CSCI-C 455 ANALYSIS OF ALGORITHMS I
- CSCI-C 460 SENIOR PROJECT I
- CSCI-C 463 ARTIFICIAL INTELLIGENCE I
- CSCI-C 464 ARTIFICIAL INTELLIGENCE II
- CSCI-C 470 SENIOR PROJECT II
- CSCI-C 482 IMAGE SYNTHESIS
- CSCI-C 490 SEMINAR IN COMPUTER SCIENCE
- CSCI-H 311 Programming Languages, Honors
- CSCI-H 311 PROGRAMMING LANGUAGES HONORS
- CSCI-H 335 Computer Structures, Honors
- CSCI-H 335 COMPUTER STRUCTURES HONORS
- CSCI-H 343 Data Structures, Honors
- CSCI-H 343 DATA STRUCTURES, HONORS
- CSCI-H 498 Undergraduate Honors Seminar
- CSCI-H 498 UNDERGRADUATE HONORS SEMINAR
- CSCI-P 415 Introduction to Verification
- CSCI-P 415 INTRODUCTION TO VERIFICATION
- CSCI-P 423 Compilers
- CSCI-P 423 COMPILERS
- CSCI-P 424 Advanced Functional Programming
- CSCI-P 424 ADVANCED FUNCTIONAL PROGRAMMING
- CSCI-P 434 Distributed Systems
- CSCI-P 434 DISTRIBUTED SYSTEMS
- CSCI-P 436 Introduction to Operating Systems
- CSCI-P 436 INTRODUCTION TO OPERATING SYSTEMS
- CSCI-P 438 Introduction to Computer Networks
- CSCI-P 438 INTRODUCTION TO COMPUTER NETWORKS
- CSCI-P 442 Digital Systems
- CSCI-P 442 DIGITAL SYSTEMS
- CSCI-P 462 Database Application Design and Implementation
- CSCI-P 462 DATABASE APPLICATION DESIGN AND IMPLEMENTATION
- CSCI-P 465 Software Engineering for Information Systems I
- CSCI-P 465 SOFTWARE ENGINEERING FOR INFORMATION SYSTEMS I
- CSCI-P 466 Software Engineering for Information Systems II
- CSCI-P 466 SOFTWARE ENGINEERING FOR INFORMATION SYSTEMS II
- CSCI-Y 331 DIGITAL SYSTEMS
- CSCI-Y 390 Undergraduate Independent Study
- CSCI-Y 390 UNDERGRADUATE INDEPENDENT STUDY
- CSCI-Y 391 Undergraduate Independent System Development
- CSCI-Y 391 UNDERGRADUATE INDEPENDENT SYSTEM DEVELOPMENT
- CSCI-Y 395 Career Development for CSCI Majors
- CSCI-Y 395 CAREER DEVELOPMENT FOR CSCI MAJORS
- CSCI-Y 399 Project in Professional Practice
- CSCI-Y 399 PROJECT IN PROFESSIONAL PRACTICE
- CSCI-Y 499 Honors Research
- CSCI-Y 499 HONORS RESEARCH
- INFO-H 494 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM
- INFO-H 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEMS
- INFO-I 494 DESIGN AND IMPLEMENTATION OF AN INFORMATION SYSTEM (PART I)
- INFO-I 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM
- MATH-M 471 Numerical Analysis I
- MATH-M 472 Numerical Analysis II

# CSCI-B 351 INTRODUCTION TO ARTIFICIAL INTELLIGENCE

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 355 Autonomous Robotics

- Credits
- 3
- Prerequisites
- Two semesters of computer programming or consent of instructor
- Description
- Introduction to the design, construction, and control of autonomous mobile robots. This course covers basic mechanics, electronics and programming for robotics, as well as the applications of robots in cognitive science.
- Repeatability
- Credit given for only one of COGS-Q 360 or CSCI-B 355.

# CSCI-B 355 AUTONOMOUS ROBOTICS

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 361 INTRO ARTIFCL IN & COMP SIMUL

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 363 CSCI-B 363 Bioinformatics Algorithms

- Credits
- 4
- Prerequisites
- None
- Notes
- R: One programming class or equivalent programming experience in C/C++, Java or Python
- Description
- The course will introduce algorithms for addressing real-world biological questions. For each topic, we will start with an important biological question and gradually present algorithms to answer this question. The course will also discuss the strategies to formulate an appropriate computation problem from a biological question to motivate algorithmic thinking.

# CSCI-B 363 BIOINFORMATICS ALGORITHMS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 365 Introduction to Data Analysis and Mining

- Credits
- 3
- Prerequisites
- None
- Notes
- R: Basic programming skills (CSCI-C 200, CSCI-C-211 or INFO-I 210)
- Description
- The course objective is to study computational aspects of discovering patterns and relationships in large data. This course is designed to introduce fundamental concepts of data mining and provide hands-on experience in data collection, preprocessing, analysis, clustering and prediction.

# CSCI-B 365 INTRODUCTION TO DATA ANALYSIS AND MINING

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 392 Competitive Programming

- Credits
- 2
- Prerequisites
- CSCI-C 343
- Description
- This course focuses on training students to prepare for programming contests (such as the ACM International Collegiate Programming Contest). The students will learn to design time and space efficient algorithms to solve challenging contest problems, and produce bug-free code under the pressure of time in contest.
- Repeatability
- May be repeated for a maximum of 6 credit hours.

# CSCI-B 392 COMPETITIVE PROGRAMMING

- Credits
- 2–2 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 401 Fundamentals of Computing Theory

- Credits
- 3
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Fundamentals of formal language theory, computation models and computability, the limits of computability and feasibility, and program verification.

# CSCI-B 401 FUNDAMENTALS OF COMPUTING THEORY

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 403 Introduction to Algorithm Design and Analysis

- Credits
- 3
- Prerequisites
- CSCI-C 241, CSCI-C 343 and MATH-M 216 or MATH-M 212
- Description
- Algorithm design methodology. General methods for analysis of algorithms. Analysis of the performance of specific algorithms, such as those for searching and sorting.
- Repeatability
- Credit give for only one of CSCI-B 403 or CSCI-B 503.

# CSCI-B 403 INTRODUCTION TO ALGORITHM DESIGN AND ANALYSIS

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 430 Security for Networked Systems

- Credits
- 3
- Prerequisites
- CSCI-C 231
- Description
- This course is an extensive survey of network security. The course materials cover threats to information confidentiality, integrity, and availability in different internet layers, and defense mechanisms that control these threats. The course also provides a necessary foundation on network security, such as cryptographic, primitives/protocols, authentication, authorization and access control technologies; and hands-on experiences through programming assignments and course projects.
- Repeatability
- Credit given for only one of CSCI-B 430, INFO-I 430, or INFO-I 520.

# CSCI-B 430 SECURITY FOR NETWORKED SYSTEMS

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 433 Systems & Protocol Security & Information Assurance

- Credits
- 3
- Prerequisites
- CSCI-C 231 and CSCI-C 291
- Description
- This class covers the fundamentals of computer security by looking at how things can go wrong, and how people can abuse the system. This is a matter of creative cheating; to find loopholes and exploit them. After students learn how to attack the system, it is possible to propose ways to make the system secure. Students will gain a basic overview of existing security problems and be exposed to methods that can be used to secure against such problems. The course should be taken by any one designing, selecting, or using applications in which security or privacy plays a role.
- Repeatability
- Credit given for only one of CSCI-B 433, INFO-I 433, or INFO-I 533.

# CSCI-B 433 SYSTEMS & PROTOCOL SECURITY & INFORMATION ASSURANCE

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 438 FUNDAMENTALS OF COMPUTER NETWORKS

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 441 Digital Design

- Credits
- 4
- Prerequisites
- CSCI-C 335
- Description
- Lab fee. Organization and logic design of digital systems. Course presents a structured design philosophy, emphasizing hardwired and microprogrammed control. Boolean algebra, hardware building blocks, circuit synthesis, microprogramming. In the laboratory, students build, study, and debug a working minicomputer from elementary hardware components. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-B 441 or CSCI-B 541.

# CSCI-B 441 DIGITAL DESIGN

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 443 INTRODUCTION TO COMPUTER ARCHITECTURE

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 443 Introduction to Computer Architecture

- Credits
- 3
- Prerequisites
- CSCI-C 335 and CSCI-C 343
- Description
- Principles of processors, control units, and storage systems. Registers, buses, microprogramming, virtual storage. Relationship between computer architecture and system software.
- Repeatability
- Credit given for only one of CSCI-B 443 or CSCI-B 543.

# CSCI-B 453 GAME DEVELOPMENT

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 455 Principles of Machine Learning

- Credits
- 3
- Prerequisites
- CSCI-C 200 or CSCI-C 211; and MATH-M 211
- Description
- In this course, we explore (machine learning) algorithms that can learn from and make predictions on data. This course introduces the statistical, mathematical, and computational foundations of these frameworks, with a strong focus on understanding the mathematical derivations for the algorithms and simultaneously implementing the algorithms.

# CSCI-B 455 PRINCIPLES OF MACHINE LEARNING

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 456 Image Processing

- Credits
- 3
- Prerequisites
- CSCI-C 212 and MATH-M 212
- Description
- The course emphasizes the general principles of image processing which includes data structures, algorithms, and analysis and modeling techniques used in modern imaging systems, digital image processing, and low-level computer vision. Topics include image sources, computer representation of images and formats, operations on images, and image analysis.

# CSCI-B 456 IMAGE PROCESSING

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 457 Introduction to Computer Vision

- Credits
- 3
- Prerequisites
- CSCI-B 351 or CSCI-C 343
- Description
- In this course, the students will learn fundamental computer vision algorithms as well as basic machine learning frameworks necessary for automated understanding of images and videos. Topics will include object recognition from images, activity/event recognition from videos, scene segmentation and clustering, motion and tracking, deep learning for images and videos.

# CSCI-B 457 INTRODUCTION TO COMPUTER VISION

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 461 DATABASE CONCEPTS

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 461 Database Concepts

- Credits
- 3
- Prerequisites
- CSCI-C 241 and CSCI-C 343
- Description
- Introduction to database concepts and systems. Topics include database models and systems: hierarchical, network, relational, and object-oriented; database design principles; structures for efficient data access; query languages and processing; database applications development; views; security; concurrency; recovery. Students participate in a project to design, implement, and query a database, using a standard database system.
- Repeatability
- Credit given for only one of CSCI-B 461 or CSCI-B 561.

# CSCI-B 471 NUMERICAL ANALYSIS I

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 472 NUMERICAL ANALYSIS II

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 481 INTERACTIVE GRAPHICS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 481 Interactive Graphics

- Credits
- 4
- Prerequisites
- CSCI-C 343; and MATH-M 301 or MATH-M 303
- Description
- Computer graphics techniques. Introduction to graphics hardware and software. Two-dimensional graphics methods, transformations, and interactive methods. Three-dimensional graphics, transformations, viewing geometry, object modeling, and interactive manipulation methods. Basic lighting and shading. Video and animation methods.
- Repeatability
- Credit given for only one of CSCI-B 481 or CSCI-B 581.

# CSCI-B 490 SEMINAR IN COMPUTER SCIENCE

- Credits
- 1–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-B 490 Seminar in Computer Science

- Credits
- 1–4 credit hours
- Prerequisites
- None
- Description
- Special topics in computer science.
- Repeatability
- May be repeated for a maximum of 8 credit hours.

# CSCI-C 301 FORTRAN PROGRAMMING

- Credits
- 1–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 302 PASCAL PROGRAMMING

- Credits
- 1–1 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 303 COBOL PROGRAMMING

- Credits
- 1–1 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 304 C PROGRAMMING

- Credits
- 1–1 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 306 OBJECT ORIENTED PROGRAMMING

- Credits
- 1–1 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 307 APPLIED PROGRAMMING TECHNIQUES

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 308 SYSTEM ANALYSIS AND DESIGN

- Credits
- 1–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 311 Programming Languages

- Credits
- 4
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Systematic approach to programming languages. Relationships among languages, properties and features of languages, and the computer environment necessary to use languages. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 596, CSCI-B 521, CSCI-C 311, or CSCI-H 311.

# CSCI-C 311 PROGRAMMING LANGUAGES

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 322 Object-Oriented Software Methods

- Credits
- 4
- Prerequisites
- CSCI-C 212
- Description
- Design and implementation of complex software systems and applications exploiting the object-oriented paradigm. Selection and effective utilization of object-oriented libraries and interfaces.

# CSCI-C 322 OBJECT-ORIENTED SOFTWARE METHODS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 323 Mobile App Development

- Credits
- 3
- Prerequisites
- CSCI-C 212
- Description
- This course focuses on development of mobile applications for modern platforms and introduces common tools and languages used. The course will emphasize the app development cycle: application design, development, testing, publishing and distribution; development tools and emulators/simulators; user interface layout; using sensors including touch, geo-location and orientation; and data management.

# CSCI-C 323 MOBILE APP DEVELOPMENT

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 335 Computer Structures

- Credits
- 4
- Prerequisites
- CSCI-C 212, CSCI-C 241, and CSCI-C 291
- Description
- Structure and internal operation of computers. The architecture and assembly language programming of a specific computer are stressed, in addition to general principles of hardware organization and low-level software systems. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 335 or CSCI-H 335.

# CSCI-C 335 COMPUTER STRUCTURES

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 341 FUNDAMENTALS OF COMPUTING THEORY

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 343 Data Structures

- Credits
- 4
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structured data, and techniques for operating on data structures. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 343 or CSCI-H 343.

# CSCI-C 343 DATA STRUCTURES

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 390 INDIVIDUAL PROGRAMMING LAB

- Credits
- 1–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 391 PROJECT IN PROFESSIONAL PRACTICE

- Credits
- 3–6 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 422 DIGITAL HARDWARE DESIGN II

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 428 COMPUTER ARCHITECTURE

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 431 ASSEMBLERS AND COMPILERS 1

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 432 ASSEMBLERS AND COMPILERS 2

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 435 OPERATING SYSTEMS 1

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 436 OPERATING SYSTEMS 2

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 445 INFORMATION SYSTEMS I

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 446 INFORMATION SYSTEMS II

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 451 AUTOMATA AND FORMAL GRAMMARS

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 452 THEORY OF COMPUTABILITY

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 455 ANALYSIS OF ALGORITHMS I

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 460 SENIOR PROJECT I

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 463 ARTIFICIAL INTELLIGENCE I

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 464 ARTIFICIAL INTELLIGENCE II

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 470 SENIOR PROJECT II

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 482 IMAGE SYNTHESIS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-C 490 SEMINAR IN COMPUTER SCIENCE

- Credits
- 1–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-H 311 Programming Languages, Honors

- Credits
- 4
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Honors version of CSCI-C 311. Systematic approach to programming languages. Relationships among languages, properties and features of languages, and the computer environment necessary to use languages. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-A 596, CSCI-B 521, CSCI-C 311, or CSCI-H 311.

# CSCI-H 311 PROGRAMMING LANGUAGES HONORS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-H 335 Computer Structures, Honors

- Credits
- 4
- Prerequisites
- CSCI-C 212, CSCI-C 241, and CSCI-C 291
- Description
- Honors version of CSCI-C 335. Structure and internal operation of computers. The architecture and assembly language programming of a specific computer are stressed, in addition to general principles of hardware organization and low-level software systems. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 335 or CSCI-H 335.

# CSCI-H 335 COMPUTER STRUCTURES HONORS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-H 343 Data Structures, Honors

- Credits
- 4
- Prerequisites
- CSCI-C 212, CSCI-C 241 and CSCI-C 291
- Description
- Honors version of CSCI-C 343. Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structured data, and techniques for operating on data structures. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-C 343 or CSCI-H 343.

# CSCI-H 343 DATA STRUCTURES, HONORS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-H 498 Undergraduate Honors Seminar

- Credits
- 1–3 credit hours
- Prerequisites
- Junior or senior major in computer science or informatics with a GPA of at least 3.3; or consent of instructor
- Description
- A survey of faculty research in computer related fields with different professors discussing their research each week.
- Repeatability
- May be repeated for a maximum of 6 credit hours.

# CSCI-H 498 UNDERGRADUATE HONORS SEMINAR

- Credits
- 1–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 415 Introduction to Verification

- Credits
- 3
- Prerequisites
- CSCI-C 311
- Description
- Tools and techniques for rigorous reasoning about software and digital hardware. Safety, reliability, security, and other design-critical applications. Decision algorithms. Projects involving the use of automated reasoning, such as model checkers, theorem provers, and program transformation.
- Repeatability
- Credit given for only one of CSCI-P 415 or CSCI-P 515.

# CSCI-P 415 INTRODUCTION TO VERIFICATION

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 423 Compilers

- Credits
- 4
- Prerequisites
- CSCI-C 311
- Description
- Compiler design and construction, including lexical analysis, parsing, code generation, and optimization. Extensive laboratory exercises.
- Repeatability
- Credit given for only one of CSCI-P 423, CSCI-P 523, ENGR-E 313, or ENGR-E 513.

# CSCI-P 423 COMPILERS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 424 Advanced Functional Programming

- Credits
- 4
- Prerequisites
- CSCI-C 311
- Description
- This course teaches advanced techniques for functional programming, which can be used to make programs easier to read and compose. These techniques include equational reasoning, types, monads, and code generation. Some of them are useful even when using a "non-functional" language. Some of them are drawn from cutting-edge research.

# CSCI-P 424 ADVANCED FUNCTIONAL PROGRAMMING

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 434 Distributed Systems

- Credits
- 4
- Prerequisites
- CSCI-C 343
- Description
- Principles of distributed systems including system design, distributed algorithms, consistency and concurrency, and reliability and availability. The role of these foundational issues in distributed file systems, distributed computing, and data-driven systems.
- Repeatability
- Credit given for only one of CSCI-B 534, CSCI-P 434, ENGR-E 410, or ENGR-E 510.

# CSCI-P 434 DISTRIBUTED SYSTEMS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 436 Introduction to Operating Systems

- Credits
- 4
- Prerequisites
- CSCI-C 335 and CSCI-C 343
- Description
- Organization and construction of computer systems and manage computational resources. Topics include specification and implementation of concurrency, process scheduling, storage management, device handlers, and mechanisms for event coordination. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-P 436, CSCI-P 536, ENGR-E 316, or ENGR-E 519.

# CSCI-P 436 INTRODUCTION TO OPERATING SYSTEMS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 438 Introduction to Computer Networks

- Credits
- 4
- Prerequisites
- CSCI-C 335
- Description
- Foundations of computer networks. Networking hardware technology such as Ethernet, ATM, wireless. Networking protocols (TCP/IP) routing, error correcting. Network services such as DNS, Web servers, virtual private networks (VPN), open SSL.
- Repeatability
- Credit given for only one of CSCI-P 438, CSCI-P 538, or ENGR-E 318.

# CSCI-P 438 INTRODUCTION TO COMPUTER NETWORKS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 442 Digital Systems

- Credits
- 4
- Prerequisites
- CSCI-B 441
- Description
- Elements of computer architecture construction of hardware systems, emphasizing combination of components to form systems, and applications of general principles of computing to digital implementation. Lecture and laboratory.
- Repeatability
- Credit given for only one of CSCI-P 442 or CSCI-P 542.

# CSCI-P 442 DIGITAL SYSTEMS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 462 Database Application Design and Implementation

- Credits
- 3
- Prerequisites
- CSCI-B 461
- Description
- This course deals with practical issues in the design and implementation of database application systems. Topics include database modeling design, query languages, communication with data, transaction management, concurrency control techniques, security, database design procedures, and some advanced database applications, such as data warehousing, data mining, semi-structured data and semantic web.

# CSCI-P 462 DATABASE APPLICATION DESIGN AND IMPLEMENTATION

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 465 Software Engineering for Information Systems I

- Credits
- 3
- Prerequisites
- CSCI-C 343
- Description
- Analysis design, and implementation of information systems. Project specification. Data modeling. Software design methodologies. Software quality assurance. Supervised team development of a real system for a real client.
- Repeatability
- Credit not given for both CSCI-P 465 and CSCI-P 565.

# CSCI-P 465 SOFTWARE ENGINEERING FOR INFORMATION SYSTEMS I

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-P 466 Software Engineering for Information Systems II

- Credits
- 3
- Prerequisites
- CSCI-B 461 and CSCI-C 343
- Description
- Analysis design, and implementation or information systems. Project specification. Data modeling. Software design methodologies. Software quality assurance. Supervised team development of a real system for a real client.
- Repeatability
- Credit given for only one of CSCI-P 466 or CSCI-P 566.

# CSCI-P 466 SOFTWARE ENGINEERING FOR INFORMATION SYSTEMS II

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-Y 331 DIGITAL SYSTEMS

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-Y 390 Undergraduate Independent Study

- Credits
- 1–3 credit hours
- Prerequisites
- Consent of instructor
- Description
- Independent research based on existing literature or original work. A report, in the style of a departmental technical report, is required.
- Repeatability
- May be repeated for a maximum of 6 credit hours of any combination of CSCI-Y 390, CSCI-Y 391, CSCI-Y 399, and CSCI-Y 499.

# CSCI-Y 390 UNDERGRADUATE INDEPENDENT STUDY

- Credits
- 1–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-Y 391 Undergraduate Independent System Development

- Credits
- 1–3 credit hours
- Prerequisites
- Consent of instructor
- Description
- The student designs, programs, verifies, and documents a project assignment. Prior to enrolling, the student must arrange for an instructor to supervise the course activity.
- Repeatability
- May be repeated for a maximum of 6 credit hours of any combination of CSCI-Y 390, CSCI-Y 391, CSCI-Y 399, and CSCI-Y 499.

# CSCI-Y 391 UNDERGRADUATE INDEPENDENT SYSTEM DEVELOPMENT

- Credits
- 1–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-Y 395 Career Development for CSCI Majors

- Credits
- 1
- Prerequisites
- None
- Description
- Develop skills and knowledge that enable you to successfully pursue your career search, both at the time of graduation and later as you progress through your career. The course covers techniques and strategies which make your job search more efficient and effective.
- Repeatability
- Credit given for only one of CSCI-Y 395 or INFO-Y 395.

# CSCI-Y 395 CAREER DEVELOPMENT FOR CSCI MAJORS

- Credits
- 1–1 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-Y 399 Project in Professional Practice

- Credits
- 3
- Prerequisites
- CSCI-C 343; and one other computer science major course of 300-level or above; and approval of department
- Description
- The student designs, programs, verifies, and documents a project assignment selected in consultation with an employer and the department.
- Repeatability
- May be repeated for a maximum of 6 credit hours of any combination of CSCI-Y 390, CSCI-Y 391, CSCI-Y 399, and CSCI-Y 499.

# CSCI-Y 399 PROJECT IN PROFESSIONAL PRACTICE

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-Y 499 Honors Research

- Credits
- 1–12 credit hours
- Prerequisites
- Approval of departmental honors committee
- Description

# CSCI-Y 499 HONORS RESEARCH

- Credits
- 1–6 credit hours
- Prerequisites
- None
- Description
- None

# INFO-H 494 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# INFO-H 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEMS

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# INFO-I 494 DESIGN AND IMPLEMENTATION OF AN INFORMATION SYSTEM (PART I)

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# INFO-I 495 DESIGN AND DEVELOPMENT OF AN INFORMATION SYSTEM

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# MATH-M 471 Numerical Analysis I

- Credits
- 3
- Prerequisites
- MATH-M 301, MATH-M 303, or MATH-S 303; and MATH-M 311 or MATH-S 311; and MATH-M 343 or MATH-S 343
- Notes
- Knowledge of a computer language such as FORTRAN, C, C++, etc., is essential for success in this course. Students with other programming backgrounds should consult the instructor
- Description
- Interpolation and approximation of functions, numerical integration and differentiation, solution of nonlinear equations, acceleration and extrapolation, solution of systems of linear equations, eigenvalue problems, initial and boundary value problems for ordinary differential equations, and computer programs applying these numerical methods.

# MATH-M 472 Numerical Analysis II

- Credits
- 3
- Prerequisites
- MATH-M 301, MATH-M 303, or MATH-S 303; and MATH-M 311 or MATH-S 311; and MATH-M 343 or MATH-S 343
- Notes
- Knowledge of a computer language such as FORTRAN, C, C++, etc., is essential for success in this course. Students with other programming backgrounds should consult the instructor.
- Description
- Interpolation and approximation of functions, numerical integration and differentiation, solution of nonlinear equations, acceleration and extrapolation, solution of s of linear equations, eigenvalue problems, initial and boundary value problems for ordinary differential equations, and computer programs applying these numerical methods.

**Addenda Requirements*.****Mathematical Foundations.**One (1) course:- MATH-M 118 Finite Mathematics
- MATH-M 211 Calculus I
- MATH-S 118 Honors Finite Mathematics
- MATH-S 211 Honors Calculus I
- MATH-V 118 Finite Mathematics with Applications

# MATH-M 118 Finite Mathematics

- Credits
- 3
- Prerequisites
- None
- Notes
- R: To be successful, students will demonstrate mastery of two years of high school algebra as indicated by an appropriate ALEKS score or completion of MATH-M 014, MATH-M 018, or MATH-J 111
- Description
- Sets, counting, basic probability, including random variables and expected values. Linear systems, matrices, linear programming, and applications.
- Repeatability
- Credit given for only one of MATH-A 118, MATH-M 118, MATH-S 118, MATH-V 118; or MATH-D 116 and MATH-D 117.

- Fall 2023CASE MMcourse

- Fall 2023CASE NMcourse

# MATH-M 211 Calculus I

- Credits
- 4
- Prerequisites
- None
- Notes
- R: To be successful, students will demonstrate mastery of two years of high school algebra, one year of high school geometry, and pre-calculus, and trigonometry as indicated by an appropriate ALEKS score or completion of MATH-M 027
- Description
- Limits, continuity, derivatives, definite and indefinite integrals, applications.
- Repeatability
- A student may receive credit for only one of the following: MATH-J 113, MATH-M 119, MATH-V 119, MATH-M 211, or MATH-S 211.

- Fall 2023CASE MMcourse

- Fall 2023CASE NMcourse

# MATH-S 118 Honors Finite Mathematics

- Credits
- 3
- Prerequisites
- Hutton Honors College membership
- Notes
- R: To be successful students will demonstrate mastery of two years of high school algebra as indicated by an appropriate ALEKS score or completion of MATH-M 014, MATH-M 018, or MATH-J 111
- Description
- Designed for students of outstanding ability in mathematics. Covers all material of MATH-M 118 and additional topics from statistics and game theory. Computers may be used in this course, but no previous experience is assumed.

- Fall 2023CASE MMcourse

- Fall 2023CASE NMcourse

# MATH-S 211 Honors Calculus I

- Credits
- 4
- Prerequisites
- Hutton Honors College membership or consent of department
- Notes
- R: To be successful, students will demonstrate mastery of two years of high school algebra, one year of high school geometry, and pre-calculus and trigonometry as indicated by an appropriate ALEKS score or completion of MATH-M 027
- Description
- Designed for students of outstanding ability, who are considering further study in mathematics. Limits, continuity, derivatives, definite and indefinite integrals, applications, with emphasis placed on theory.
- Repeatability
- Credit given for only one of MATH-J 113, MATH-M 119, MATH-M 211, MATH-S 211, or MATH-V 119.

- Fall 2023CASE MMcourse

- Fall 2023CASE NMcourse

# MATH-V 118 Finite Mathematics with Applications

- Credits
- 3
- Prerequisites
- None
- Notes
- R: To be successful, students will demonstrate mastery of two years of high school algebra as indicated by an appropriate ALEKS score or completion of MATH-M 014, MATH-M 018, or MATH-J 111
- Description
- Sets, counting, basic probability, linear modelling, and other discrete topics. Applications to various areas depending on topic. Possibilities include social and biological sciences and consumer mathematics.
- Repeatability
- Credit given for only one of MATH-A 118, MATH-M 118, MATH-S 118, MATH-V 118; or MATH-D 116 and MATH-D 117.

- Fall 2023CASE NMcourse

**Mathematical Science Elective.**One (1) course:- Additional course from the Mathematical Foundations list
- MATH-M 212 Calculus II
- MATH-M 213
- MATH-M 301 Linear Algebra and Applications
- MATH-M 303 Linear Algebra for Undergraduates
- MATH-M 311 Calculus III
- MATH-M 312 Calculus IV
- MATH-M 343 Introduction to Differential Equations with Applications I
- MATH-M 371 Elementary Computational Methods
- MATH-M 384 Logic
- MATH-M 391 Introduction to Mathematical Reasoning
- MATH-M 405 Number Theory
- MATH-M 409 Linear Transformations
- MATH-S 212 Honors Calculus II
- MATH-S 311 Honors Course in Calculus III
- MATH-S 312 Honors Course in Calculus IV
- MATH-S 343 Honors Course in Differential Equations
- PHIL-P 250 Introductory Symbolic Logic
- PHIL-P 251 Intermediate Symbolic Logic
- PHIL-P 350 Logic of Sets
- PHIL-P 352 Logic and Philosophy

# MATH-M 212 Calculus II

- Credits
- 4
- Prerequisites
- MATH-M 211 or MATH-S 211; or consent of department
- Description
- Techniques of integration (by parts, trigonometric substitutions, partial fractions), improper integrals, volume, work, arc length, surface area, infinite series.
- Repeatability
- Credit given for only one of MATH-M 120 or MATH-M 212.

- Fall 2023CASE NMcourse

# MATH-M 301 Linear Algebra and Applications

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212; or MATH-M 211 and CSCI-C 241; or MATH-S 211 and CSCI-C 241
- Description
- Solving systems of linear equations, matrix algebra, determinants, vector spaces, eigenvalues and eigenvectors. Selection of advanced topics. Applications throughout. Computer used for theory and applications.
- Repeatability
- Credit given for only one of MATH-M 301 or MATH-M 303.

- Fall 2023CASE NMcourse

# MATH-M 303 Linear Algebra for Undergraduates

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212; or MATH-M 211 and CSCI-C 241; or MATH-S 211 and CSCI-C 241
- Description
- Introduction to the theory of real vector spaces. Coordinate s, linear dependence, bases. Linear transformations and matrix calculus. Determinants and rank. Eigenvalues and eigenvectors.
- Repeatability
- Credit given for only one of MATH-M 301, MATH-M 303, or MATH-S 303.

- Fall 2023CASE NMcourse

# MATH-M 311 Calculus III

- Credits
- 4
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Elementary geometry of 2, 3, and n-space; functions of several variables; partial differentiation; minimum and maximum problems; multiple integration.

- Fall 2023CASE NMcourse

# MATH-M 312 Calculus IV

- Credits
- 3
- Prerequisites
- MATH-M 311 or MATH-S 311
- Description
- Differential calculus of vector-valued functions, transformation of coordinates, change of variables in multiple integrals. Vector integral calculus: line integrals, Green\'s theorem, surface integrals, Stokes\' theorem. Applications.
- Repeatability
- Credit given for only one of MATH-M 312 or MATH-S 312.

# MATH-M 343 Introduction to Differential Equations with Applications I

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Notes
- R: MATH-M 301, MATH-M 303, or MATH-S 303
- Description
- Ordinary differential equations and methods for their solution, including series methods and the Laplace transform. Applications of differential equations. s, stability, and numerical methods. Partial differential equations of mathematical physics, Fourier series.
- Repeatability
- Credit given for only one of MATH-M 343 or MATH-S 343.

- Fall 2023CASE NMcourse

# MATH-M 371 Elementary Computational Methods

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Interpolation and approximation of functions, solution of equations, numerical integration and differentiation. Errors, convergence, and stability of the procedures. Students write and use programs applying numerical methods.

- Fall 2023CASE NMcourse

# MATH-M 384 Logic

- Credits
- 3
- Prerequisites
- CSCI-C 241, MATH-M 303, or MATH-S 303
- Description
- Construction and study of formal mathematical languages. Definitions of, and relationships between, the notions of truth and provability of a formal sentence. Proof systems for logical systems such as propositional logic and syllogistic logic. Soundness, completeness, and decidability.

- Fall 2023CASE NMcourse

# MATH-M 391 Introduction to Mathematical Reasoning

- Credits
- 3
- Prerequisites
- (A) MATH-M 212, MATH-M 213, or MATH-S 212; or CSCI-C 241 and MATH-M 211; or CSCI-C 241 and MATH-S 211; and (B) MATH-M 301, MATH-M 303, or MATH-S 303
- Notes
- Recommended for students with insufficient background for 400-level courses and for students in education
- Description
- Elementary logic, techniques of proof, basic set theory, functions, relations, binary operations, number systems, counting. Bridges the gap between elementary and advanced courses.
- Repeatability
- Not open to students who have received credit for MATH-M 403, MATH-M 413, or MATH-M 420.

- Fall 2023CASE NMcourse

# MATH-M 405 Number Theory

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Numbers and their representation, divisibility and factorization, primes and their distribution, number theoretic functions, congruences, primitive roots, diophantine equations, quadratic residues, sums of squares.

# MATH-M 409 Linear Transformations

- Credits
- 3
- Prerequisites
- MATH-M 301, MATH-M 303, or MATH-S 303
- Description
- The study of linear transformations on a finite dimensional vector space over the complex field. Canonical forms, similarity theory; inner products and diagonalization of normal transformations.

# MATH-S 212 Honors Calculus II

- Credits
- 4
- Prerequisites
- MATH-S 211 or consent of department
- Description
- Includes material of MATH-M 212 and supplemental topics. Designed for students of outstanding ability in mathematics.
- Repeatability
- Credit given for only one of MATH-M 120, MATH-M 212, or MATH-S 212.

- Fall 2023CASE NMcourse

# MATH-S 311 Honors Course in Calculus III

- Credits
- 4
- Prerequisites
- MATH-S 212 or consent of instructor; and MATH M-301, MATH M-303, or MATH S-303
- Description
- Honors version of MATH-M 311, covering geometry of 2, 3, and n-space; functions of several variables; partial differentiation; minimum and maximum problems; and multiple integration. For students with unusual aptitude and motivation.
- Repeatability
- Credit given for only one of MATH-M 311 or MATH-S 311.

- Fall 2023CASE NMcourse

# MATH-S 312 Honors Course in Calculus IV

- Credits
- 3
- Prerequisites
- MATH-S 311 or consent of instructor
- Description
- For students with unusual aptitude and motivation.
- Repeatability
- Credit given for only one of MATH-M 312 or MATH-S 312.

# MATH-S 343 Honors Course in Differential Equations

- Credits
- 3
- Prerequisites
- MATH-S 212 or consent of instructor
- Description
- Introduction, with historical examples, first order ordinary differential equations (ODEs) and applications, second order linear ODEs, linear ODEs of higher order, series solutions to linear ODEs, and numerical methods for ODEs. In addition, some theoretical aspects will be studied in detail such as the Picard existence/uniqueness theorem for initial-value problems, convergence of series solutions, and the matrix exponential exp(tA).

- Fall 2023CASE NMcourse

# PHIL-P 250 Introductory Symbolic Logic

- Credits
- 3
- Prerequisites
- None
- Description
- Propositional logic and first-order quantificational logic.
- Repeatability
- No credit for PHIL-P 150 if PHIL-P 250 taken first or concurrently.

- Fall 2023CASE NMcourse

# PHIL-P 251 Intermediate Symbolic Logic

- Credits
- 3
- Prerequisites
- PHIL-P 250 or consent of instructor
- Description
- Identity, definite descriptions, properties of formal theories, elementary set theory.

- Fall 2023CASE NMcourse

# PHIL-P 350 Logic of Sets

- Credits
- 3
- Prerequisites
- PHIL-P 250 or consent of instructor
- Description
- Elementary operations on sets, relations, functions, orderings, introduction to ordinal and cardinal numbers.

# PHIL-P 352 Logic and Philosophy

- Credits
- 3
- Prerequisites
- PHIL-P 250 or consent of instructor
- Description
- Relation of logic to other areas of philosophy. Selected topics from among the following: logic and ontology; logic and language; logic, reasoning, and belief; intentionality and intentional logic; tense and modal logic; individuation, reference, identity.

- Fall 2023CASE AHcourse

**Additional Elective.**One (1) course:- Additional course from the Mathematical Science Elective list
- CSCI-B 401 Fundamentals of Computing Theory (
*Note:*This course will count toward the Major Hours and Major GPA requirements) - CSCI-B 403 Introduction to Algorithm Design and Analysis (
*Note:*This course will count toward the Major Hours and Major GPA requirements) - CSCI-P 415 Introduction to Verification (
*Note:*This course will count toward the Major Hours and Major GPA requirements) - ECON-E 370 Statistical Analysis for Business and Economics
- MATH-M 365 Introduction to Probability and Statistics
- STAT-S 320 Introduction to Statistics

# CSCI-B 401 Fundamentals of Computing Theory

- Credits
- 3
- Prerequisites
- CSCI-C 212 and CSCI-C 241
- Description
- Fundamentals of formal language theory, computation models and computability, the limits of computability and feasibility, and program verification.

# CSCI-B 403 Introduction to Algorithm Design and Analysis

- Credits
- 3
- Prerequisites
- CSCI-C 241, CSCI-C 343 and MATH-M 216 or MATH-M 212
- Description
- Algorithm design methodology. General methods for analysis of algorithms. Analysis of the performance of specific algorithms, such as those for searching and sorting.
- Repeatability
- Credit give for only one of CSCI-B 403 or CSCI-B 503.

# CSCI-P 415 Introduction to Verification

- Credits
- 3
- Prerequisites
- CSCI-C 311
- Description
- Tools and techniques for rigorous reasoning about software and digital hardware. Safety, reliability, security, and other design-critical applications. Decision algorithms. Projects involving the use of automated reasoning, such as model checkers, theorem provers, and program transformation.
- Repeatability
- Credit given for only one of CSCI-P 415 or CSCI-P 515.

# ECON-E 370 Statistical Analysis for Business and Economics

- Credits
- 3
- Prerequisites
- MATH-M 118, MATH-S 118, or MATH-V 118
- Notes
- R: ECON-E 252 or ECON-B 252 and MATH-M 119
- Description
- Lectures emphasize the use of basic probability concepts and statistical theory in the estimation and testing of single parameter and multivariate relationships. In computer labs, using Microsoft Excel, each student calculates descriptive statistics, probabilities, and least squares regression coefficients in situations based on current business and economic events.
- Repeatability
- Credit given for only one of ANTH-A 306, CJUS-K 300, ECON-E 370, ECON-S 370, MATH-K 300, MATH-K 310, POLS-Y 395, PSY-K 300, PSY-K 310, SOC-S 371, SPEA-K 300, SPH-Q 381, STAT-K 310, STAT-S 300, STAT-S 301, or STAT-S 303.

- Fall 2023CASE NMcourse

# MATH-M 365 Introduction to Probability and Statistics

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-M 213, or MATH-S 212
- Description
- Elementary concepts of probability and statistics. Combinatorics, conditional probability, independence, random variables, discrete and continuous distributions, moments. Statistical inference, point estimation, confidence intervals, test of hypotheses. Applications to social, behavioral, and natural sciences.
- Repeatability
- Credit given for only one of MATH-M 360 or MATH-M 365.

- Fall 2023CASE NMcourse

# STAT-S 320 Introduction to Statistics

- Credits
- 3
- Prerequisites
- MATH-M 212, MATH-S 212, MATH-M 301, MATH-M 303, or MATH-S 303
- Description
- Basic concepts of data analysis and statistical inference, applied to 1-sample and 2-sample location problems, the analysis of variance, and linear regression. Probability models and statistical methods applied to practical situations using actual data sets from various disciplines.
- Repeatability
- Credit given for only one of STAT-S 320 or STAT-S 350.

- Fall 2023CASE NMcourse

**Major GPA, Hours, and Minimum Grade Requirements.****Major GPA.**A GPA of at least 2.000 for all courses taken in the major—including those where a grade lower than C- is earned—is required.**Major Minimum Grade.**Except for the GPA requirement, a grade of C- or higher is required for a course to count toward a requirement in the major.**Major Upper Division Credit Hours.**At least 18 credit hours in the major must be completed at the 300–499 level.**Major Residency.**At least 18 credit hours in the major must be completed in courses taken through the Indiana University Bloomington campus or an IU-administered or IU co-sponsored Overseas Study program.**College Breadth.**At least 58 credit hours must be completed in courses from College of Arts and Sciences disciplines outside of the major area.

##### Major Area Courses

Unless otherwise noted below, the following courses are considered in the academic program and will count toward academic program requirements as appropriate:

- Any course at the 100-499 level with the
`CSCI`

subject area prefix--as well as any other subject areas that are deemed functionally equivalent - Any course contained on the course lists for the academic program requirements at the time the course is taken--as well as any other courses that are deemed functionally equivalent--except for those listed only under Addenda Requirements
- Any course directed to a non-Addenda requirement through an approved exception

The above courses cannot be applied toward the College Breadth requirement in the major.

##### Exclusions

The following courses cannot be applied toward major requirements or the College Breadth requirement:

- CSCI-C 101
- CSCI-C 308 SYSTEM ANALYSIS AND DESIGN
- CSCI-C 405
- CSCI-A 106 INTRODUCTION TO COMPUTING
- CSCI-A 107 ADVANCED MICROCOMPUTING
- CSCI-A 110 INTRODUCTION TO COMPUTERS AND COMPUTING
- CSCI-A 111 A SURVEY OF COMPUTERS AND COMPUTING
- CSCI-A 112 PROGRAMMING CONCEPTS
- CSCI-A 113 DATA ANALYSIS USING SPREADSHEETS
- CSCI-A 114 INTRODUCTION TO DATABASES
- CSCI-A 116 MULTIMEDIA COMMUNICATIONS
- CSCI-A 148 WORKING THE WORLD WIDE WEB
- CSCI-A 200 COMPUTER LITERACY
- CSCI-A 201 INTRODUCTION TO PROGRAMMING I
- CSCI-A 202 INTRODUCTION TO PROGRAMMING II
- CSCI-A 216 DIGITAL MULTIMEDIA CONCEPTS AND TECHNOLOGIES
- CSCI-A 247 NETWORK TECHNOLOGIES AND ADMINISTRATION
- CSCI-A 290 TOOLS FOR COMPUTING
- CSCI-A 301 FORTRAN PROGRAMMING
- CSCI-A 304 INTRODUCTORY C++ PROGRAMMING
- CSCI-A 306 OBJECT-ORIENTED PROGRAMMING IN C++
- CSCI-A 310 PROBLEM SOLVING USING DATA
- CSCI-A 321 COMPUTING TOOLS FOR SCIENTIFIC RESEARCH
- CSCI-A 338 NETWORK TECHNOLOGIES AND SYSTEMS ADMINISTRATION
- CSCI-A 346 USER-INTERFACE PROGRAMMING
- CSCI-A 348 MASTERING THE WORLD WIDE WEB

# CSCI-C 308 SYSTEM ANALYSIS AND DESIGN

- Credits
- 1–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 106 INTRODUCTION TO COMPUTING

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 107 ADVANCED MICROCOMPUTING

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 110 INTRODUCTION TO COMPUTERS AND COMPUTING

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 111 A SURVEY OF COMPUTERS AND COMPUTING

- Credits
- 1.5–1.5 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 112 PROGRAMMING CONCEPTS

- Credits
- 1.5–1.5 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 113 DATA ANALYSIS USING SPREADSHEETS

- Credits
- 1.5–1.5 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 114 INTRODUCTION TO DATABASES

- Credits
- 1.5–1.5 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 116 MULTIMEDIA COMMUNICATIONS

- Credits
- 1.5–1.5 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 148 WORKING THE WORLD WIDE WEB

- Credits
- 1–1 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 200 COMPUTER LITERACY

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 201 INTRODUCTION TO PROGRAMMING I

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 202 INTRODUCTION TO PROGRAMMING II

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 216 DIGITAL MULTIMEDIA CONCEPTS AND TECHNOLOGIES

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 247 NETWORK TECHNOLOGIES AND ADMINISTRATION

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 290 TOOLS FOR COMPUTING

- Credits
- 1–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 301 FORTRAN PROGRAMMING

- Credits
- 0–2 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 304 INTRODUCTORY C++ PROGRAMMING

- Credits
- 2–2 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 306 OBJECT-ORIENTED PROGRAMMING IN C++

- Credits
- 2–2 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 310 PROBLEM SOLVING USING DATA

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 321 COMPUTING TOOLS FOR SCIENTIFIC RESEARCH

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 338 NETWORK TECHNOLOGIES AND SYSTEMS ADMINISTRATION

- Credits
- 4–4 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 346 USER-INTERFACE PROGRAMMING

- Credits
- 3–3 credit hours
- Prerequisites
- None
- Description
- None

# CSCI-A 348 MASTERING THE WORLD WIDE WEB

- Credits
- 3–4 credit hours
- Prerequisites
- None
- Description
- None

##### Restrictions

The following restrictions apply to the minimum credit hours required in the major:

- No more than 1 credit hour of either of the following may be counted toward the major:
- CSCI-H 498 Undergraduate Honors Seminar
- CSCI-Y 395 Career Development for CSCI Majors

This program of study cannot be combined with the following:

- [Discontinued credential name unavailable] (CSCIMIN)

The Bachelor of Arts degree requires at least 120 credit hours, to include the following:

**College of Arts and Sciences Credit Hours.**At least 100 credit hours must come from College of Arts and Sciences disciplines.**Upper Division Courses.**At least 42 credit hours (of the 120) must be at the 300–499 level.**College Residency.**Following completion of the 60th credit hour toward degree, at least 36 credit hours of College of Arts and Sciences coursework must be completed through the Indiana University Bloomington campus or an IU-administered or IU co-sponsored Overseas Study program.**College GPA.**A College grade point average (GPA) of at least 2.000 is required.**CASE Requirements.**The following College of Arts and Sciences Education (CASE) requirements must be completed:- CASE Foundations
- CASE Breadth of Inquiry
- CASE Culture Studies
- CASE Critical Approaches: 1 course
- CASE Foreign Language: Proficiency in a single foreign language through the second semester of the second year of college-level coursework
- CASE Intensive Writing: 1 course
- CASE Public Oral Communication: 1 course

**Major.**Completion of the major as outlined in the Major Requirements section above.

Most students must also successfully complete the Indiana University Bloomington General Education program.