Develops the representation of knowledge, notational systems, and search strategies used in applications for artificial intelligence. Topics include parallel and serial processing, unique algorithms, LISP protocols, and natural language processes. Students solve problems and prove theorems within an applications environment.
Introduces topics in mathematics basic to computer science. Emphasizes mathematical reasoning, set theory, relations and functions, graph theory, circuits, propositional calculus, and Boolean algebra. Applications in computer science are associated with each topic covered. Students are expected to develop an understanding of the relationship between programming and data representation.
Presents mathematical programming techniques and their relationship to the solution of numeric problems. Topics include matrix manipulations, simplex method, sensitivity analysis, and linear programming. Provides the foundation for data management in scientific and business applications with a computational content.
Systems of equations, roots of equations, determinants, matrices, linear dependence and independence, linear transformations.
Provides an overview of the principals and methodologies of computer graphics, including the representation, manipulation, and display of two and three dimensional objects. Discusses graphics hardware, graphics programming, special algorighms, and shading models. Program routines relevant to the description of non-numeric problems are discussed.
This course deals with the theory, architecture, and implementation of database management systems in business. Studies the concepts of database management and processing as they apply to the design and implementation of databases in business applications. Evaluates basic database models and languages, their impact on the computing environment, and current trends in database systems.
Discusses concepts and techniques used in processing external data files and managing the physical characteristics of external storage devices. Evaluates the physical representation of data structures in sequential and random-access storage. Presents algorithms to manipulate external files and maintain the integrity of database management protocols in small- and large-scale systems.
This course examines the role of computers in business and fundamental concepts of information technology. It discusses the essentials of business applications on the microcomputer, including COBOL programming, and the relationship between a computer-based information system and basic business functions. It identifies linkages between innovation in the business computing environment and new techniques in information processing.
This course outlines the structure and implementation of programming-language compilers and interpreters. Presents initial coverage of data structures within computer storage and the operation of assemblers and loaders. The internal representation of characters and number, addressing concepts, and input-output operations are discussed in the context of procedure-oriented languages.
Discusses the organization and structure of the major hardware components of a computer system. Evaluates the mechanics of information transfer and control within the computer. Presents essentials of basic logic design, coding, number representation, and computer architecture. Mastery of principles and terminology relevant to a variety of applications is stressed.
This course studies Java as a general-purpose language for writing platform-independent, robust, secure programs. This course is intended for students who have completed a course in C or C++ programming. Students will learn how to develop Java applications and applets. Topics covered include the Java programming language, object-oriented programming (OOP), the Java applications programming interface (API), graphics, graphical user interfaces (GUIs), exception handling, multithreading, multimedia, and networking.
This course deals with the concepts and techniques involved in the design, development, and implementation of operating systms. Topics include simultaneous processing, time-sharing networks, memory hierarchies, and multi-programming protocols. Discusses both routine and unique processes that the productive designer takes into account and illustrates the techniques of efficient memory management.
This course studies program design and development using the C++ language. Students are expected to write, debug, and test programs that meet standards for efficient design and take full advantage of system architecture. This course is taught from the point of view of the developer who determines the final outcome through the trial and error method of analysis.
Covers the syntax, organization, and run time behavior of a representative number of high level languages used in problem-solving applications. Discusses control protocols, data types and structures, and primitive operations within those languages. Stresses the universality of primary concepts through hands-on assignments with a practical orientation.
Examines principles of control for large programming projects requiring extensive software support. Develops strategies, methods, and procedures for the design, development, testing, implementation, and documentation of software and studies the history of successful projects. Student teams are organized to evaluate problems typically faced by professionals in software engineering.