IT-Computer Science Course Descriptions

You are here


 

IT and Computer Science Courses

Information Technology (20)

20-101. APPLYING COMPUTERS. 3:3:0
This course provides computer literacy and productivity training. The course will provide a familiarization with various operating systems and file management capabilities. It will also show how to leverage open source software to increase work efficiency. The course will cover creation and querying of simple database tables and productivity software that access these tables. Network security issues related to legal, privacy and ethical issues in computer security will be discussed. Searching and evaluating information found on the internet will be covered. Prerequisite: None. Credit: three hours.

20-107. SURVEY OF INFORMATION TECHNOLOGY. 3:3:0
This course provides computer literacy training, through a discussion of the usefulness and limitations of hardware and software. The course should provide an overview on the computer impact on society and the role of computers in everyday life and business. Students will learn the various aspects of problem solving using computers and how computer programming is a large and important part of this problem solving process. A paradigm of a dumb robot will be used to introduce the idea behind programming the dumb computer. Prerequisite: None. Credits: three hours.

20-270. VISUAL BASIC. 3:3:0
The commands, methods, properties, objects statements, events, functions in Visual Basic,  and applications in business. Prerequisite: Computer Science 262. Credits: three hours.

20-280. COMPUTER ORGANIZATION. 3:3:0
Analysis and synthesis of combinational and sequential circuits; Computer systems organization; Processor and control logic design; Concepts of computer architecture; Introduction to an assembly programming language. Prerequisite: Computer Science 262. Credits: three hours.

20-300. ORGANIZATION THEORY. 3:3:0
This course provides an understanding of organizational concepts, structures, issues, and models. The course introduces the contextual dimensions, such as goals, environment, technology, size and life cycle, required to make judgments about organizational structures. How organizational processes such as culture, information processing for decision making and politics affects the organization will be discussed. Prerequisite: None. Credits: three hours.

20-350. OPERATING SYSTEMS. 3:3:0
Principles underlying the design and implementation of operating systems; Treatment of process, storage, and processor management techniques; Analytic modeling and performance evaluation of operating systems. Prerequisite: Computer Science 263, Information Systems 280. Credits: three hours.

20-355. COMMUNICATION AND NETWORKING. 3:3:0
This course provides students with the conceptual, logical and physical concepts of computer networks including application, transport, network and data link layers and basics of multimedia and security. Prerequisite: Information Systems 350, Math 241. Credits: three hours.

20-360. WEB DESIGN AND IMPLEMENTATION. 3:3:0
This course provides an overview of web design concepts, including usability, accessibility, information design, and graphic design in the context of the web will be covered. Introduction to web site technologies, including cascading style sheets, DHTML, and computational tools for creating and working with interactive information resources will also be explored. Prerequisite: Computer Science 262. Credits: three hours.

20-362. BUILDING WEB APPLICATIONS. 3:3:0
This course provides an introduction to the architecture and programming of web applications using Java technologies. In particular, the course will cover setting up a web server, program for web servers, design and implementation of multi-tier applications along with database access for information persistence. Prerequisite: Computer Science 340, Information Systems 360. Credits: three hours.

20-370. DATABASE MANAGEMENT SYSTEMS. 3:3:0
This course introduces the conceptual, logical and physical organizations of large set of related data, to database descriptions, data models, data definition and manipulation languages, query languages, relational algebra and database application-oriented projects. Prerequisite: Computer Science 340, Information Systems 350. Credits: three hours.

20-371. ADVANCED DATABASE SYSTEMS. 3:3:0
Advanced study of the internals of a database management system, non-relational data models and database frontiers. Topics include Logic design of databases, Internals of database systems, Data models and architectures of database systems, multimedia databases. Prerequisite: Information Systems 370. Credits: three hours.

20-385. NETWORK SECURITY. 3:3:0
This course introduces fundamental techniques and principles for modeling and analyzing Security. The course covers encryption and security in programs as well as managing and administering security. It discusses security policies and their role in computing. The course also covers the legal, ethical, and privacy issues related to computer security.

20-390. MULTIMEDIA SYSTEMS. 3:3:0
This course will introduce students to the creation, storage, retrieval and transmission of multimedia content. Most current communication techniques are a single medium. Multimedia technologies, through the use of more than one media, allow more natural communication. Though this course will be technical, it is expected that non-computer science majors such as mass communications, criminal justice and education will also benefit from this course. Prerequisite: Computer Science 263 or Permission of Instructor. Credits: three hours.

20-400. DATA MINING AND WAREHOUSING. 3:3:0
This course provides a student introduction to data mining and warehousing techniques. Special emphasis is put on integration of database technology with algorithms for efficient and non-trivial querying. Prerequisite: Information Systems 370, Math 241. Credits: three hours.

20-410. DESIGN AND PRINCIPLES OF HUMAN-COMPUTER INTERACTION. 3:3:0
This course provides an introduction to the principles of designing high-quality user interfaces for interactive systems. Students will apply HCI principles and professional practices in analyzing collaborative software, multimedia, and ubiquitous computing. Students will participate in designing and implementing aspects of interfaces for  collaborative software. Prerequisite: Computer Science 340. Credits: three hours.

20-420. SYSTEMS DEVELOPMENT TECHNIQUES. 3:3:0
This course provides the concepts, skills, methodologies, techniques, and tolls of systems development and design. It emphasizes project management and formal analysis, design, implementation, and evaluation techniques. Use of various software engineering analysis and design tools and techniques are covered, including information gathering for defining system requirements, Unified Modeling Language (UML), data flow diagrams, data dictionaries, and prototyping. The course will also present current topics, such as extreme programming, rapid application development (RAD), and the capability maturity model (CMM). Prerequisite: Computer Science 340. Credits: three hours.

20-425. PERFORMANCE ANALYSIS IN IT. 3:3:0
This course provides an introduction in techniques used to analyze and understand the performance of computer systems. The emphasis is on practical methods of measurement, simulation, and analytical modeling. Prerequisite: Information Systems 420, Math 241, Math 251. Credits: three hours.

20-440. WIRELESS AND MOBILE NETWORKS. 3:3:0
The benefit of mobility due to wireless systems and devices is well organized. However, there are several challenges in deploying effective mobile networks and associated technologies to deal with these challenges. This course will provide an overview of such technologies. Prerequisite: Information Systems 355. Credits: three hours.

20-450. CLIENT SERVER COMPUTING. 3:3:0
This course provides coverage of client/server architecture and programming techniques. The evolution of the computing environment, standards and open systems, client and server platform specialization, client-server communication in local and wide area networks and major communication protocols are used as a foundation. Prerequisite: Computer Science 340, Information Systems 355. Credits: three hours.

20-455. DISTRIBUTED SYSTEMS. 3:3:0
The course provides an introductory background in distributed computing and its use in client/server and real-world computing applications. Concepts will include the design of distributed systems (two, three and n-tier architectures), inter-process communication (asynchronous vs. synchronous, concurrent vs. parallel, and sockets), principles of object-oriented middleware, security, and performance. Prerequisite: None. Credits: three hours.

20-495. PROJECT MANAGEMENT. 3:3:0
Project planning and selection of appropriate process model; project scheduling and milestone. Project organization, management, principles, concepts and issues. Work breakdown structures and scheduling. Project staffing consideration. Project control. Managing multiple projects. Systems documentation and metrics. User documentation. Configuration management. System development quality assurance.


Computer Science (35)

35-107. SURVEY OF COMPUTING. 3:3:0
This course provides students with information about the field of computer science and its pervasiveness and impact on society. The course provides an overview of computing in everyday life and business and discusses the job prospects in the field. Students will learn the various aspects of problem solving using computers and how computer programming is a large and important part of this problem solving process. A paradigm of a dumb robot will be used to introduce the idea behind programming the dumb computer. The focus will be on a step-by-step problem solving approach with minimal emphasis on syntax. Credits: three hours.

35-240. APPLICATIONS OF FORTRAN. 3:3:0
Scientific and engineering applications of FORTRAN in problem solving; Introduction to numerical errors; Decision, iterative, data abstraction, function, subroutine, I/O, and complex operations in FORTRAN; Applications in the areas of computation of zeros of functions, systems of equations, numerical differentiation, and integration. Prerequisite: Consent of Advisor. Credits: three hours.

35-261. ELEMENTS OF COMPUTER PROGRAMMING. 4:4:0
This course presents fundamental software development and computational methods. It explores the use of a programming language as a tool to implement algorithms that solve computing problems. The course introduces important concepts and principles in programming and lays the foundations for achieving advanced programming skills. The course covers various concepts in programming including variables, decision statements, loops, function, and arrays. Prerequisite: Computer Science 107. Credits: four hours.

35-262. DATA STRUCTURES AND ALGORITHMS I. 3:3:0
The study of computer science includes the study of how information is organized in a computer, how it can be manipulated, and how it can be utilized. The efficiency of programming and data processing is directly linked to the structure of the data being processed and algorithms used. This course presents fundamental computing algorithms and their associated data structures and abstraction. It combines the concepts of information organization, information manipulation and algorithms. Prerequisite: Computer Science 261, Math 213. Credits: three hours.

35-263. DATA STRUCTURES & ALGORITHMS II. 3:3:0
The study of computer science includes the study of how information is organized in a computer, how it can be manipulated, and how it can be utilized. This continues with introducing more advanced computing algorithms and data structures. It also introduces the mathematical framework for the analysis of algorithm efficiency. Prerequisite: Computer Science 261, Math 214. Credits: three hours.

35-301. INTRODUCTION TO BIOINFORMATICS. 3:3:0
Theoretical and practical concepts of bioinformatics, with emphasis on algorithms and their implementation in bioinformatics software. Prerequisite: Consent of Instructor. Credits: three hours.

35-320. FILE STRUCTURES. 3:3:0
Logical and physical organizations of large sets of related data in files for performance. Topics include secondary storage and system software, managing files of records, indexing and multi-level indexing using binary tree structures, B-trees and their derivatives, hashing and extendible hashing, and sorting. Prerequisite: Computer Science 263. Credits: three hours.

35-330. MACHINE ORGANIZATION. 3:3:0
Analysis and synthesis of combinational and sequential circuits; Computer systems organization; Processor and control logic design; Concepts of computer architecture; Introduction to an assembly programming language. Prerequisite: Computer Science 263. Credits: three hours.

35-340. OBJECT ORIENTED DESIGN. 3:3:0
Introduces the philosophy and methodology of object-oriented software design and the techniques of object-oriented programming; Discusses the design and implementation of individual classes and the trade offs in designing collections of classes; Introduces class libraries and application frameworks; Examines simple design patterns; Compares object-oriented design to other software design paradigms. Prerequisite: Computer Science 263. Credits: three hours.

35-345. COMPUTER GRAPHICS. 3:3:0
This course introduces programming concepts in rendering of graphics primitives, shading, lighting, geometric transformations, clipping, depth, ray tracing, texture mapping and antialiasing, interaction, perspective, and stereo viewing. Prerequisite: Computer Science 340, Math 313. Credits, three hours.

35-350. THEORY OF OPERATING SYSTEMS. 3:3:0
Principles underlying the design and implementation of operating systems; In-depth treatment of process, storage, and processor management techniques; Analytic modeling and performance evaluation of operating systems. Prerequisite: Computer Science 263, Pre-Engineering 220. Credits: three hours.

35-351. SYSTEMS PROGRAMMING. 3:3:0
This course provides students with fundamental skills necessary to develop system based applications in a particular environment. Topics include development tools, creating and using libraries, process models, I/O handling, signal processing, and job control. Prerequisite: Computer Science 350. Credits: three hours.

35-355. PRINCIPLES OF PROGRAMMING LANGUAGES. 3:3:0
A formal comparative study of programming languages; Syntactic and semantic issues in the design and implementation of a programming language; Data structures, operations, processors, data control, and storage management in alternative programming languages; Formal proof of program correctness. Prerequisite: Computer Science 340. Credits: three hours.

35-360. DATA NETWORKS. 3:3:0
Conceptual, logical and physical concepts of computer networks. Topics include application, transport, network and data link layers and basics of multimedia and security. Prerequisite: Computer Science 350, Math 341. Credits, three hours.

35-370. DATABASE SYSTEMS. 3:3:0
This course introduces the conceptual, logical and physical organizations of large sets of related data, to database descriptions, data models, data definitions and manipulation languages, query languages, relational algebra and database application-oriented projects. Prerequisite: Computer Science 320, Credits: three hours.

35-371. DATABASE SYSTEMS II. 3:3:0
Advanced study of the internals of a database management system, non-relational data models and database frontiers. Topics include Logic design of databases, Internals of database systems, Data models and architectures of database systems, multimedia databases. Prerequisite: Computer Science 350, Computer Science 370. Credits: three hours.

35-415. PARALLEL PROCESSING. 3:3:0
Design and applications of interacting processors. Concurrency and synchronization; architectural support; programming language constructs for parallel computing; parallel algorithms and complexity. Prerequisite: Computer Science 360, Math 313. Credits: three hours.

35-420. SCIENTIFIC COMPUTING. 3:3:0
Exposes student to various aspects of scientific computing. Topics include numerical techniques in solving linear, nonlinear and differential equations, symbolic computing, curve fitting and presentation of experimental results. Prerequisite: Computer Science 263, Math 313, Math 341. Credits: three hours.

35-425. SIMULATION. 3:3:0
Basic concepts in queuing systems and modeling. An introduction to a simulation language and elements of probability distributions. Applications of simulation in real life problems such as banking, the physical and life sciences, multi-server queuing systems, risk analysis, and production planning. Prerequisite: Computer Science 263, Math 341. Credits: three hours.

35-430. ARTIFICIAL INTELLIGENCE. 3:3:0
Introduce students to the field of artificial intelligence. Topics include state spaces, production systems, search, knowledge representation, rule-based systems, statistical reasoning and learning. Prerequisite: Computer Science 263, Math 252 . Credits: three hours.

35-431. EXPERT SYSTEMS. 3:3:0
Introduce students to structure and concepts of expert systems, knowledge representation and knowledge engineering. Topics include knowledge representation of expert systems, rule-based systems, predicate logic, reasoning under uncertainty, case study of an expert system, expert systems tools. Prerequisite: Computer Science 430. Credits: three hours.

35-435. MACHINE LEARNING. 3:3:0
Expose students to theoretical and practical aspects of machine learning. Topics include classification techniques, unsupervised learning, computational learning theory, ensemble methods, and coverage of machine learning software. Prerequisite: Computer Science 430. Credits: three hours.

35-437. GENETIC ALGORITHMS. 3:3:0
Expose students in emerging field of genetic algorithms and genetic programming. Topics include simple genetic algorithms, theory of genetic algorithms (schema theory. effects of selection, crossover, and mutation operators, etc.). Prerequisite: Computer Science 430, Math 341. Credits: three hours.

35-440. DATA MINING. 3:3:0
The course is designed to introduce students to various aspects of data mining as novel and emerging technology, with special emphasis on various potential applications. Topics include classification algorithms, regression techniques, clustering, association rules, and other advanced topics. Prerequisite: Computer Science 340, Math 313. Credits: three hours.

35-450. TECHNIQUES IN OPTIMIZATION. 3:3:0
This course will expose students in computer science to linear programming, non-linear programming, different optimization techniques and selected applications including software development. Topics include allocation, blending, operations planning, shift scheduling, numerical search and simplex method, duality and sensitivity, unconstrained nonlinear search and genetic algorithms in search. Prerequisite: Computer Science 263, Math 252, Math 341. Credits: three hours.

35-455. GRAPH THEORY. 3:3:0
Graph theory algorithms and applications to the areas of computer science. Prerequisite: Computer Science 263, Math 252, Math 341. Credits: three hours.

35-461. THEORY OF COMPUTING. 3:3:0
An introduction to the theoretical aspects of computing. Elements and applications of algebraic group structures, coding theory, finite automata, formal linguistic, machine design and construction, computability, and computational complexity. Prerequisites: Computer Science 355 and senior standing. Credit: three hours.

35-465. COMPILER CONSTRUCTION. 3:3:0
Principles and practices for design and implementation of compilers and interpreters. Topics: lexical analysis, parsing theory (LL, LR, and LALR parsing), symbol tables, type systems, scoping, semantic analysis, intermediate representations, runtime environments, and code generation. Prerequisite: Computer Science 461. Credits: three hours.

35-470. INTRODUCTION TO GAME PROGRAMMING. 3:3:0
This course provides practical hands-on approach to game programming. It is intended to be a first course introduction for students who may be interested in finding out about the gaming industry and gain an understanding of the complexities and the immense tasks required to develop an electronic game. Topics such as 2D and 3D game engines, sprite animation, tile-based game design, collision detection, sound, music and more will be utilized to create a game prototype. Prerequisite: Computer Science 345, Math 313. Credits: three hours.

35-490. SOFTWARE ENGINEERING DESIGN. 3:3:0
This course presents particular methods for the systematic development of large software systems. Topics include requirements analysis, definition, specification including formal methods, prototyping, and design including object and function oriented design. Prerequisite: Computer Science 355, Computer Science 360, Computer Science 370. Credits: three hours.

35-495. COMPUTER SCIENCE PROJECT. 3:3:0
(This is a senior capstone course.)
Research papers and reports will be selected for review and presentation. All students in this course will participate in a group project. The subject area is at the discretion of the instructor. Both formal and informal teaching methods will be used. Guest speakers may be invited. Prerequisite: Consent of the instructor. Credits: three hours.

35-497. TOPICS IN COMPUTER SCIENCE. 3:3:0
This course will introduce elements, techniques, and principles governing an innovative computer science area such as symbolic computation and advanced artificial intelligence. Prerequisite: Consent of the instructor. Credits: three hours.