Courses

Students participating will have a schedule that incorporates their courses of preference as indicated in their application to paticipate in the summer program. The course titles are the following:


Computer Networks I: Computer and Network Security

Instructor

Partha Dasgupta, Arizona State University. Personal homepage at ASU.

Evaluation

Final exam, lab assignments

Prerequisites

To be supplied soon

Description

Security is at the forefront of the currents of computing news. Fraud has taken a front seat in the Internet, and is already causing significant financial losses that are climbing. The innovation in computer crime has blown the lid on many inherent flaws in our computing infrastructure (i.e. use of passwords) and financial infrastructure (i.e. use of credit card and account numbers). We are coasting in denial and spreading the losses and hoping things will get better. From "Evil Twins" to "Pharming", from "SQL Injection" to "Rootkits", the march of attack discovery is outpacing the fixes. The sinister truth is well stated by a trade magazine that said: "Computing at home has never been so powerful - and treacherous. Just as millions of consumers are buying new PCs and signing up for blur-fast Internet connections, cybercrooks are hatching schemes to take control of their machines."

We cover the techniques used by attacks to gain personal information and financial gains. We cover the countermeasures that are being deployed with limited success. We cover the variety of new tricks that play cat and mouse between fraudsters and security experts. We cover the inherent design defects that to unintended consequences. In addition we cover the latest research techniques and academic protocols that can stem the tide of attacks (virtualization, integrity checking, link farm detection and so on).

  1. Part 1: Security Basics (Security Principles, Threats and Attacks, Vulnerabilities, Countermeasures, False solutions (e.g. shared secrets), Threat Models, Hardening Systems)
  2. Part 2: Attacks (Virus, Trojans and Worms, Buffer Overflows, SQL Injection, Spam, Pharming, Link farms, Attacking software systems, Attacking Networks, Attacking Hardware, Rootkits and other Esoteric attacks, Social engineering)
  3. Part 3: Countermeasures (Patches and security fixes, Awareness and Education, Cryptographic Solutions, Embedding security in software and hardware, Out of band notifications, Simple yet effective)
  4. Part 4: Cryptography (Encryption and Hashing, Shared secrets, Challenge response, Public Key Systems, Digital Certificates, Digital Signatures, Key Management, Applications of cryptography in Web Transactions)
  5. Part 5: Network Security (Secret Communication, Authentication, SSL and IPSec, PGP and Email, Intrusion Detection, Denial of Service, Honeypots and Tarpits)
  6. Part 6: Operating System and Application Security (Programming secure software, Bugs and vulnerabilities, Application and Operating Systems, Firewalls, Virus Detectors, Software Signatures, "Kernel Integrity Checkers", "Application Integrity Checkers")
  7. Part 7: State of the Art? (Are we in a sorry state?, Software trust management, Hardware trust management, Innovative tricks, Evasive virus scanning, Return of Obscurity Techniques (e.g. Steganography))

Lab exercises will cover topics as virtualization, rainbow tables for password recovery or RSA public key encryption.

Back to Top

Computer Networks II: Wireless Network Security

Instructor

Abraham Rubinstein, HEIG-VD Switzerland. LinkedIn webpage.

Evaluation

Final exam, lab assignments

Prerequisites

Knowledge of communication protocols, LAN technologies (Ethernet)

Description

Wireless technology is becoming ubiquitous, not only at home and at the work place, but also in public places with companies like Google offering the service for free in entire cities. Although the use of Wireless LAN brings with it increased mobility and the flexibility for the users, it can also be the source of considerable security risks, reliability problems and of low quality of service. These problems can be dealt with and solved with the proper level of knowledge of the technology.

This course will cover both theoretical and practical aspects of IEEE 802.11x networks, including a review of applicable standards, the protocol architecture, CSMA/CA, RTS/CTS and contention free access mode protocols, wireless security, including the weaknesses of WEP and WPA, physical layer channels in the ISM band, frequency reutilization, layer-2 wireless roaming, and troubleshooting aspects.

Back to Top

Ubiquitous Computing: Introduction to ubiquitous computing

Instructor

Olivier Liechti, HEIG-VD Switzerland. LinkedIn homepage

Evaluation

Final exam, project

Prerequisites

Java programming

Description

Ubiquitous computing is a term coined by Mark Weiser to describe the third wave of computing. The idea is that people will increasingly interact with very diverse computing devices: mobile devices, interactive surfaces, sensors, etc. These devices are embedded in the environment and almost seem to "disappear". As a result, the interaction between humans and technology becomes more natural and more effective.

In this course, we will provide an introduction to ubiquitous computing and study topics such as ambient interfaces, context-aware computing and location-based services. We will address them from various perspectives, to highlight that ubiquitous computing is a multi-disciplinary field (human-computer interaction, computer mediated communication, distributed systems, middleware, etc).

Back to Top

Web Technologies: Search Engine Technology

Instructor

Alvaro Monge, California State University Long Beach. Personal homepage at CSULB.

Evaluation

Final exam, lab assignments

Prerequisites:

Data Structures, Algorithms, Java, Fundamentals of Probability & Statistics

Description

This class will study the technology used by search engines like Google in order to retrieve a ranked list of web pages that may contain the information that satisfies a user request (query).

In this class, we will review traditional information retrieval (IR) techniques and move on to focus on how search engines work. In a traditional IR system, the collection of documents is static. Considering the WWW as a collection of web pages (documents), it is clear to see that this is a dynamic collection. Existing web pages change over time, some are created, others deleted, and they are also linked together -- what makes it a "web". A WWW IR system must therefore crawl the web to find new/changed web pages, index the terms in these pages, and when a query is presented, it must rank the retrieved pages by a measure that is indicative of the relevance of the web page to the query.

This class will be a survey of the techniques used in this entire process.

Back to Top

Bioinformatics I: Introduction to bioinformatics

Instructor

Sami Khuri, San José State University. Personal homepage at SJSU.

Evaluation

Final exam, homework, exercises

Prerequisites

Interest in biology

Description

The need to understand the immense amount of data produced by large scale DNA sequencing is of paramount importance. Demands for sophisticated analysis of biological sequences are the driving force behind the rapidly expanding research area of bioinformatics.

This practical course provides an introduction to the main public domain tools, databases and methods in bioinformatics, including DNA and protein databases, such as Genbank and Swiss-Prot, software tools such as those at the National Center for Biotechnology Information (NCBI) and other web accessible applications.

Detailed description: http://www.cs.sjsu.edu/faculty/khuri/Yverdon_2008/. Students who would like more information or have questions about the class may write an e-mail to Dr. Khuri directly. His e-mail address is khuri@cs.sjsu.edu.

Back to Top

Bioinformatics II: Microarrays and gene-expression data analysis

Instructor

Carlos Andrés Peña, HEIG-VD Switzerland. LinkedIn homepage.

Evaluation

Final exam, lab assignments

Prerequisites

To be supplied soon

Description

Complete description coming soon. Here are some topics to be included:

Introduction and experimental biology background.

DNA microarrays and gene expression.

Gene-expression data analysis.

Network modelling from gene-expression data.

Other microarray data.

Back to Top

Software Engineering I: Open-Source Software Development

Instructor

Cay Horstman, San Jose State University. Homepage at SJSU. Personal homepage.

Evaluation

Final exam, project

Prerequisites

Intermediate programming in Java or C/C++. Some experience with shell usage in Unix/Linux/Windows with Cygwin/Mac OS X.

Description

This summer course introduces the theory and practice of open source software development. The theoretical part covers the foundational underpinnings through reading and analysis of key white papers, software licenses, documented development practices, and case studies of several important projects of different degrees of complexity. In the practical part, you will learn to use the "tools of the trade", in particular, source control, build automation, and patching. You will learn how to build open source projects, identify and implement fixes and improvements, and interact with project developers and committers.

Back to Top

Software Engineering II: Global Software Engineering

Instructor

James Collofello, Arizona State University. Personal homepage at ASU.

Evaluation

final exam, project

Prerequisites

Knowledge of the software development process, i.e. the requirements, design, coding and testing process. An undergraduate course in software engineering should provide the prerequisites for this course.

Description

This course is designed for computer science or system engineering students interested in learning how to develop software in a global environment. Global software development is a reality with multi-national companies producing software products with teams of software developers from around the world. There are many challenges in planning and tracking these projects and organizing these developers into virtual work teams.

This self-contained course will provide an opportunity for students to work in teams to create software development, quality assurance and risk management plans for a global software development project. Specific topics to be addressed include:

Back to Top

Artificial Intelligence I: Artificial Societies and Emergent Behavior

Instructor

Jon Pearce, San Jose State University. Personal homepage at SJSU.

Evaluation

Project, exam

Prerequisites

No prior knowledge of Logo is assumed. Several other examples presented assume some knowledge of Java and UML, although most of the labs can be done using NetLogo, Java, C++, or C#.

Description

What's beyond CORBA and SOA? This course will present an architecture for distributed applications viewed as artificial societies populated by autonomous, social, goal-driven agents. This type of architecture allows us to leverage the power of emergent behavior: complex behavior that spontaneously arises from the interactions between many simple agents. Applications (which students will build in class) include ubiquitous computing, grid computing, and modeling complex natural systems such as cultures, economies, eco-systems, and more.

This course will introduce students to NetLogo, a framework for creating artificial societies. NetLogo agents are programmed using a simple, powerful language called Logo.

Back to Top

Artificial Intelligence II: Machine Intelligence

Instructor

Andrés Perez-Uribe, HEIG-VD Switzerland. Personal homepage.

Evaluation

Project, exam

Prerequisites

Data structures and algorithms, Java or C programming, elementary vector math and differential calculus

Description

The idea of building machines with some sort of intelligence has been present at least since the ancient Greek mythology. With the advent of the computer, around 50 years ago, the Artificial Intelligence (AI) domain was born adopting a symbol manipulation approach that has enabled us to achieve great exploits like beating the best chess player in history. Nevertheless, most of us will agree that Deep-blue is not an intelligent machine. How then, are we going to build intelligent machines?

During this course we will move from the symbolic paradigm (so called Good Old-Fashioned AI) onto a connectionist paradigm, whereby parallel distributed processing models are implemented using neurally inspired systems (e.g., artificial neural networks), and then onto an embodied intelligence paradigm, where the emergence of intelligence is thought to be importantly driven by the interaction of the system (e.g., a robot) and its environment.

The course will consist of lectures and laboratory exercises, whereby the students will be able to use and understand the workings of relevant examples of the three mentioned AI paradigms.

Back to Top

Swiss Summer Program