Computer Science (CS) Courses

College of Natural and Health Sciences (CNHS)

See How to read course descriptions for information about the formatting used.

CS 100 Prin Of Computer Sci (3) General survey of the entire field of computer science. Principles of machine architecture, human/machine interface, data organization, and their interrelationship. (Attributes: GQ)

CS 101 Digital Tools for Info World (3) Hands-on computer class with emphasis on producing professional-level documents, spreadsheets, presentations. Also involves data organization and filtering, rational databases and web page development for problem-solving. Includes mathematical, logical, statistical and financial analysis calculation concepts. (Attributes: GQ)

CS 130 Beg Graphics, Game Programg (3) Introduction to two-dimensional graphics and game programming: graphic elements, layers and simple animation; principles of game design and implementation; emphasis on Flash and Action Script programming; game physics; simple AI techniques. Previous programming experience helpful but not required. (Attributes: GQ)

CS 132 Intro to Health Informatics (3) This introductory course will cover a broad range of topics relating to the area of health informatics and health care technology with a focus on standard and current software tools.

CS 135 Animation Programming (3) A gentle introduction to programming with user-friendly software. Students will use storyboarding design strategies to create animations and designs with objects in virtual worlds. These animations and designs promote an understanding of basic programming constructs including control structures and object-oriented programming. Projects based on Hawaiian and Pacific themes will be emphasized. Open to all students; especially intended for those with no programming experience. Computer science majors may take this course to prepare for CS 150. (Attributes: GQ, HPP)

CS 137 Digital Media with Flash (3) Use digital images, sounds, and video to create slide shows, animation, podcasts, tutorials, demonstrations, e-portfolios, etc. Save to DVD and web pages. Learn Flash and other software. Students may use existing content such as research project photos. Pre: any prior CS course or instructor's consent.

CS 138 Intro to Computing with Robots (3) A gentle introduction to computer programming using robot kits and a high level programming language. Students will learn how to control and communicate with robots and at the same time gain an understanding of basic programming constructs, including control structures and object-oriented programming. Student projects will include use of robots to simulate space exploration as well as other tasks suited to robots. Computer science majors may take this course to prepare for CS 150. (Attributes: GQ)

CS 140 Multimedia Programming (3) An introduction to computer programming in the context of multimedia. Introduces students to some of the principles of computer science. Students will learn how to write computer programs (in Python) for creating and manipulating three types of media: pictures, sounds, and movies. Computer science majors may take this course to prepare for CS 150.

CS 141 Discrete Math for Comp Sci I (3) Includes logic, sets, functions, matrices, algorithmic concepts, mathematical reasoning, recursion, counting techniques, probability theory. Not open to students with credit in Math 310. Pre: MATH 140 or MATH 140X or placement into MATH 241 or higher.

CS 150 Intro To Computer Science I (3) Intended for Computer Science majors and all others interested in the first course in programming. An overview of the fundamentals of computer science emphasizing problem solving, algorithm development, implementation, and debugging/testing using an object-oriented programming language. Pre: MATH 135T or higher, or placement into MATH 135 or higher. (Attributes: GQ)

CS 151 Intro to Computer Sci II (3) Reinforces and strengthens problem solving skills using more advanced features of programming languages and algorithms such as recursion, pointers, and memory management. Emphasizes the use of data structures such as arrays, lists, stacks, and queues. Pre: CS 150.

CS 171 Data Science Fundamentals in R (3) (lecture/lab) Introduction to the field of data science. Focus on communicating narratives regarding the underlying patterns in the data, i.e. storytelling with data. Topics include R programming fundamentals, data properties, visualization, importing, cleaning, and transforming data. No prior programming experience required. Pre: C or better in MATH 135T or higher, or placement into MATH 140 or higher. (Same as DATA 171) (Attributes: GQ)

CS 172 Python for Data Analysis (3) (lecture/lab) Fundamentals of Python programming for the analysis of real-world datasets. Topics include writing scripts and programs in Python and tools for cleaning, manipulating, and visualizing data. Introduction to intelligent analysis techniques. Properties of domain-specific datasets. No prior programming experience required. Pre: C or better in MATH 135T or higher, or placement into MATH 140 or higher. (Same as DATA 172) (Attributes: GQ)

CS 200 Web Technology I (3) Introductory web page authoring. Creation of client-side web pages using web authoring language and style sheets. Consideration of graphical design elements, validation, browser compatibility, and accessibility. Use of scripting language to add dynamic elements to web pages. (Attributes: GL)

CS 201 Web Technology II (3) Intermediate web page authoring. Creation of web pages that present data from XML sources and use XSLT transformations. Development of an e-commerce web site that uses a standard browser to accept user input, processes the user input with business logic, and connects to a back-end SQL database. Publication of web site to a web server. Pre: CS 200 or instructor's consent.

CS 205 PC Hardware (3) An introduction to the hardware components and assembly of personal computers and their connectivity to networks. Includes laboratory and hands-on assembly.

CS 235 Comp Forensic & Investigation (3) Students will learn how to examine digital devices in a forensically professional manner with the aim of identifying, preserving, recovering, analyzing and presenting facts and opinions about the digital information in the courtroom. Students will learn the basic artifacts of operating systems, file systems, recovery process of deleted data, Cybersecurity attacks, email tracking, mobile forensics, image file forensics, etc.

CS 241 Discrete Math for Comp Sci II (3) Includes functions, matrices, graph theory, trees and their applications, Boolean algebra, introduction to formal languages and automata theory. Pre: CS 141 and MATH 241.

CS 266 Comp Org & Assembly Lang (3) Organization of computers; assembly language; instruction sets: CPU; memory; input/output; interrupts; DMA. Pre: CS 150.

CS 272 Machine Learning for Data Sci (3) How to use data to automatically understand the world, make complex decisions, and even predict the future. Focuses on helping students do more with data by understanding and using a wide variety of machine learning tools. Taught in Python. Pre: CS/DATA 172 and MATH 241, which may be taken concurrently. (Same as DATA 272)

CS 282 Practical Comp for Sci & Engg (3) Create scientific and engineering computation spreadsheets emphasizing equations, references, mathematical functions, and charts. Use MS Excel to show trends, solve what if scenarios, filter information, and summarize information. Design and create MS Access tables, relationships, forms, queries, and reports to analyze scientific data. This class primarily focuses on advanced features and functions of MS Excel and MS Access and creates applications to solve scientific and engineering problems. Pre: MATH 140X (may be taken concurrently). (Attributes: GQ)

CS 300 Web Site Management (3) Advanced topics in web site administration. Issues covered include: site management (operating system, web server and database installation and administration); security (cryptography, authentication, digital certificates); and content (site design, ethical and business considerations). Pre: CS 200 or instructor's consent.

CS 315 Board Game Analysis & Design (3) This course focuses on the design and analysis of modern board games, card games, and other table-top games. Through game play, design, and writing assignments, students will develop critical thinking, problem solving, research and technical writing skills.

CS 321 Data Structures (3) Basic concepts of space/time efficiencies Algorithms and data structures for searching (binary search trees, AVL trees, hash tables) and sorting. Graph algorithms. Data compression using Huffman codes. Pre: CS 151 and 241, or instructor's consent.

CS 340 Graphical User Interfaces (3) Study of the graphical user interface as applied to computer software. Examination of history, human factors, design, technology and implementation of graphical user interfaces. Pre: CS 151.

CS 350 Systems Programming (3) Introduction to systems programming in the UNIX environment. Topics include the UNIX command shells and scripting, the C programming language, UNIX programming tools and system calls, processes and process management, file and console I/O, and other selected topics. Designed for students interested in scientific, engineering or systems programming, systems administration or graduate education in computer science. Pre: CS 151 or CS/DATA 272.

CS 370 Data Management (3) Fundamentals of relational database usage and management from a data science perspective. Topics include properties of multi-table data, the entity- relationship data model, SQL for single and multiple table queries and updates, and communicating with databases using R. Pre: C or better in CS/DATA 171. (Same as DATA 370)

CS 373 Data Security & Privacy (3) This course studies the numerous privacy and security issues that arise when gathering, storing, analyzing, and distributing data. This course will teach students about the fundamental underpinnings of security & privacy as well as give practical, hands-on experience designed to help data scientists identify and resolve real-world issues. Topics include differential privacy, database security, server security, data ethics, machine learning safety, and data integrity. Primarily taught in Python. Pre: C or better in CS/DATA 172. (Same as DATA 373)

CS 385 Software Systems for Astronomy (3) (lecture/lab) The course provides basic instruction in the design and implementation of software for telescope control systems, instrument control systems (cameras and spectrographs); as well as the web- based tools used to plan observations. The course also covers the analysis and archiving of astronomical data. Students learn about existing software tools and packages, develop their own software tools, and analyze datasets from today's leading observatories. The course is open to both astronomy students with a strong interest in computer science, and to computer science students with a strong interest in astronomy. Pre: ASTR 110 or ASTR 180 and CS 150 or CS 172; or instructor's consent. (Same as ASTR 385)

CS 407 Intro To Numerical Analysis I (3) Solutions of equations in one variable, direct and iterative methods for systems of linear equations, the algebraic eigenvalue problem, interpolation and polynomial approximation, error analysis and convergence for specific methods. Offered spring semester. Pre: C in MATH 242 and MATH 211 and programming experience. (Same as MATH 407).

CS 408 Intro To Numerical Analysis II (3) A continuation of CS 407. Topics will include approximation theory, numerical integration and differentiation, solution of systems of nonlinear equations, numerical solutions to differential equations. Pre: C in CS 407. (Same as MATH 408).

CS 410 Elemts Computer Architec (3) (lecture/lab) Basic Machine Architecture, Cache Memory, Computer Arithmetic, RISC, Instructional-level Parallelism, Superscalar Processors, Microprogrammed Control, Parallel Processing. Performance Evaluation. Pre: CS 266 and 321.

CS 420 Database Internals (3) Concepts and methods for managing persistent data. Study of stream, sequential, relative and indexed organizations. Implementation techniques and performance. Introduction to SQL. XML as a data transport and storage mechanism. Pre: CS 321.

CS 421 Database Systems Design (3) Data models: hierarchical, network, relational, object oriented. Relational database management systems. Database design. Client/server systems. Web access to databases. Database administration and security. Transaction management. Database programming. Pre: CS 420.

CS 422 Database Analytics (3) Analysis of large datasets. Data warehousing and data mining. Data preprocessing. Measures of similarity. Transformation and normalization techniques. Classification and clustering algorithms. Association analysis. Curse of dimensionality. Analysis techniques including regression, principal component analysis, linear discriminant analysis and feature selection. Pre: CS 321.

CS 430 Operating Systems (3) Covers the concepts, issues and design of modern operating systems. Topics include processes and state, concurrency, resource management algorithms for memory, processors and I/O devices, protection and security. Case studies of popular workstation, server and mainframe operating systems. Laboratory projects teach concurrent programming and OS implementation techniques. Pre: CS 266, CS 321.

CS 431 Networks & Data Commun (3) Thorough survey course covering major networking concepts such as Link-level Flow, Error Control, Congestive Control and QOS. Modern network protocols such as TCP/IP, ATM, Frame Relay, Ethernet, Fiber Channel and Wireless LANs will be compared and contrasted. Pre: CS 321.

CS 435 Ethical Hacking (3) “To beat a hacker, you need to think like a hacker”. This course will provide hands-on training to students to become information security professionals while learning tools and techniques used by attackers. Students will get training to become ethical hackers to defend against cyber-attacks through the five phases of Ethical Hacking: Reconnaissance, Gaining Access, Enumeration, Maintaining Access, and Covering Tracks. Pre: CS 150

CS 440 Artificial Intelligence (3) Fundamental concepts of artificial intelligence including problem solving, heuristic search, reinforcement learning, and deep learning. Discussion of applications such as board game playing, video game design, and text processing. Pre: CS 321 or CS/DATA 272.

CS 450 Org Of Programming Lang (3) Advanced introduction to the concepts and issues in the design of computer programming languages. Topics include classification of languages, types, semantics, special forms parameter passing, closures, object-orientation, continuations, concurrency, exceptions, interpreters and garbage collection. Laboratory projects highlight design decisions and teach interpreter implementation techniques. Pre: CS 321.

CS 451 Compiler Theory (3) Study of LL, LR, LALR grammars and compiler techniques suitable for programming languages for use in constructing scanners, parsers, code generators, code optimizers for a compiler. Use of compiler construction tools such as lex and yacc to develop a compiler for a block structured programming language. Pre: CS 321.

CS 460 Software Engineering I (3) Emphasizes planning, analysis, and design phases of the Software Development Life Cycle with one model of the SDLC covered. Goal is to learn tools and techniques for sound requirement assessment and, working as a team, produce a verified design of a real software product. Pre: CS 321, One Writing Intensive Course. (Attributes: ALEX, GCC)

CS 461 Software Engineering II (3) Emphasizes implementation, installation and maintenance phases of the SDLC covered in CS 460. Goals are to learn specific techniques and tools for product development testing, measurement and documentation. Team will complete product. Pre: C or better in CS 460. (Attributes: ALEX, GCC)

CS 470 Theory Of Computing (3) Study of various models of computation and their relation to formal languages: finite automata, push-down automata, Turing machines, regular, context-free, and recursively enumerable languages. Unsolvability, NP completeness. Pre: CS 321.

CS 475 Data Visualization (3) This team-taught course provides an interdisciplinary framework for learning cutting-edge techniques in data visualization. Students from various disciplines will collaborate on projects that refine and visualize complex data for interactive, educational presentations. Students are taught hands-on-skills for creating effective data visualization products and tools that can be applied to a broad range of scientific disciplines, education, humanities, and the community. Pre: Junior or Senior standing. CS 150 or ART 112 are recommended prior to the course. (Same as ART 475) (Attributes: GCC)

CS 475L Data Visualization Lab (1) (lab) Hands-on training with the various software tools used throughout CS/ART 475. Course is repeatable twice for a total of 3 credits. Co-Req: CS/ART 475 or Instructor's Consent (Same as ART 475L)

CS 480 Digital Image Processing (3) This course provides introduces digital image processing fundamentals and the software principles used in their implementation. Topics include intensity transformations, spatial filtering, compression, geometric transforms, registration, wavelets, segmentation, and edge detection. This course reinforces theory through a hands-on programming approach. Prerequisite: CS 321

CS 483 Computer Vision (3) A survey of the field of computer vision. Covers both classic as well as deep learning approaches to analyzing images and video. Topics covered include keypoint features, object detection, multi-object tracking, and interacting with humans. Pre: MATH 211, and either CS/DATA 272 or CS 321. (Same as DATA 483)

CS 485 Social Network Analysis (3) Covers the six degrees of separation, models of the small world, page rank, network effects, P2P networks, network evolution, spectral graph theory, virus/news propagation, core-periphery, link prediction, power-laws, scale free networks, network communities, hubs and authorities, bipartite cores, information cascades, influence maximization Pre: CS 151

CS 495 CS Professional Seminar (1) (other) Computer science and software engineering are careers demanding technological and ethical application of computer hardware, software, and human resources. Course emphasis is on entry into and growth in these careers showing the balancing of needs amongst technology, employee, employer, and society. Repeatable up to two times for a total of three credits. Pre: CS 321

CS x94 Special Topics in Subject Matter (Arr.) Special topics chosen by the instructor. Course content will vary. May be repeated for credit, provided that a different topic is studied. Additional requirements may apply depending on subject and topic.

CS x99 Directed Studies (Arr.) Statement of planned reading or research required. Pre: instructor’s consent.