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 3621 - 3630 of 4003
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.
Close icon
Computer Science
Compiling Techniques
The principal algorithms and concepts associated with translator systems. Topics include lexical analysis, syntactic analysis, parsing techniques, symbol table management, code generation and optimization, run time system design, implementation issues related to programming language design. Course will include a large-scale programming project utilizing the above topics. Three lectures. Prerequisites: 217 and 226 or instructor's permission.
Close icon
Computer Science
Introduction to Machine Learning
This course is a broad introduction to different machine learning paradigms and algorithms and provides a foundation for further study or independent work in machine learning and data science. Topics include linear models for classification and regression, support vector machines, clustering, dimensionality reduction, deep neural networks, Markov decision processes, planning, and reinforcement learning. The goals of this course are three-fold: to understand the landscape of machine learning, how to compute the math behind techniques, and how to use Python and relevant libraries to implement and use various methods.
Close icon
Computer Science
Functional Programming
An introduction to the principles of typed functional programming. Programming recursive functions over structured data types and informal reasoning by induction about the correctness of those functions. Functional algorithms and data structures. Principles of modular programming, type abstraction, representation invariants and representation independence. Parallel functional programming, algorithms and applications.
Close icon
Computer Science
Advanced Programming Techniques
The practice of programming. Emphasis is on the development of real programs, writing code but also assessing tradeoffs, choosing among design alternatives, debugging and testing, and improving performance. Issues include compatibility, robustness, and reliability, while meeting specifications. Students will have the opportunity to develop skills in these areas by working on their own code and in group projects. Two 90-minute lectures. Prerequisites: 217 and 226 (as corequisite).
Close icon
Computer Science
Advanced Programming Techniques (Non-credit)
COS 333I offers AB COS concentrators an option for completing one semester of independent work. As such, it does not carry course credit but it does follow the structure and format of the course COS 333. By taking this course not-for-credit, students in COS 333I will have the opportunity to develop their programming skills by working on their own code and in group projects to satisfy the JIW requirement for the semester in which they are enrolled. The cumulative grade for this work will be reflected on students' transcripts as COS 981.