CEE420 Networked Infrastructure Systems

Summary

In an era where civil infrastructure systems are integral to societal functionality and quality of life, CEE420 - Networked Infrastructure Systems, offers a comprehensive course that addresses the complexities of these systems, challenged by rapid urbanization and climate change. This course uniquely integrates engineering principles, mathematical concepts, and computer science, empowering you with the skills necessary for designing and maintaining advanced infrastructure systems. Beyond technical expertise, CEE420 emphasizes the development of essential soft skills through innovative educational game development, enabling you to apply theoretical knowledge in practical, real-world scenarios.

The course structure is a blend of engineering lectures, mathematical insights, and hands-on software engineering, using platforms like the Godot Game Engine for practical application. You will explore various infrastructure systems, understand their life cycles, and apply mathematical theories in context. The project component of the course enhances collaborative skills and innovation, culminating in a playable proof-of-concept game. The comprehensive evaluation methods, including assignments, peer reviews, and a final exam, ensure a deep understanding of the networked infrastructure systems, equipping you for the challenges of modern infrastructure design and management.

Impressions

  • Teaching CEE420 Game 2
  • Teaching CEE420 Play
  • Teaching CEE420 Game 1
  • Teaching CEE420 Fire 1
  • Teaching CEE420 Fire 2

Course Design

Engineering Lectures

The engineering lectures aim to teach you comprehensive knowledge about various infrastructure systems, highlighting their similarities and unique characteristics. The course is designed to give you a broad perspective, enabling you to understand the diverse yet interconnected nature of infrastructure systems. By exploring multiple systems, you gain a deeper understanding of the complexity and the nuanced differences in engineering practices required for each infrastructure system.

During the course, you will be introduced to five critical infrastructure systems: Power Grids, Road Networks, Rail Networks, Water Supply Networks, and Sewage Networks. This year, particular emphasis is placed on Power Grids and Road Networks. This focus allows you a deeper exploration of these systems, addressing current trends, challenges, and innovations.

The course explores four subtopics for each of the infrastructure systems discussed: Design, Construction, Operation, and Maintenance. The design segment explores how to plan and conceptualize each type of infrastructure, considering factors like efficiency, sustainability, and integration with existing systems. The construction aspect examines the methods and technologies used to build these infrastructures, highlighting the practical challenges and innovations in the field. The operation focuses on managing and controlling these systems to ensure efficient and uninterrupted service. Lastly, maintenance covers the strategies and practices used to keep these infrastructures in optimal condition over their lifespan. This structured approach provides you with a comprehensive overview of the lifecycle of infrastructure systems.

Mathematical Lecture

The mathematical lecture component is structured to run in parallel with the engineering lectures, providing you with fundamental mathematical concepts essential for a deeper understanding of infrastructure systems. This alignment ensures that the mathematical theories taught are directly relevant and immediately applicable to the topics being covered in the engineering stream. For instance, when you explore power grids in the engineering lectures, you simultaneously learn about Kirchhoff's laws and Maximum Flow in a Graph in the mathematical lectures. The aim is to create a cohesive learning experience where the understanding of one discipline reinforces the other.

Throughout the course, the mathematical stream will cover three major topics: Graph Theory, Stochastic Modeling, and Machine Learning. These topics are carefully organized in a thematic sequence, each building on the knowledge gained from the previous one. The progression from Graphs to Markov Chains, then to Markov Decision Processes, and finally to Reinforcement Learning is designed to gradually deepen your understanding and application of these mathematical concepts.

While the course introduces fundamental mathematical concepts, it is important to note that /the focus remains on their application in engineering problem-solving/ rather than on theoretical aspects like proofs or derivations. The intention is not to delve deeply into the mathematics itself but to equip you with an understanding of how these concepts can be employed as tools in engineering. Existing software packages, such as PyTorch, will be utilized to demonstrate these applications, providing you with practical skills that you can apply in your future careers. For those of you interested in a more in-depth study of these mathematical concepts, the course will recommend other specialized courses available at Princeton.

Software Engineering Precept

The software engineering section is where the theoretical concepts learned in the engineering and mathematical lectures are synthesized into tangible outputs, providing a practical application for your learning. This hands-on approach is facilitated through the use of the Godot Game Engine. This platform allows you to create interactive simulations and games, thereby translating abstract concepts into experiential learning tools.

In this course segment, the content from the lectures is processed and transformed into mini-games, which are then provided to you. These games serve as a practical extension of the theoretical knowledge from the lectures. For instance, the first engineering lecture introduces the concept of Supply and Demand, a fundamental principle underlying all infrastructure systems. Correspondingly, the mathematical lecture introduces Utility Theory, explaining decision-making in uncertain environments. To bring these concepts to life, the software engineering lecture provides a game where agents buy and sell energy. This interactive experience helps you to grasp complex concepts like market equilibrium and the impact of monopolistic conditions on pricing in a practical, engaging manner.

The basic functionalities of the game code and the mathematical implementations are presented and discussed in the classroom. However, you are challenged to enhance and expand these games through your assignments. These tasks require you to delve deeper into the subject matter, for example, by exploring complex scenarios like market dynamics with multiple producers having different costs (e.g., fossil fuels vs. renewable energy), customer preferences, and imperfect knowledge.

Moreover, these mini-games serve a dual purpose. Not only do they help visualize and gamify theoretical content, making it more accessible and engaging, but they also serve as an educational tool for teaching advanced concepts in software engineering, such as *object-oriented programming principles* like classes, functions, and signals. These mini-games also contribute to building a library of basic building blocks that you can utilize in your game development projects.

The Project

In the project component of CEE420, you will engage in a collaborative and immersive game development project, working in teams of 3 to 4 members over the course of the semester. The project not only allows you to apply the technical skills you have learned but also emphasizes the importance of teamwork and project management skills, which are essential in any engineering project.

The initial six weeks of the project phase are dedicated to foundational learning. During this period, you will focus on acquiring fundamental skills and deepening your understanding of the course content. This phase lays the groundwork for practically applying your learning in game development. In parallel, teams will work on developing a concept proposal, which will articulate your game ideas in a structured and detailed manner. This proposal serves as a blueprint for your project, outlining your game's objectives, design considerations, and thematic elements.

Following this phase, a kick-off presentation is scheduled for the seventh week of the semester. This event marks the transition from planning to execution, where you will begin implementing your ideas into program code. The kick-off presentation is an important milestone in the project timeline, as it allows teams to present their concepts, receive feedback, and refine their approach before delving into the development phase. The culmination of the project is the final presentation of the proof-of-concept game. This presentation is an opportunity for you to showcase the results of your semester-long efforts, demonstrating both your technical proficiency and creative capabilities.