This course provides an introduction to fundamental operating systems concepts. Topics include the process model of computation and concurrent processes, inter-process communication and synchronization, process scheduling, deadlock, memory management, paging and segmentation, and file systems.
Business intelligence is the use of information systems to inform managerial decisions. Businesses today have access to data in unprecedented volume, but often lack the expertise to leverage data for competitive advantage. In addition, companies often miss opportunities to guide strategic decision making because they do not gather or track the correct metrics. This course provides students with the skills to gather, analyze, and transform data into meaningful information.
This course provides an introduction to the fundamentals of interactive computer graphics. Topics include graphics hardware, fundamental algorithms, two-and three-dimensional imaging geometry and transformations, curve and surface design, rendering, shading, color, and animation.
In a data-rich, data-driven society, it is increasingly important to be able to tell a story with data. This course introduces the student to the fundamentals of advanced data visualization techniques, using both interactive computer visualizations and publication ready charts to display data and communicate model results. Whether your interests are related to business or science, effective, accurate, and ethical communication is essential in today’s data-centric world.
The fundamentals of data structures will be studied from an object-oriented perspective. Data structures discussed will include linked lists, stacks, queues, tress, sets, maps, hash tables, heaps and graphs. Concepts such as genetic types, iterators, file compression and dynamic programming will also be addressed.
This course offers an introduction to the foundations of computing. Topics include different models of computation such as finite automata, push-down automata, Turing Machines, and regular expressions; grammars and parsing techniques; solvable and unsolvable problems; and P and NP complexity classes.
This course provides students with a hands-on experience in applying project management and systems analysis, design and implementation. Students will work with local business professionals in the design and delivery of a project.
This course is designed to teach the full-fledged software development cycle, with a team project utilizing CASE tools. Topics include testing and validation, metrics and complexity, software reliability and fault tolerance.
The objective of this course is to teach the student the basic principles involved in the design and operation of computer networks. Topics include computer network architectures and models, physical media and signaling, data link protocols, medium access control, routing and IP, transport services including TCP/UDP, network applications, local-area and wide-area networks. The course will consist of both a lecture portion and a hands-on laboratory.
The course introduces students to the history of parallel computing and the most recent developments and trends. The course covers architectures, systems software, languages and user-level software, and performance evaluation. Topics include speedup and scalability, MIMD architectures, SIMD architectures, shared-memory multi-processors, interconnection networks, data flow architectures, workstation clusters, synchronization and communication, memory and address space management, cache coherence, process management and scheduling, parallel languages and compiler techniques, parallel programming environments and tools.
This course introduces the student to various aspects of artificial intelligence (AI), whose goals are the creation of more useful machines by making them more "intelligent." Topics include symbolic programming, representation and logic, search, learning, planning, uncertainty, image processing, natural language processing, genetic algorithms. Techniques learned are applied in a robotics laboratory to the control and manipulation of a mobile robot.
Special Topics in Computer Science