-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
2 additions
and
341 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,342 +1,3 @@ | ||
<!DOCTYPE html> | ||
<html lang="en-US"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta http-equiv="x-ua-compatible" content="ie=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
<meta http-equiv="refresh" content="0; url=https://github.com/swent-epfl/public/blob/main/README.md" /> | ||
|
||
<link rel="preload" as="font" href="https://swent.epfl.ch/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin> | ||
<link rel="preload" as="font" href="https://swent.epfl.ch/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin> | ||
|
||
|
||
<link rel="stylesheet" href="https://swent.epfl.ch/main.css"> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<meta name="robots" content="index, follow"> | ||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"> | ||
<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<title>CS-311</title> | ||
<meta name="description" content="CS-311 Software Enterprise"> | ||
<link rel="canonical" href="https://swent.epfl.ch/"> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script type="application/ld+json"> | ||
{ | ||
"@context": "http://schema.org", | ||
"@type": "BreadcrumbList", | ||
|
||
{ | ||
"@type": "ListItem", | ||
"position": 1 , | ||
"name": "Home", | ||
"item": "https://swent.epfl.ch/" | ||
}, | ||
|
||
} | ||
</script> | ||
|
||
|
||
|
||
|
||
|
||
|
||
<meta name="theme-color" content="#fff"> | ||
<link rel="apple-touch-icon" sizes="180x180" href="https://swent.epfl.ch/apple-touch-icon.png"> | ||
<link rel="icon" type="image/png" sizes="32x32" href="https://swent.epfl.ch/favicon-32x32.png"> | ||
<link rel="icon" type="image/png" sizes="16x16" href="https://swent.epfl.ch/favicon-16x16.png"> | ||
|
||
<link rel="manifest" href="https://swent.epfl.ch/site.webmanifest" crossorigin> | ||
|
||
|
||
|
||
|
||
|
||
</head> | ||
|
||
<body class="home"> | ||
|
||
|
||
|
||
|
||
<div class="header-bar fixed-top"></div> | ||
<header class="navbar fixed-top navbar-expand-md navbar-light"> | ||
<div class="container"> | ||
<input class="menu-btn order-0" type="checkbox" id="menu-btn"> | ||
<label class="menu-icon d-md-none" for="menu-btn"><span class="navicon"></span></label> | ||
|
||
|
||
<a href="https://www.epfl.ch"> | ||
|
||
<image class="menu-logo" src="https://swent.epfl.ch/epfl_logo.png" /> | ||
|
||
</a> | ||
|
||
|
||
<a class="navbar-brand order-1 order-md-0 me-auto" href="https://swent.epfl.ch/">CS-311</a> | ||
<button id="mode" class="btn btn-link order-2 order-md-4" type="button" aria-label="Toggle mode"> | ||
<span class="toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span> | ||
<span class="toggle-light"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span> | ||
</button> | ||
<ul class="navbar-nav fork-me order-3 order-md-5"> | ||
|
||
</ul> | ||
<div class="collapse navbar-collapse order-4 order-md-1"> | ||
<ul class="navbar-nav main-nav me-auto order-5 order-md-2"> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- <h3>Class info</h3> --> | ||
<ul class="list-unstyled d-md-none"> | ||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://swent.epfl.ch/main/info/schedule/">Syllabus</a></li> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://swent.epfl.ch/main/info/past-years/">Past years</a></li> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://swent.epfl.ch/main/info/faq/">FAQ</a></li> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://moodle.epfl.ch/course/view.php?id=18350">Moodle</a></li> | ||
|
||
|
||
|
||
|
||
</ul> | ||
|
||
|
||
|
||
</ul> | ||
<div class="break order-6 d-md-none"></div> | ||
|
||
</div> | ||
</div> | ||
</header> | ||
|
||
|
||
|
||
|
||
<div class="wrap container" role="document"> | ||
<div class="content"> | ||
<div class="row flex-xl-nowrap"> | ||
|
||
<div class="col-lg-3 col-xl-3 docs-sidebar"> | ||
<nav class="docs-links" aria-label="Main navigation"> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div style="margin-top: 1rem;"></div> | ||
|
||
<ul class="list-unstyled"> | ||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://swent.epfl.ch/main/info/schedule/">Syllabus</a></li> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://swent.epfl.ch/main/info/past-years/">Past years</a></li> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://swent.epfl.ch/main/info/faq/">FAQ</a></li> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li><a class="docs-link" href="https://moodle.epfl.ch/course/view.php?id=18350">Moodle</a></li> | ||
|
||
|
||
|
||
|
||
</ul> | ||
|
||
|
||
|
||
</nav> | ||
</div> | ||
|
||
<main class="docs-content col-lg-11 col-xl-11"> | ||
<h1>Software Enterprise</h1> | ||
|
||
<p>All course materials are hosted in our <a href="https://github.com/swent-epfl/Public">public repo</a>.</p> | ||
<h2 id="staff">Staff</h2> | ||
<p><strong>Instructors</strong>: George Candea, Edouard Bugnion, Pierluca Borsò-Tan</p> | ||
<p><strong>TAs</strong>: Abel Wilkinson, Albert Troussard, Alexandre Messmer, Athena Papageorgiou-Koufidou, Can Cebici, Carl Schütz, Charly Castes, Daniel Demko, Daniel Tavares, David Schroeter, Eric Kurmann, Gabriel Fleischer, Jiacheng Ma, Luca Engel, Maxime Zammit, Nicolas Raulin, Sara Anejjar, Ugo Balducci, Yasmin Ben Rahhal, Yonghao Zou, Yuchen Qian, Yugesh Kothari</p> | ||
<p>The staff is reachable at <a href="mailto:swent-staff@dslab.org">swent-staff@dslab.org</a> for any private issues you may have; for questions whose answers could benefit other students, please use the course forum.</p> | ||
<div style="display:none;"> | ||
<h2 id="workload">Workload</h2> | ||
<p>{{ todo(note="Update workload section") }}</p> | ||
<p>This course is designed for 4 ECTS credits, i.e., around 8 hours of work per week.</p> | ||
<p>For example, a student may split their time during a two-week sprint as follows:</p> | ||
<ul> | ||
<li>13h of coding, including testing, debugging, and finding/consulting documentation</li> | ||
<li>40m to review teammates’ code</li> | ||
<li>20m to independently plan the next sprint</li> | ||
<li>15m to plan the demo, or more for the Scrum Master of that sprint</li> | ||
<li>45m for the meeting with the coaches to end the previous sprint and begin a new one</li> | ||
<li>45m for the intermediate meeting with the coaches to discuss any issues</li> | ||
<li>15m for two standup meetings without the coaches</li> | ||
</ul> | ||
<p>This is not an exact breakdown, and may vary per team and per week, but it provides an estimate so that students can calibrate their expectations.</p> | ||
</div> | ||
<h2 id="app-requirements">App requirements</h2> | ||
<p>All apps must meet the basic requirements of <strong>functionality</strong> and <strong>resilience</strong>: | ||
apps must accomplish compelling tasks for clear use cases, in a way that is easy to use and consistent with the Android experience; | ||
and apps must work in the face of user errors, malice, and external issues such as a lack of Internet connectivity, with a test suite to demonstrate this.</p> | ||
<p>To ensure that students encounter real-world challenges, and to provide fair grading conditions across teams, all apps must also meet the following requirements:</p> | ||
<ul> | ||
<li><strong>Split app model</strong>: the app must use a public cloud service, such as Google Firebase</li> | ||
<li><strong>User support</strong>: the app must have a concept of authentication, for instance using Android’s built-in Google authentication</li> | ||
<li><strong>Sensor use</strong>: the app must use at least one phone sensor, such as GPS, camera, or microphone, as part of a core feature of the app</li> | ||
<li><strong>Offline mode</strong>: the app must be usable without Internet connectivity, by paring down features compared to the normal experience</li> | ||
</ul> | ||
<p>Teams are not allowed to write their own backend unless they have a good reason approved in writing by the instructor. | ||
This is to ensure (a) the app will still work in the future without someone to set up and maintain a backend, | ||
and (b) the project scope is restricted enough to be feasible within the course. | ||
Security, privacy, and vendor lock-in are valid concerns but outside the scope of this course.</p> | ||
<p>Sensor usage should drive some behavior in the app, such as finding nearby points of interest with the GPS, or augmenting reality by drawing over a video feed. | ||
Merely getting sensor data and storing it in a field shown to users is too simple and not enough.</p> | ||
<h2 id="grading">Grading</h2> | ||
<p><strong>Project grade</strong>: 50% individual + 50% team<br/> | ||
<strong>Course grade</strong>: 75% project + 20% product requirements document + 5% bootcamp</p> | ||
<h2 id="collaboration-policy">Collaboration Policy</h2> | ||
<p>Members of a team are of course allowed to discuss the project and share code for it. Members of different teams can discuss their project and programming issues, but not share code without prior written permission of the course instructor (not the coaches!).</p> | ||
<p>Collaboration can also take place on the class forum, visible to the entire class. You can ask questions about the course, programming difficulties, tooling issues, and so on. You are also welcome to answer questions from your fellow students as well, since you will most likely have solved similar problems in your team’s project.</p> | ||
<p>Cheating, plagiarism, and any form of dishonesty will be handled with the maximum severity permitted under EPFL rules. If you are in doubt whether an action on your part is acceptable, please ask the course staff privately via the staff e-mail list before proceeding. Asking afterward is too late.</p> | ||
<h2 id="hardware-requirements">Hardware Requirements</h2> | ||
<p>Students will develop, test, and execute the bootcamp and project on their own laptops. | ||
A minimum of 16GB of RAM (to run Android Studio), 50GB of available storage (Android Studio, Android SDK, emulator system images, course project files, etc.) on SSD or better, and WiFi are required. Ideally, each team should have at least an Android phone capable of demo-ing the team's application.</p> | ||
<div style="display:none;"> | ||
<p>{{ codeclimate_dashboard(path="./teams.toml") }}</p> | ||
</div> | ||
|
||
<section class="section section-sm"> | ||
<div class="container"> | ||
<div class="row justify-content-center text-center calendar"> | ||
|
||
|
||
</div> | ||
</div> | ||
</section> | ||
</main> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<section class="section section-sm container-fluid"> | ||
<div class="row justify-content-center text-center"> | ||
<div class="col-lg-9"></div> | ||
</div> | ||
</section> | ||
|
||
|
||
|
||
|
||
<footer class="footer text-muted"> | ||
<div class="container"> | ||
<div class="row"> | ||
<div class="col-lg-8 order-last order-lg-first"> | ||
<ul class="list-inline"> | ||
<li class="list-inline-item">Updated on 03/07/2024</li> | ||
</ul> | ||
</div> | ||
<div class="col-lg-8 order-first order-lg-last text-lg-end"> | ||
<ul class="list-inline"> | ||
|
||
Contact: <a href="mailto:swent-staff@dslab.org">swent-staff@dslab.org</a> | ||
|
||
|
||
</ul> | ||
</div> | ||
</div> | ||
</div> | ||
</footer> | ||
|
||
|
||
|
||
|
||
<script type="text/javascript" src="https://swent.epfl.ch/js/main.js" defer></script> | ||
|
||
|
||
</body> | ||
</html> | ||
<p>Please see the course <a href="https://github.com/swent-epfl/public/blob/main/README.md">README</a></p>. |