Requirements + Courses

Students are required to take five AIMS courses. AIMS 3710 and AIMS 4797 are required courses, whereas the other courses are electives. Students take AIMS 3710 as the first course, while AIMS 4797, the capstone course, is taken as the last course.

Students electing the B.S. in AIMS degree must complete all the requirements of the B.B.A. degree in addition to four Computer Science courses (12 units). 

Both a B.B.A. and B.S. in AIMS require that all students take:

BADM 1030 Information Technology in Organization

AIMS 2710 Management Information Systems

AIMS 3770 Production Operations Analysis

AIMS 3710 Database Management Systems

AIMS 4797 Capstone Project

AIMS 3730 Programming for Business Applications + two AIMS electives
OR
CMSI 185 Computer Programming + three AIMS electives

View a List of Required Courses for AIMS Major

AIMS Course Descriptions

  • AIMS 3710 Database Management Systems (Required)

    The course provides an introduction to the fundamental principles of database design—from data modeling to the actual implementation of a business application. Particular emphasis is placed on the relational model, which is the basis for the most popular database products on the marketplace today.

  • AIMS 3720 Systems Analysis and Design

    This course presents a rigorous approach to information analysis essential to information systems design. Emphasizes the formalization of the information systems design process and explores relevant state-of-the-art techniques.

  • AIMS 3730 Programming for Business Applications

    This course is an introducation to programming with an emphasis on its business application capability. Students learn the basic techniques of programming from concepts to code. The objectives of this course are: making students comfortable with fundamental programming terminology and concepts, including data type, input/output, control statements methods, arrays, strings and files; giving students hands-on practical experience with modeling and problem solving; and illustrating to students how such models are translated into working business applications.

  • AIMS 4720 Object-Oriented Programming

    This course teaches the object-oriented approach to programming using a popular object-oriented programming language such as C++ or Java.

  • AIMS 4730 Business Data Communications

    This course is an introduction to the use of data communications and other automation systems in the business environment, including the study of local and wide area networks, voice and electronic mail, video conferencing, and other automation tools in support of management.

  • AIMS 4740 Financial Modeling for Decision Support

    This course introduces spreadsheet modeling skills and advanced quantitative analysis tools to support financial decision-making. Students gain hands-on experience in the development of a spreadsheet in such areas as forecasting, simulation, and optimization models for solving a variety of business problems.

  • AIMS 4750 Web-based Development

    This course introduces students to web-based development using various web design and development software as well as programming languages. The emphasis is on the business use of the web and its integration with business strategy and activities along with developing skills in creating effective websites. The course teaches students the basics of web development and introduces them to the mobile web and mobile application development. Students will also learn about the current developments taking place in this area.

  • AIMS 4760 Analytics and Business Intelligence

    The course focuses on data mining, data warehousing and aspects of knowledge management, and the development of business intelligence tools in the context of business networks and collaborative online environments.

  • AIMS 4770 Information Technology Security

    The main objective of this course is to provide students with an exposure to the complex information security management issues in the U.S. today. Topics include identity theft, intrusion detection, dangers within the company, wireless security, physical security, business asset protection, risk management and disaster recovery.

  • AIMS 4797 Capstone Project (Required)

    The course enables students to practice team-oriented problem-solving skills in the context of undertaking and completing a complex IT project, and demonstrates their knowledge and understanding of IT concepts and techniques in tackling analysis, design, and implementation of solutions to complex IT problems.

  • CMSI 185 Computer Programming (Required)

    Foundational course that emphasizes computer programming (using Java, JavaScript, or Python), but which also touches on computer architecture, interpretation vs. translation, elementary sorts, recursion vs. iteration, algorithm paradigms, complexity vs. intractability.

  • CMSI 186 Programming Laboratory (Recommended but not required)

    Apprenticeship-styled workshop in Java or JavaScript programming, loosely structured around the notion of algorithm paradigms, treating one medium-sized application every two weeks in a laboratory setting. Typical projects include discrete simulation, randomized estimation, maze solving, dynamic programming, large-number arithmetic, and numerical methods.

  • CMSI 261 Language, Thought, and Computation

    A study of the philosophical and epistemological roots of computer science, covering language, thought, logic, cognition, computation, the Church-Turing thesis, computer programming, and artificial intelligence. Mathematical models of knowledge, learning, consciousness, and self-awareness. (No prerequisites)

  • CMSI 264 Cryptography and Cryptanalysis

    Survey of the basic principles and methods of both classical and modern cryptology, and the historical context in which these systems have arisen. Secret key and public key encryption and decryption. Random number generation. Hashes. Digital Signatures. Cryptanalysis.

  • CMSI 266 Electronic Markets

    Study of the convergence of markets, fair division, and dispute resolution with modern information technologies. Topics include: utility theory; formal definitions for fairness; algorithms for proportional, strong, and envy-free division; complexity of cake-cutting algorithms; unequal shares; indivisible goods; impossibility theorems; auctions and elections. (No prerequisites)

  • CMSI 270 Modern Webapps

    Introduction to dynamic web app development using HTML, CSS, and JavaScript, including modern layout techniques, sophisticated visuals and animation without the use of image processing or third-party tools, in-browser element inspection and debugging, multitouch interaction, and motion-sensitive web pages. Supplementary topics cover the history of the web, current W3C standards and validation, accessibility, design considerations for desktops, tablets, mobile, and print, and the separation of content, presentation, and interaction. No prior programming training needed.

  • CMSI 281 Data Structures

    Specification and design of data types, information structures, and algorithms. Collection classes and interfaces for sets, lists, stacks, queues, hierarchies, and dictionaries. Implementation techniques such as arrays, linked lists, and efficient tree structures. Introduction to computational complexity. Recursion. Sorting. Hashing.

  • CMSI 282 Algorithms

    The study of algorithm paradigms, such as divide-and-conquer, greedy methods, dynamic programming, and randomization, with an emphasis on combinatorial search. Modern heuristics, such as genetic programs and simulated annealing. String problems, including matching and longest common subsequence. Advanced sorts and order statistics. (Prerequisite: CMSI 281)

  • CMSI 355 Networks and Internets

    A detailed study of the design and use of internetworking technologies in modern digital communication systems. Topics include routing and control protocols, signaling, multicasting, OSI 7-layer model sockets, IPv4, IPv6, UDP, TCP, ARP, ICMP, IGMP, Mobile IP, DNS, SMTP, FTP, VoIP, and HTTP.

  • CMSI 370 Interaction Design

    Introduction to interaction design and human-computer interaction, with equal emphasis on (1) learning how to design and evaluate interaction architectures and (2) learning how to use existing frameworks to implement such architectures. Topics include: interaction guidelines, principles, and theories; usability engineering; the model- view-controller (MVC) paradigm; and current frameworks such as Swing, GLUT, and Cocoa.

  • CMSI 377 Introduction to Virtual Worlds

    An introduction to the history of, and the technological and social aspects surrounding, virtual worlds. Topics include the interaction between avatars, avatar customization, and computer science concepts underlying virtual worlds. Building and scripting objects.

  • CMSI 371 Computer Graphics

    Introduction to interactive computer graphics, emphasizing raster-scan techniques. Topics include the design and use of graphics packages and standards, graphics engines, animation, the user-system interface, three dimensional modeling, computational geometry, shading, ray tracing, and fractal geometry. (Prerequisite: CMSI 281)

  • CMSI 485 Artificial Intelligence

    Introduction to the fundamental concepts behind the implementation of human-level intelligence in computer systems. Topics include agent architectures, problem-solving methods, heuristic search, game playing, knowledge representation, symbolic reasoning, computational models of virtual humans, and machine learning. (Prerequisite: CMSI 281)

Students electing a B.S. in AIMS are required to take four courses in Computer Science.

  • CMSI 185 Computer Programming
  • CMSI 186 Programming Laboratory (recommended)
  • CMSI elective
  • CMSI elective

Please note that the Department of Computer Science offers other courses than those specified below, and that some of the courses listed may not be offered every semester, or even every year.

Computer Science Course Descriptions

  • AIMS 3710 Database Management Systems (Required)

    The course provides an introduction to the fundamental principles of database design—from data modeling to the actual implementation of a business application. Particular emphasis is placed on the relational model, which is the basis for the most popular database products on the marketplace today.

  • AIMS 3720 Systems Analysis and Design

    This course presents a rigorous approach to information analysis essential to information systems design. Emphasizes the formalization of the information systems design process and explores relevant state-of-the-art techniques.

  • AIMS 3730 Programming for Business Applications

    This course is an introducation to programming with an emphasis on its business application capability. Students learn the basic techniques of programming from concepts to code. The objectives of this course are: making students comfortable with fundamental programming terminology and concepts, including data type, input/output, control statements methods, arrays, strings and files; giving students hands-on practical experience with modeling and problem solving; and illustrating to students how such models are translated into working business applications.

  • AIMS 4720 Object-Oriented Programming

    This course teaches the object-oriented approach to programming using a popular object-oriented programming language such as C++ or Java.

  • AIMS 4730 Business Data Communications

    This course is an introduction to the use of data communications and other automation systems in the business environment, including the study of local and wide area networks, voice and electronic mail, video conferencing, and other automation tools in support of management.

  • AIMS 4740 Financial Modeling for Decision Support

    This course introduces spreadsheet modeling skills and advanced quantitative analysis tools to support financial decision-making. Students gain hands-on experience in the development of a spreadsheet in such areas as forecasting, simulation, and optimization models for solving a variety of business problems.

  • AIMS 4750 Web-based Development

    This course introduces students to web-based development using various web design and development software as well as programming languages. The emphasis is on the business use of the web and its integration with business strategy and activities along with developing skills in creating effective websites. The course teaches students the basics of web development and introduces them to the mobile web and mobile application development. Students will also learn about the current developments taking place in this area.

  • AIMS 4760 Analytics and Business Intelligence

    The course focuses on data mining, data warehousing and aspects of knowledge management, and the development of business intelligence tools in the context of business networks and collaborative online environments.

  • AIMS 4770 Information Technology Security

    The main objective of this course is to provide students with an exposure to the complex information security management issues in the U.S. today. Topics include identity theft, intrusion detection, dangers within the company, wireless security, physical security, business asset protection, risk management and disaster recovery.

  • AIMS 4797 Capstone Project (Required)

    The course enables students to practice team-oriented problem-solving skills in the context of undertaking and completing a complex IT project, and demonstrates their knowledge and understanding of IT concepts and techniques in tackling analysis, design, and implementation of solutions to complex IT problems.

  • CMSI 185 Computer Programming (Required)

    Foundational course that emphasizes computer programming (using Java, JavaScript, or Python), but which also touches on computer architecture, interpretation vs. translation, elementary sorts, recursion vs. iteration, algorithm paradigms, complexity vs. intractability.

  • CMSI 186 Programming Laboratory (Recommended but not required)

    Apprenticeship-styled workshop in Java or JavaScript programming, loosely structured around the notion of algorithm paradigms, treating one medium-sized application every two weeks in a laboratory setting. Typical projects include discrete simulation, randomized estimation, maze solving, dynamic programming, large-number arithmetic, and numerical methods.

  • CMSI 261 Language, Thought, and Computation

    A study of the philosophical and epistemological roots of computer science, covering language, thought, logic, cognition, computation, the Church-Turing thesis, computer programming, and artificial intelligence. Mathematical models of knowledge, learning, consciousness, and self-awareness. (No prerequisites)

  • CMSI 264 Cryptography and Cryptanalysis

    Survey of the basic principles and methods of both classical and modern cryptology, and the historical context in which these systems have arisen. Secret key and public key encryption and decryption. Random number generation. Hashes. Digital Signatures. Cryptanalysis.

  • CMSI 266 Electronic Markets

    Study of the convergence of markets, fair division, and dispute resolution with modern information technologies. Topics include: utility theory; formal definitions for fairness; algorithms for proportional, strong, and envy-free division; complexity of cake-cutting algorithms; unequal shares; indivisible goods; impossibility theorems; auctions and elections. (No prerequisites)

  • CMSI 270 Modern Webapps

    Introduction to dynamic web app development using HTML, CSS, and JavaScript, including modern layout techniques, sophisticated visuals and animation without the use of image processing or third-party tools, in-browser element inspection and debugging, multitouch interaction, and motion-sensitive web pages. Supplementary topics cover the history of the web, current W3C standards and validation, accessibility, design considerations for desktops, tablets, mobile, and print, and the separation of content, presentation, and interaction. No prior programming training needed.

  • CMSI 281 Data Structures

    Specification and design of data types, information structures, and algorithms. Collection classes and interfaces for sets, lists, stacks, queues, hierarchies, and dictionaries. Implementation techniques such as arrays, linked lists, and efficient tree structures. Introduction to computational complexity. Recursion. Sorting. Hashing.

  • CMSI 282 Algorithms

    The study of algorithm paradigms, such as divide-and-conquer, greedy methods, dynamic programming, and randomization, with an emphasis on combinatorial search. Modern heuristics, such as genetic programs and simulated annealing. String problems, including matching and longest common subsequence. Advanced sorts and order statistics. (Prerequisite: CMSI 281)

  • CMSI 355 Networks and Internets

    A detailed study of the design and use of internetworking technologies in modern digital communication systems. Topics include routing and control protocols, signaling, multicasting, OSI 7-layer model sockets, IPv4, IPv6, UDP, TCP, ARP, ICMP, IGMP, Mobile IP, DNS, SMTP, FTP, VoIP, and HTTP.

  • CMSI 370 Interaction Design

    Introduction to interaction design and human-computer interaction, with equal emphasis on (1) learning how to design and evaluate interaction architectures and (2) learning how to use existing frameworks to implement such architectures. Topics include: interaction guidelines, principles, and theories; usability engineering; the model- view-controller (MVC) paradigm; and current frameworks such as Swing, GLUT, and Cocoa.

  • CMSI 377 Introduction to Virtual Worlds

    An introduction to the history of, and the technological and social aspects surrounding, virtual worlds. Topics include the interaction between avatars, avatar customization, and computer science concepts underlying virtual worlds. Building and scripting objects.

  • CMSI 371 Computer Graphics

    Introduction to interactive computer graphics, emphasizing raster-scan techniques. Topics include the design and use of graphics packages and standards, graphics engines, animation, the user-system interface, three dimensional modeling, computational geometry, shading, ray tracing, and fractal geometry. (Prerequisite: CMSI 281)

  • CMSI 485 Artificial Intelligence

    Introduction to the fundamental concepts behind the implementation of human-level intelligence in computer systems. Topics include agent architectures, problem-solving methods, heuristic search, game playing, knowledge representation, symbolic reasoning, computational models of virtual humans, and machine learning. (Prerequisite: CMSI 281)