In order to reduce duplication and reduce the chance of inconsistencies, we have removed our own listing of ICS courses and refer you to the UH Manoa Catalog page for ICS courses. But since each ICS 491 and 691 section is different for each instance offered, brief descriptions will be provided below. Some courses are modified from their catalog description and are listed below.
ICS 691, Advanced Data Structures – Prof. Nodari Sitchinava
The study of data structures studies the problem of preprocessing and organizing large data that mostly does not change over time such that we can answer queries on this data efficiently. You encounter these types of problems more often than you think: think of interactions with Google search (return a document among many that contains a query text), finding directions (return the shortest path between two points on a large map that mostly does not change), querying employee databases (return all employees that satisfy certain criteria, e.g. fall within some salary and age ranges), etc.
There have been many recent results in the area of data structures with many more problems remaining open. The course will provide an overview of existing data structuring results, present in-depth understanding of some of the specific results, teach specific data structuring techniques, and provide the students with an opportunity to tackle some of the open problems.
To get a flavor of the types of problems studied in this course, consider the following questions:
- Did you know that the best known algorithm for sorting arbitrary integers runs in O(n √log log n) time?!
- You probably learned in the undergraduate algorithms course that you can use a priority queue to sort data, but did you know that any sorting algorithm that runs in O(n · f(n)) time can be converted into a priority queue data structure with O(f(n)) time per operation?
- You also probably learned in an undergraduate algorithms class that Dijkstra algorithm is the fastest way to find the shortest path between two nodes on a graph. But did you know that if Google simply implemented Dijkstra algorithm in Google Maps, each time you asked Google to find the shortest route between two points on the map of the US, it would take minutes, and not milliseconds (as it does now) to return the answer?
For more information, please visit the course website.
ICS 695, Advanced Security and Privacy for Internet of Things and its Applications – Prof. Li
The Internet of Things (IoT) is becoming an emerging trend and a growing reality in our age. In IoT, a variety of smart objects (things) interacts and communicates with the environment by exchanging the information. Its pervasive presence offers the ability to measure the contextual indicators and to facilitate information sharing by enabling network connections among physical objects. However, the growing importance of Internet of Things (IoT) and its use to support critical applications have made security and privacy a central issue today. It becomes evident that weaknesses of IoT could open a door for adversaries and some vulnerability, inherent in IoT, could be targeted by the malicious users. The potential vulnerability of IoT may lead to a compromised system if there is no deployment of appropriate, well-designed countermeasures. This course will carefully demonstrate the state-of-the-art security solutions for IoT. It will further introduce some interesting case studies such as smart home, mobile healthcare, smart grid, modern automobile, etc. More importantly, it will comprehensively explore security features which are critical for IoT, a future market with billions of customers in the next a couple of decades. For details, see course website.
ICS 491, Security and Privacy for Internet of Things – Prof. Li
This course will teach the security and privacy in Internet of Things (IoT) and its applications. Topics include the security and privacy of practical examples e.g. smart grids, smart home/city, mobile healthcare, secure control platform for physical, human and cyber (phc) triad, applied cryptography, differential privacy, etc. For details, see course website.
ICS 691, Security and Privacy for Internet of Things – Prof. Li
The Internet of Things (IoT) is becoming an emerging trend and a growing reality in our age. In IoT, a variety of smart objects (things) interacts and communicates with the environment by exchanging the information. Its pervasive presence offers the ability to measure the contextual indicators and to facilitate information sharing by enabling network connections among physical objects. However, the growing importance of Internet of Things (IoT) and its use to support critical applications have made security and privacy a central issue today. It becomes evident that weaknesses of IoT could open a door for adversaries and some vulnerability, inherent in IoT, could be targeted by the malicious users. The potential vulnerability of IoT may lead to a compromised system if there is no deployment of appropriate, well-designed countermeasures. This course will carefully demonstrate the state-of-the-art security solutions for IoT. It will further introduce some interesting case studies such as smart home, mobile healthcare, wearable computing, smart grid, modern automobile, etc. More importantly, it will comprehensively explore security features which are critical for IoT, a future market with billions of customers in the next a couple of decades. For details, see course website.
ICS 491 (455), Security and Trust II : Channel security – Prof. Li
With the advent of networks and expansion of cyber space, security and trust have become a central concern in computation and in information systems. This course will provide an overview of the crucial concepts and techniques of information assurance in networks and cyber space. We should discuss basic concepts of cryptology, protocols for authentication and key establishment and cryptographic primitives. For details, see course website.
ICS 491, Video Game Design and Development – Prof. Leigh
The course teaches the theory and practice of video game design and development. Students will form multi-disciplinary teams, to design, build and demonstrate video games. Topics covered will include: gameplay design; software architecture and data-structures for video games; introduction to 3D and stereoscopic computer graphics and virtual reality; hardware architectures for video game systems; physical and perceptual limits of video game players; sound and psychoacoustics; real-time artificial intelligence techniques for games; multiplayer and networked game design; video game physics. For details, see course advertisement.
ICS 491, Basic Concepts of Security, Privacy and Trust – Dusko Pavlovic
As many social processes migrate into cyber space, computation is becoming a social process, and security is emerging as one of the central problems of computer science and engineering. The traditional methods of computer security, developed in the 80s and 90s, are vastly overrun by the incentives and the creativity of cyber attackers. In this course, we shall discuss the basic concepts of security in general, their early implementations in computer security, and the more advanced models of channel security and privacy, applicable to network interactions in general.
ICS 691, Data Security and Cryptography – Dusko Pavlovic
As soon as the capability for data gathering and storage is acquired, the need for data encoding and enciphering emerges. While living organisms evolve their data hiding methods spontaneously, and while diplomats usually task their secretaries with managing their secrets, computer scientists are trying to make data security and cryptography into a science. We shall present a broad overview of the basic methods of this science. The presentation will roughly follow the history, beginning from simple classical ciphers, introducing the methods for composing them into symmetric crypto systems, and finishing with a high level overview of the basic ideas of modern cryptography.
ICS 691, Parallel Algorithms – Prof. Sitchinava
This course will teach how to design and analyze algorithms for parallel systems. The students will learn the techniques for designing and analyzing parallel algorithms for various parallel models of computation (shared memory, distributed memory, interconnection networks) and how these models and techniques relate to programming modern parallel systems, such as multicores, clusters and GPUs. For more details, see course website: http://www2.hawaii.edu/~nodari/teaching/f14/index.html
ICS 691, Security and Privacy for Cloud Computing and Internet of Things – Prof. Li
The growing importance of Internet of Things (IoT) and Cloud Computing and their use to support critical applications, has made security & privacy a central issue today. However, it becomes evident how vulnerable our information system, communication system and infrastructure system actually are. The main objectives of this course are to: 1) introduce high quality works highlighting security issues, 2) explain the state-of-the-art methodologies in security, 3) model threats and countermeasures, and 4) discuss corresponding case studies (smart grid, wearable computing, smart home, modern automobile, etc.), in areas of IoT, cloud computing and software-defined networks. The course website is at: http://www2.hawaii.edu/~depengli/Teaching/ICS691-Syllabus.pdf
ICS 691, Computer Arithmetic – Prof. Seidel
The course will cover the foundations of computer arithmetic algorithms and data structures related to hardware design, software development and cryptography.
ICS 691, Artificial Intelligence in Medicine and Biology – Prof. Reed
See this course description
ICS 691, Formal Methods – Prof. Seidel
This course covers foundations of formal methods for specification, logic reasoning and verification. The course discusses approaches for the application of formal methods to the design and verification of hardware, software systems and communication protocols. Part of the course focuses on practical examples of formal tools and of formal specification and verification projects.
ICS 691, Serious Game Development with Python, Django, and Makahiki – Prof. Johnson
According to wikipedia, a “serious” game is one that is designed for a primary purpose other than entertainment. This online course will cover selected concepts of serious game design in Python and Django including such game mechanics as points, scoreboards, badges, social and referral bonus mechanics through the guided exploration and enhancement of the serious game engine “Makahiki”. The course website is at: http://ics691s13.wordpress.com/
ICS 613, Advanced Software Engineering – Prof. Johnson
A primary goal of ICS 613: Advanced Software Engineering is to take you to the next level with respect to your ability to design and implement high quality software systems using open source software development principles. The course website is at: http://ics613s13.wordpress.com/
ICS 691, Computing for Exploration – Prof. Binsted
From the Age of Discovery through to the Space Age, information (and the processing and sharing of that information) has made exploration possible. In this course, we will look at how information, computation and communication technologies have enabled and advanced human exploration of the Earth and beyond. Each week, we will discuss two readings: one (historical or present day) about the challenges explorers face, and one about (already applied or potentially useful) technologies that address those challenges.
ICS 691, Social Media, New Media, and Civic Engagement – Prof. Robertson and Dr. Semaan
Interconnected social media sites like Facebook, Twitter, YouTube, etc. have played significant roles in recent civic and political activities. Examples include the 2012 U.S. elections, the Arab Spring, and the Japanese tsunami. In this research seminar we will survey the literature on use of social media during political events, civic activism, responses to disasters and crises, and other situations in which governments and citizens must share information and coordinate interaction. We will explore research methods used in understanding behavior in these situations. We will also look at questions of system development and design. The course is intended to be interdisciplinary and the format is seminar (discussion of readings) and project (literature review, data collection, or system design).
ICS 691, Special Topics: Software for the Smart Grid – Prof. Johnson – CRN 79274
This seminar course focuses on the issues and applications of software technology to support the modernization of our electrical infrastructure. The course will have two halves: in the first half, participants will read selected papers on software for the smart grid to become familiar with the issues, and in the second half they will carry out a project. The project could be an evaluation of an existing technology or the development of new software to support the smart grid. Time and availability permitting, we will have guest speakers to talk about local and national issues in smart grid development. Fridays, 9am – 11:40am, Hamilton 3F. Course website is here.
ICS 691, Special Topics: Creation of Digital Libraries – Prof. Quiroga – CRN 79515
See description at http://www2.hawaii.edu/~lquiroga/courses/lis647-ics691/lis647-ics691.htm
ICS 491, Special Topics: The Social Information Infrastructure – Prof. Gazan – CRN 87288
In your professional lives you will be evaluated not just on how well you can accomplish a task, but in how well you can link the skills and information you have with those of other people to solve larger problems. This course surveys the current and near-future landscape of this medium of information creation and exchange: the social information infrastructure. You will learn some of the ways information can be created, translated, transported, coordinated or blocked through this socio-technical medium, and how people contribute to it, and navigate through it, to connect with the information they need. One of the ways you’ll apply the skills developed in this course is by participating in the 2012 Google Online Marketing Challenge, where you will work with a local business or nonprofit of your choice, and receive $200 of free online advertising and access to professional Google backend tools to help your organization connect with its target audience.
This is an online course designed for advanced undergraduates with a high level of internal motivation. The course is open to students from all majors, and there are no prerequisites, though ICS majors who have taken ICS 314, 413, 414, 419 or 464 will have a useful grounding in some of the core concepts.
ICS 691, Special Topics: Artificial Intelligence in Biomedical Informatics – Prof. Reed – CRN 89437
This course gives students an overview of Artificial Intelligence (AI) tech- niques used in medicine and biology. Practical applications of AI in biomedical informatics range from decision support systems for diagnosis to modeling physiologic processes, to analyzing human and animal DNA. Students in the course gain an in-depth practical experience by designing and completing a course project on a topic they choose.
Lectures are on Mon and Wed, 10:30-11:45am in 003G Hamilton Library (lower level). Credits: 3. PDF Syllabus
ICS 691: Foundations in Medical Science and Computing
This course provides a broad foundation in medical science and computing, and is essentially a survey course, not focusing in one particular area, but rather being designed to provide students with an introduction to this burgeoning field. The primary purpose of the course is to help students with the decision as to whether this area is of interest, to show opportunities, and to provide students with the tools which will help them to be successful should they choose to pursue this highly auspicious area.
Online course. Credits: 3. [PDF Syllabus]
ICS 491, Special Topics: Artificial Intelligence for Games – Prof. Chin – CRN 78774
Artificial Intelligence is essential to the suspension of belief in a good video game. For example, the GameSpot review of Crysis 2 said, “Poor AI detracts from the excitement” and the IGN review of Vampire: The Masquerade said, “Unfortunately, the AI has the intelligence of a doorknob sometimes, which keeps the shine off an otherwise delightful and multilayered experience.” This course will introduce students to the specific techniques used to simulate artificial intelligence in computer and video games. Students will extend existing PC games with their own AI implementations and hold “AI shootouts” to see which student (or team of students) has the best AI algorithm/implementation.
Students must have taken ICS 212 or have a working knowledge of C/C++ as C++ is the de facto standard language for computer games programming and most of the computer games that students will modify for this class are written in C++. Students do not need any background in AI (ICS 361 or 461) or in game programming.
ICS 491, Special Topics: Applications of Machine Learning – Prof. Still – CRN 77837
Focus Application Areas:
- Quantitative Finance
ICS 691, Social Computing – Prof. Gazan – CRN 88616
Social computing is an umbrella term for technologies and virtual spaces that allow users to create, describe and share content, and for the communities that arise around them. The goal of this course is to survey theoretical and practical instances of social computing such as blogs, social bookmarking, classification and recommendation systems, compare them with traditional professional equivalents, and evaluate how these diverse perspectives can inform one another.
This is an online, asynchronous course. It is designed for graduate students who have a high level of internal motivation to extend their knowledge about social computing and related topics, and who will take full advantage of the opportunity to work both independently and in virtual groups. In keeping with the social nature of the course, staying current and participating actively and regularly in an online environment is critical.
Though no specific technical background is required, you should be comfortable with teaching yourself how to use Web 2.0 and related technologies, which may involve downloading and installing software on your computer, registering with various sites, and troubleshooting.
ICS 691, Artificial Intelligence in Biomedical Informatics – Prof. Reed – CRN 88617
This course gives students an overview of Artificial Intelligence (AI) techniques used in medicine and biology. Practical applications of AI in bioinformatics range from decision support systems for diagnosis to modeling physiologic processes, to analyzing human and animal DNA. Students in the course gain an in-depth practical experience by designing and completing a course project on a topic they choose.
ICS 491, Operating Systems – Prof. Casanova – CRN 88612
This is an undergraduate course in Operating Systems with the following learning objectives:
- Understand the role(s) of an operating systems.
- Understand the fundamental principles of operating system design and kernel implementation.
- Understand key features of operating systems of practical importance, including Linux and Windows.
- Understand and gain hands-on experience with the fundamental components of modern operating systems: memory and virtual memory management, process and thread management, file systems, process and thread communication, operating system virtualization.
This course used to be taught as ICS412, but is being significantly modified and currently taught as a special topics 491 course this semester, pending renumbering in the future.
ICS 491, Computers in Medicine – Prof. Patriarche – CRN 88611
The course provides students with a broad foundation in the field of computers in medicine and in health-care research, preparing the student for continuing study and research in this area. A broad range of contemporary computer based medical technologies will be discussed, both in clinical practice, research, as well as outside of traditional practice. This will provide the student with an exposure to the many roles of computers in contemporary western medicine. Looking to the future, expected advancements in computers will be discussed in connection with the demands of society for improved length and quality of life, and a level of health care which exceeds what unassisted health-care professionals can provide. The course will be describe how these forces inevitably will lead to the imbuement of health-care with computers, which will lead to a complete change in what health-care is. The course will discuss research techniques, medical study design, statistics, devices, and specific computer algorithms relevant to computer scientists working in this area.
Note that there is a graduate course in Biomedical Informatics (ICS614), which both graduate students and undergraduate students can take. This ICS491 course is complementary to ICS 614 Biomedical Informatics; however, whereas the emphasis of ICS 614 is information, the emphasis of this course will be computer technology. Furthermore, ICS 491 Computers in Medicine will place a significant emphasis on historical context, and the future evolution of medicine.
Intended audience: Those with a keen interest in the intersection of computer science, biology, medicine, and medical research.
ICS 691, Advanced topics in robotics – Prof. Still
For more information see http://www2.hawaii.edu/~sstill/teaching.html
ICS 691, Section 2: Social Computing – Prof. Gazan – CRN 87210
Social computing is an umbrella term for technologies and virtual spaces that allow users to create, describe and share content, and for the communities that arise around them. The goal of this course is to survey examples of social computing such as blogs, social bookmarking, classification and recommendation systems, compare them with traditional professional equivalents, and evaluate how the two perspectives can inform one another.
ICS 691, Section 1: Digital Government – Prof. Robertson – CRN 88884
Digital government is the application of information and communication technologies to the operation of government systems and the participation of citizens in government and civic activities. In this course we will explore e-Government, e-Participation, and e-Citizenship. We will survey e-Government systems in many countries and consider what is working and what is not. We will look at trends in user acceptance, growth, and new directions such as Web 2.0. and distributed/mobile systems. We will consider the usability challenges of systems that must be universally accessible. We will examine how new media impacts existing organizations (e.g. libraries). This course should be taken by students interested in information provision and organization in the domain of politics, politics and new media, HCI, social trends and activism, and computers and society. The course will be taught in a seminar format utilizing current readings from the research literature. We will develop a “Citizen Participation” prototype using new media and help President Obama figure out what to do with his Facebook site.
ICS 491, Section 3: Computers in Medicine – Prof. Patriarche – CRN 88877
The purpose of this course is to provide the student with a broad foundation regarding the role of computers in health-care. The course will begin with a brief introduction to the history of medicine in society, and how it has evolved into the current western model. The course will discuss specific technical and scientific innovations which have shaped this history. A broad range of contemporary computer based medical technologies will be discussed, both in clinical practice, research, as well as outside of traditional practice. This will provide the student with an exposure to the many roles of computers in contemporary western medicine. Looking to the future, expected advancements in computers will be discussed in connection with the demands of society for improved length and quality of life, and a level of health care which exceeds what unassisted humans are able to provide. The course will be describe how these forces inevitably will lead to the imbuement of health-care with computers, which will lead to a complete change in what health-care is.
ICS 491, Section 1: Software Design for Robotics – Prof. Ikehara – CRN 78823
Software Design Programming for Robotics is a specialized area of programming involving the integrated knowledge of both hardware and software into a working robotic system. The prerequisite for this course is ICS 331. http://www2.hawaii.edu/~cikehara/
ICS 491, Section 3: Social Informatics: Technology for Collaboration & Online Communities – Prof. Suthers – CRN 78169
Interested in recent developments in “Web 2.0,” social networking, and/or massively multiplayer online games? Whether and how thousands of people collaborating informally can produce a valuable resource such as Wikipedia? How identity and trust are formed online? Or how new technologies might support learning and work in ways that both augment and improve on collaborating in person?
In the first half of this course, we will survey the foundations of information and computer technologies for supporting people learning, playing and working together. In the second half, we will survey current research (the past several years) on topics chosen by class members. Previous topics have included blogging, collaborative gaming, collaborative work, community design patterns, cultural issues, distributed and online learning, distributed work teams, identity and trust online, interaction in virtual worlds, knowledge management, mobile social computing, online communities, social networks, and wikis.
If you are interested in the use of information and communication technologies to support people learning, working, or playing together, then enroll in ICS 491, section 3 this fall. There is no prerequisite other than interest in reading and discussing papers in this diverse area. Contact Dan Suthers, POST 309B, 956-3890 or email@example.com for further information.
ICS 691, Section 2: Human Factors and Human-Computer Interaction in Space Exploration – Prof. Binsted – CRN 77811
Space exploration presents unique challenges for human psychology and physiology. If long-term space expeditions to Mars and permanently occupied stations on the Moon are to become reality, we must anticipate and avoid (or at least mitigate) as many of these problems as possible.
In this course, we will read and discuss online a series of current scientific articles relating directly to this topic. Students will be expected to lead the discussion on at least one paper, and to contribute significantly to all discussions. The final grade will be based on the quality of participation (20%) and on two term papers (40% each).
ICS 691, Section 3: Advanced Computer Vision – Prof. Baek – CRN 78824
** If the class is small (with less than 5 students), this course will be taught as an independent project course. Students will choose the project topic either by their own or from the list provided by the instructor, and have meeting with the instructor regularly during the semester.
** If the class size is larger than 4, this course will be a regular lecture-based one following the course description below:
Computer vision, the study of extracting information from images and enabling machines to understand images, is a broad-based, interdisciplinary and applied field in computer science, and has generated many exciting results that increase our understanding of the complex and remarkable task of interpreting the world around us from visual information. This course will introduce fundamental problems of computer vision, core concepts and principles, and algorithms of computer vision. During the class, advanced topics on both the theory and practice in the field will also be presented via discussing recent articles published in journals and conferences.