Global Arc

1
Search International Offerings

You can now simultaneously browse international opportunities and on-campus courses; the goal is to plan coursework — before and/or after your trip — that will deepen your experiences abroad.

2
Add Your Favorites

Log in and add international activities and relevant courses to your Global Arc.

3
Get Advice

Download your Arc and share with your academic adviser, who can help you refine your choices.

4
Enroll, Apply and Commit

Register for on-campus classes through TigerHub, and apply for international experiences using Princeton’s Global Programs System.

5
Revisit and Continue Building

Return to the Global Arc throughout your Princeton career as you delve deeper into your interests. 

Refine search results

Subject

Displaying 21 - 30 of 47
Close icon
Computer Science
Junior Independent Work (B.S.E. candidates only)
Offered in the spring, juniors are provided with an opportunity to concentrate on a "state-of-the-art" project in computer science. Topics may be selected from suggestions by faculty members or proposed by the student. B.S.E. candidates only.
Close icon
Computer Science
Distributed Systems
This course covers the design and implementation of distributed systems. Students will gain an understanding of the principles and techniques behind the design of modern, reliable, and high-performance distributed systems. Topics include server design, network programming, naming, concurrency and locking, consistency models and techniques, security, and fault tolerance. Modern techniques and systems employed at some of the largest Internet sites (e.g., Google, Facebook, Amazon) will also be covered. Through programming assignments, students will gain practical experience designing, implementing, and debugging real distributed systems.
Close icon
Computer Science
Theory of Algorithms
Design and analysis of efficient data structures and algorithms. General techniques for building and analyzing algorithms. Introduction to NP-completeness. Two 90-minute lectures. Prerequisites: 226 and 240 or instructor's permission.
Close icon
Computer Science
Fundamentals of Machine Learning
Computers have made it possible to collect vast amounts of data from a wide variety of sources. It is not always clear, however, how to use the data, and how to extract useful information from them. This problem is faced in a tremendous range of social, economic and scientific applications. The focus will be on some of the most useful approaches to the problem of analyzing large complex data sets, exploring both theoretical foundations and practical applications. Students will gain experience analyzing several types of data, including text, images, and biological data. Two 90-minute lectures. Prereq: MAT 202 and COS 126 or equivalent.
Close icon
Computer Science
Computer Graphics
The principles underlying the generation and display of graphical pictures by computer. Hardware and software systems for graphics. Topics include: hidden surface and hidden line elimination, line drawing, shading, half-toning, user interfaces for graphical input, and graphic system organization. Two 90-minute lectures. Prerequisites: 217 and 226.
Close icon
Computer Science
Computer Vision
An introduction to the concepts of 2D and 3D computer vision. Topics include low-level image processing methods such as filtering and edge detection; segmentation and clustering; optical flow and tracking; shape reconstruction from stereo, motion, texture, and shading. Throughout the course, there will also be examination of aspects of human vision and perception that guide and inspire computer vision techniques. Prerequisites: 217 and 226. Two 90-minute lectures.
Close icon
Computer Science
Information Security
Security issues in computing, communications, and electronic commerce. Goals and vulnerabilities; legal and ethical issues; basic cryptology; private and authenticated communication; electronic commerce; software security; viruses and other malicious code; operating system protection; trusted systems design; network security; firewalls; policy, administration and procedures; auditing; physical security; disaster recovery; reliability; content protection; privacy. Prerequisites: 217 and 226. Two 90-minute lectures.
Close icon
Computer Science
Cryptography
An introduction to modern cryptography with an emphasis on fundamental ideas. The course will survey both the basic information and complexity-theoretic concepts as well as their (often surprising and counter-intuitive) applications. Among the topics covered will be private key and public key encryption schemes, digital signatures, pseudorandom generators and functions, chosen ciphertext security; and time permitting, some advanced topics such as zero knowledge proofs, secret sharing, private information retrieval, and quantum cryptography. Prerequisites: 226 or permission of instructor. Two 90-minute lectures.
Close icon
Computer Science
Human-Computer Interaction
How do we create interactive technology centered around people and society at large? This course is a survey of the field of Human-Computer Interaction (HCI). Lectures, readings, and precept discussions cover foundational theories as well as topics in HCI. We focus on two core areas of interactive computing (e.g., input/output, ubiquitous computing) and social computing (e.g., collaboration, social media), and span a breadth of domains, such as AI+HCI, AR/VR, design tools, and accessibility. Put your learnings into practice, with a semester-long group project, by either studying how people think or by designing a novel technological system.
Close icon
Computer Science
Economics and Computing
Computation and other aspects of our lives are becoming increasingly intertwined. In this course we will study a variety of topics on the cusp between economics and computation. Topics to be covered include: games on networks, auctions, mechanism and market design, reputation, computational social choice. The aim of the course is two-fold: (1) to understand the game-theoretic issues behind systems involving computation such as online networks, and (2) to learn how algorithms and algorithmic thinking can help with designing better decision and allocation mechanisms in the offline world.