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 1 - 10 of 47
Close icon
Computer Science
Computers in Our World
Computers are all around us. How does this affect the world we live in? This course is a broad introduction to computing technology for humanities and social science students. Topics will be drawn from current issues and events, and will include discussion of how computers work, what programming is and why it is hard, how the Internet and the Web work, security and privacy. Two 90-minute lectures. Self-scheduled computer laboratory.
Close icon
Computer Science
The Art and Science of Computer Programming
In this course, intended as an introduction to computer programming for students with little to no previous experience, students will learn to write, read, and reason about computer programs. Topics include conditionals, loops, sound, animation, arrays, and functions. This course offers an alternative arts-inspired presentation of the first half of the material covered in COS 126.
Close icon
Computer Science
Computer Science: An Interdisciplinary Approach
An introduction to computer science in the context of scientific, engineering, and commercial applications. The course will teach basic principles and practical issues, and will prepare students to use computers effectively for applications in computer science, physics, biology, chemistry, engineering, and other disciplines. Topics include: hardware and software systems; programming in Java; algorithms and data structures; fundamental principles of computation; and scientific computing, including simulation, optimization, and data analysis. No prior programming experience required. Video lectures, one class, two preceptorials.
Close icon
Computer Science
Nand to Tetris: Building a Modern Computer from First Principles
A hands-on synthesis of key topics from digital architectures and software engineering in one course. Starting with the most elementary logic gate, Nand, students build a general-purpose computer system that can run Tetris, and any other program. You will learn how computers work, how they are constructed, and how to plan and build large-scale systems. The hardware platform (logic gates, RAM, CPU) is built in a simple Hardware Description Language, learned in the course; The software hierarchy (assembler, compiler, basic OS) is built in Java. Assignments are done in pairs and are supported by extensive scaffolding and partial implementations.
Close icon
Computer Science
Introduction to Programming Systems
An introduction to computer organization and system software. The former includes topics such as processor and memory organization, input/output devices, and interrupt structures. The latter includes assemblers, loaders, libraries, and compilers. Programming assignments are implemented in assembly language and C using the UNIX operating system. Three lectures. Prerequisite: 126 or instructor's permission.
Close icon
Computer Science
Algorithms and Data Structures
This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, and string processing. Fundamental algorithms in a number of other areas are covered as well, including geometric algorithms, graph algorithms, and some numerical algorithms. The course will concentrate on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications. Two online lectures, two class meetings, one precept.
Close icon
Computer Science
Reasoning About Computation
An introduction to mathematical topics relevant to computer science. Combinatorics, probability and graph theory will be covered in the context of computer science applications. The course will present a computer science approach to thinking and modeling. Students will be introduced to fundamental concepts in theoretical computer science, such as NP-completeness and cryptography that arise from the world view of efficient computation.
Close icon
Computer Science
Mathematics for Numerical Computing and Machine Learning
This course provides a comprehensive and practical background for students interested in continuous mathematics for computer science. The goal is to prepare students for higher-level subjects in artificial intelligence, machine learning, computer vision, natural language processing, graphics, and other topics that require numerical computation. This course is intended students who wish to pursue these more advanced topics, but who have not taken (or do not feel comfortable) with university-level multivariable calculus (e.g., MAT 201/203) and probability (e.g., ORF 245 or ORF 309).
Close icon
Computer Science
Principles of Computer System Design
This course teaches students the design, implementation, and evaluation of computer systems, including operating systems, networking, and distributed systems.The course will teach students to evaluate the performance and study the design choices of existing systems. Students will also learn general systems concepts that support design goals of modularity, performance, and security. Students will apply materials learned in lectures and readings to design and build new systems components.
Close icon
Computer Science
Operating Systems
A study of the design and analysis of operating systems. Topics include: processes, mutual exclusion, synchronization, semaphores, monitors, deadlock prevention and detection, memory management, virtual memory, processor scheduling, disk management, file systems, security, protection, distributed systems. Two 90-minute lectures. Prerequisites: 217 and 226 or instructor's permission.