An introduction to an object oriented programming language, algorithm design, structured and object-oriented programming techniques. No prior programming experience is assumed. Prerequisite: higher algebra.
Intermediate data structures and techniques of object-oriented and structured programming. Discrete data types and structures, including arrays, files, sets, lists, trees, hash tables, sorting and recursion. Small to medium-scale programs are developed.
Basics of programming techniques for the World Wide Web. Provides an introduction to several web design methodologies including methodologies for data access and presentation.
Basics of software development for mobile devices. Provides an introduction to programming techniques for mobile devices including mobile web access and mobile access to databases.
An introduction to database theory and practice. Topics include relational database design, ER modeling, normalization, SQL/embedded SQL, concurrency control, data warehousing and other emerging database technologies. Practical software engineering principles are emphasized through student projects.
An introduction to the theory and practice of quantitative modeling and optimization, with applications to computer simulation and business resource management. Possible topics include linear and nonlinear programming, network analysis, game theory, deterministic and probabilistic models. Prerequisite: consent of the instructor.
An overview of the systems development process. Includes: tools/techniques for describing processes, data flows, data structures, file designs, input/output designs, program specifications and prototyping for systems. Discovery, problem-solving and communications skills as employed by the systems analyst are also covered.
This course is an introduction to the fundamental concepts in the design and implementation of computer networks. Topics include network topologies, OSI and TCP/IP reference models, local area networks, Wi-Fi, and routing. Examples and projects will focus primarily on TCP/IP protocols.
An opportunity to study in depth an advanced topic of current interest. Students work as teams to complete several extended research projects.
This course is intended to give a wide exposure to the history and current state of the field of Artificial Intelligence. Students will be introduced to the different Artificial Intelligence methodologies and familiarized with the relative strengths and weaknesses of these technologies.
A study of how computers manage their resources. Highlights include concurrency, memory management, process and processor management and scheduling, device control, performance evaluation and system security. Several operating systems are compared.
An introduction to principles of programming language design. Topics include regular and context-free grammars, parsing, static and dynamic scoping, and type checking. Students will explore the dimensions of computer languages drawn from several different programming paradigms.
Provides an introduction to a variety of topics in computer security both from a technical and from a human resource point of view.
This course will allow the students to apply all their knowledge from the computer science major to implement a real world software project. Students will simultaneously learn techniques for insuring quality software and will apply these techniques among other techniques to implement a software project with direct applicability to a large problem situation.
This course provides an opportunity for individual students to conduct in-depth study of a particular topic under the supervision of a faculty member. Contact the department or program chair for more information.
A study of the mechanisms for interaction (i.e. user interfaces) between users and computing equipment whether this computing equipment comes in the form of a computer or of a computing system embedded within any other system (manufacturing machinery controllers, medical equipment, aircraft, traffic lights, home appliances...etc.) Human computer interaction focuses on user satisfaction as well as ensuring user interfaces that avoid erroneous use of computing equipment that may at times have catastrophic results.
This course provides an opportunity for individual students to conduct research in a specific area of study, completed under the direction of a faculty mentor. Specific expectations of the research experience to be determined by the faculty. Repeatable for credit. Prerequisite: consent of instructor.