A course homepage from Stanford
https://web.stanford.edu/class/cs369m/
CS 369M
2019-01-01
None
<div><div>
	 	<h2>Metric Embeddings and Algorithmic Applications (Autumn 2018)</h2>
 
	 
<hr />
<p><strong>Instructor:</strong> Moses Charikar (email: moses at cs)</p>
<p><strong>Location and time:</strong> Tuesday and Thursday 10:30 AM â 11:50 AM, 320-220</p>
<p><strong>Teaching assistant:</strong> Ofir Geri (email: ofirgeri at cs)</p>
<p>Please sign up on <a href="https://piazza.com/stanford/fall2018/cs369m">Piazza</a> for discussions.</p>
<h3>Office Hours</h3>
<p>Moses: Wednesday 10:00 AM â 11:00 AM, Gates 472<br />
Ofir: Tuesday 4:00 PM â 5:00 PM, Gates 459</p>
<hr />
<h2>Course Description</h2>
<p>Low distortion embeddings of finite metric spaces is a topic at the intersection of mathematics and theoretical computer science. Much progress in this area in recent years has been motivated by algorithmic applications. Mapping complicated metrics of interest to simpler metrics (normed spaces, trees, and so on) gives access to a powerful algorithmic toolkit for approximation algorithms, online algorithms as well as for efficient search and indexing of large data sets. In a different vein, convex relaxations are a useful tool for graph partitioning problems; central to the analysis are metric embedding questions for certainly computationally defined metrics. In this course, we will see several classical and recent results on metric embeddings with a focus on algorithmic applications. Machine learned embeddings into Euclidean and hyperbolic spaces have recently become popular in natural language processing and (social) network analysis; we will explore these briefly.</p>
<p><strong>Requirements:</strong> Two homework assignments (40%), one lecture scribe (20%), a final project (35%), and Piazza participation (5%).</p>
<hr />
<h2>Resources</h2>
<p>Lecture Notes on Metric Embeddings, Jiri Matousek<br />
<a href="https://kam.mff.cuni.cz/~matousek/ba-a4.pdf">https://kam.mff.cuni.cz/~matousek/ba-a4.pdf</a></p>
<p>Similar classes:</p>
<p>Yair Bartal, Nova Fandina (Hebrew University, Fall 2018-2019)<br />
<a href="https://moodle2.cs.huji.ac.il/nu18/course/view.php?id=67720">https://moodle2.cs.huji.ac.il/nu18/course/view.php?id=67720</a></p>
<p>Jiri Matousek, Uli Wagner (ETH Zurich, Spring 2010)<br />
<a href="https://www.ti.inf.ethz.ch/ew/courses/ME10/index.html">https://www.ti.inf.ethz.ch/ew/courses/ME10/index.html</a></p>
<p>Tim Roughgarden (Stanford, Winter 2006)<br />
<a href="http://theory.stanford.edu/~tim/w06b/w06b.html">http://theory.stanford.edu/~tim/w06b/w06b.html</a></p>
<hr />
	</div>||||I|||| CS 369M

 Metric Embeddings and Algorithmic Applications

 * Home
 * Assignments
 * Final Project
 * Lecture Topics and Notes

 © 2019. All rights reserved.

 Metric Embeddings and Algorithmic Applications (Autumn 2018)

 Instructor: Moses Charikar (email: moses at cs)

 Location and time: Tuesday and Thursday 10:30 AM â 11:50 AM, 320-220

 Teaching assistant: Ofir Geri (email: ofirgeri at cs)

 Please sign up on Piazza for discussions.

 Office Hours

 Moses: Wednesday 10:00 AM â 11:00 AM, Gates 472
 Ofir: Tuesday 4:00 PM â 5:00 PM, Gates 459

 Course Description

 Low distortion embeddings of finite metric spaces is a topic at the intersection of mathematics and theoretical computer science. Much progress in this area in recent years has been motivated by algorithmic applications. Mapping complicated metrics of interest to simpler metrics (normed spaces, trees, and so on) gives access to a powerful algorithmic toolkit for approximation algorithms, online algorithms as well as for efficient search and indexing of large data sets. In a different vein, convex relaxations are a useful tool for graph partitioning problems; central to the analysis are metric embedding questions for certainly computationally defined metrics. In this course, we will see several classical and recent results on metric embeddings with a focus on algorithmic applications. Machine learned embeddings into Euclidean and hyperbolic spaces have recently become popular in natural language processing and (social) network analysis; we will explore these briefly.

 Requirements: Two homework assignments (40%), one lecture scribe (20%), a final project (35%), and Piazza participation (5%).

 Resources

 Lecture Notes on Metric Embeddings, Jiri Matousek
 https://kam.mff.cuni.cz/~matousek/ba-a4.pdf

 Similar classes:

 Yair Bartal, Nova Fandina (Hebrew University, Fall 2018-2019)
 https://moodle2.cs.huji.ac.il/nu18/course/view.php?id=67720

 Jiri Matousek, Uli Wagner (ETH Zurich, Spring 2010)
 https://www.ti.inf.ethz.ch/ew/courses/ME10/index.html

 Tim Roughgarden (Stanford, Winter 2006)
 http://theory.stanford.edu/~tim/w06b/w06b.html

Metric Embeddings and Algorithmic Applications (Autumn 2018)
 
	 
 Instructor: Moses Charikar (email: moses at cs)
 Location and time: Tuesday and Thursday 10:30 AM â 11:50 AM, 320-220
 Teaching assistant: Ofir Geri (email: ofirgeri at cs)
Please sign up on Piazza for discussions.
Office Hours
Moses: Wednesday 10:00 AM â 11:00 AM, Gates 472
Ofir: Tuesday 4:00 PM â 5:00 PM, Gates 459
Course Description
Low distortion embeddings of finite metric spaces is a topic at the intersection of mathematics and theoretical computer science. Much progress in this area in recent years has been motivated by algorithmic applications. Mapping complicated metrics of interest to simpler metrics (normed spaces, trees, and so on) gives access to a powerful algorithmic toolkit for approximation algorithms, online algorithms as well as for efficient search and indexing of large data sets. In a different vein, convex relaxations are a useful tool for graph partitioning problems; central to the analysis are metric embedding questions for certainly computationally defined metrics. In this course, we will see several classical and recent results on metric embeddings with a focus on algorithmic applications. Machine learned embeddings into Euclidean and hyperbolic spaces have recently become popular in natural language processing and (social) network analysis; we will explore these briefly.
 Requirements: Two homework assignments (40%), one lecture scribe (20%), a final project (35%), and Piazza participation (5%).
Resources
Lecture Notes on Metric Embeddings, Jiri Matousek
https://kam.mff.cuni.cz/~matousek/ba-a4.pdf 
Similar classes:
Yair Bartal, Nova Fandina (Hebrew University, Fall 2018-2019)
https://moodle2.cs.huji.ac.il/nu18/course/view.php?id=67720 
Jiri Matousek, Uli Wagner (ETH Zurich, Spring 2010)
https://www.ti.inf.ethz.ch/ew/courses/ME10/index.html 
Tim Roughgarden (Stanford, Winter 2006)
http://theory.stanford.edu/~tim/w06b/w06b.html
CS 369M
https://web.stanford.edu/class/cs369m/
http://cs231n.stanford.edu/
CS231n: Deep Learning for Computer Vision
2015-01-01
None
<div><div>
 <p>
 The Convolutional Neural Network in this example is classifying images live in your browser using Javascript, at about 10 milliseconds per image. It takes an input image and transforms it through a series of functions into class probabilities at the end. The transformed representations in this visualization can be loosely thought of as the activations of the neurons along the way. The parameters of this function are learned with backpropagation on a dataset of (image, label) pairs. This particular network is classifying <a href="http://www.cs.toronto.edu/~kriz/cifar.html">CIFAR-10</a> images into one of 10 classes and was trained with <a href="http://cs.stanford.edu/people/karpathy/convnetjs/">ConvNetJS</a>. Its exact architecture is [conv-relu-conv-relu-pool]x3-fc-softmax, for a total of 17 layers and 7000 parameters. It uses 3x3 convolutions and 2x2 pooling regions. By the end of the class, you will know exactly what all these numbers mean.
 </p>
 </div><div>
 <h2>Course Description</h2>
 <p>
 Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into the details of deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification. During the 10-week course, students will learn to implement and train their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. Additionally, the final assignment will give them the opportunity to train and apply multi-million parameter networks on real-world vision problems of their choice. Through multiple hands-on assignments and the final course project, students will acquire the toolset for setting up deep learning tasks and practical engineering tricks for training and fine-tuning deep neural networks.
 </p>
 <br />
 
</div><div>
 <br />
 <h2>Coursework</h2>
 <h3>Prerequisites</h3>
 <ul>
 <li>Proficiency in Python<br />All class assignments will be in Python (and use numpy) (we provide a tutorial <a href="http://cs231n.github.io/python-numpy-tutorial/">here</a> for those who aren't as familiar with Python). If you have a lot of programming experience but in a different language (e.g. C/C++/Matlab/Javascript) you will probably be fine.</li>
 <li>College Calculus, Linear Algebra (e.g. MATH 19 or 41, MATH 51)<br /> You should be comfortable taking derivatives and understanding matrix vector operations and notation.</li>
 <li>Basic Probability and Statistics (e.g. CS 109 or other stats course)<br />You should know basics of probabilities, gaussian distributions, mean, standard deviation, etc.</li>
 </ul>
 <h3>Assignments (45%)</h3>
 <p>See the <a href="assignments.html">Assignments</a> page for details regarding assignments, late days and collaboration policies.</p>
 <h3>Midterm (20%)</h3>
 <p>Detailed information regarding the midterm will be made available as an announcement on <a href="https://edstem.org/us/courses/21177">Ed</a> in the coming weeks.</p>
 <h3>Final Project (35%)</h3>
 <p>See the <a href="project.html">Project</a> page for more details regarding the final course project.</p>
 <h3>Participation (3% extra credit)</h3>
 <p>We appreciate student participation in the class! We will be awarding, on a case-by-case basis, up to 3% in extra credit to the top Ed contributors based on the number of (meaningful) instructor-endorsed answers or other significant contributions that assist the teaching staff or other students in the course. The most helpful contributor will receive the greatest amount of extra credit, and other students with significant contributions will receive a percentage of that.</p>
 <h3>Regrade Requests</h3>
 <p>If you believe that the course staff made an objective error in grading, you may submit a regrade request on Gradescope within <b>3 days</b> of the grade release. Your request should briefly summarize why the original grading was incorrect. Note that staff may regrade the entire submission, so it is possible for you to lose more points than you gain if a mistake was overlooked in the first time.</p>
 <h3>Late Policy</h3>
 <ul>
 <li>All students have 4 free late days for the quarter.</li>
 <li>You may use up to 2 late days per assignment with no penalty.</li>
 <li>You may use late days for the assignments, project proposal, and project milestone.</li>
 <li>You may not use late days for the final project report.</li>
 <li>
 Once you have exhausted your free late days, we will deduct a late penalty of 25% per additional late day.
 <ul>
 <li>For example: you submit A1 one day late, submit A2 three days late, and submit A3 two days late.
 You receive no penalty for A1, and exhaust one of your free late days.
 For A2 the first two late days exhaust two of your free late days; the third day late incurs a 25% penalty.
 For A3 the first late day exhausts your final free late day; the second late day incurs a 25% penalty.
 </li>
 </ul>
 </li>
 <li>For the project proposal and milestone, we will deduct late days from each group member independently.</li>
 </ul>
</div><div>
 <h3>FAQ</h3>
 <div>
 <p>Academic accommodations:</p>
 <p>If you need an academic accommodation based on a disability, you should initiate the request with the <a href="https://oae.stanford.edu/">Office of Accessible Education (OAE)</a>. The OAE will evaluate the request, recommend accommodations, and prepare a letter for faculty. Students should contact the OAE as soon as possible and at any rate in advance of assignment deadlines, since timely notice is needed to coordinate accommodations. It is the student’s responsibility to reach out to the teaching staff regarding the OAE letter. Please send your letters to <strong>cs231n-spr2122-staff@lists.stanford.edu</strong>.</p>
 </div>
 <div>
 <p>Can I take this course on credit/no cred basis?</p>
 <p>Yes. Credit will be given to those who would have otherwise earned a C- or above.</p>
 </div>
 <div>
 <p>Can I audit or sit in?</p>
 <p>In general we are very open to auditing if you are a member of the Stanford community (registered student, staff, and/or faculty). Out of courtesy, we would appreciate that you first email us or talk to the instructor after the first class you attend.</p>
 </div>
 <div>
 <p>Can I work in groups for the Final Project?</p>
 <p>Yes, in groups of up to three people.</p>
 </div>
 <div>
 <p>I have a question about the class. What is the best way to reach the course staff?</p>
 <p>Almost all questions should be asked on Ed. If you have a sensitive issue you can email the mailing list to reach the instructors and head TA directly: cs231n-spr2122-staff@lists.stanford.edu.</p>
 </div>
 <div>
 <p>Can I combine the Final Project with another course?</p>
 <p> Yes, you may; however before doing so you must receive permission from the instructors of both courses.</p>
 </div>
 </div>||||I|||| CS231n Home
 * Course Notes
 * Coursework
 * Schedule
 * Office Hours
 * Final Projects
 * Ed

 CS231n: Deep Learning for Computer Vision

 Stanford - Spring 2022

 *This network is running live in your browser
 The Convolutional Neural Network in this example is classifying images live in your browser using Javascript, at about 10 milliseconds per image. It takes an input image and transforms it through a series of functions into class probabilities at the end. The transformed representations in this visualization can be loosely thought of as the activations of the neurons along the way. The parameters of this function are learned with backpropagation on a dataset of (image, label) pairs. This particular network is classifying CIFAR-10 images into one of 10 classes and was trained with ConvNetJS. Its exact architecture is [conv-relu-conv-relu-pool]x3-fc-softmax, for a total of 17 layers and 7000 parameters. It uses 3x3 convolutions and 2x2 pooling regions. By the end of the class, you will know exactly what all these numbers mean.

 Course Description

 Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into the details of deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification. During the 10-week course, students will learn to implement and train their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. Additionally, the final assignment will give them the opportunity to train and apply multi-million parameter networks on real-world vision problems of their choice. Through multiple hands-on assignments and the final course project, students will acquire the toolset for setting up deep learning tasks and practical engineering tricks for training and fine-tuning deep neural networks.

 Previous Offerings
 [Winter 2015] [Winter 2016] [Spring 2017] [Spring 2018] [Spring 2019] [Spring 2020] [Spring 2021]

 Instructors

 Fei-Fei Li



 Jiajun Wu
 Ruohan Gao

 Teaching Assistants

 Moo Jin Kim
 (Head TA)
 Dhruva Bansal
 Shyamal Buch
 Gokul Dharan
 Agrim Gupta
 Zhuoyi Huang
 Drew Kaul
 Sumith Kulal
 Mihir Patel
 Hongyu Ren
 Manasi Sharma
 William Shen
 Haochen Shi
 Stephen Su
 Bohan Wu
 Yinan Zhang


 Course Logistics


 * Lectures: Tuesday/Thursday 1:30-3:00PM Pacific Time at NVIDIA Auditorium.
 * Lecture Videos: Will be posted on Canvas shortly after each lecture. These are unfortunately only accessible to enrolled Stanford students.
 * Office Hours: We will be using Zoom for office hours. You can find a full list of times and locations on the calendar.
 * Contact: Announcements and all course-related questions will happen on the Ed forum. For external enquiries, emergencies, or personal matters that you don't wish to put in a private post, you can email us at cs231n-spr2122-staff@lists.stanford.edu


 Coursework

 Prerequisites

 * Proficiency in Python
 All class assignments will be in Python (and use numpy) (we provide a tutorial here for those who aren't as familiar with Python). If you have a lot of programming experience but in a different language (e.g. C/C++/Matlab/Javascript) you will probably be fine.
 * College Calculus, Linear Algebra (e.g. MATH 19 or 41, MATH 51)
 You should be comfortable taking derivatives and understanding matrix vector operations and notation.
 * Basic Probability and Statistics (e.g. CS 109 or other stats course)
 You should know basics of probabilities, gaussian distributions, mean, standard deviation, etc.

 Assignments (45%)

 See the Assignments page for details regarding assignments, late days and collaboration policies.

 Midterm (20%)

 Detailed information regarding the midterm will be made available as an announcement on Ed in the coming weeks.

 Final Project (35%)

 See the Project page for more details regarding the final course project.

 Participation (3% extra credit)

 We appreciate student participation in the class! We will be awarding, on a case-by-case basis, up to 3% in extra credit to the top Ed contributors based on the number of (meaningful) instructor-endorsed answers or other significant contributions that assist the teaching staff or other students in the course. The most helpful contributor will receive the greatest amount of extra credit, and other students with significant contributions will receive a percentage of that.

 Regrade Requests

 If you believe that the course staff made an objective error in grading, you may submit a regrade request on Gradescope within 3 days of the grade release. Your request should briefly summarize why the original grading was incorrect. Note that staff may regrade the entire submission, so it is possible for you to lose more points than you gain if a mistake was overlooked in the first time.

 Late Policy

 * All students have 4 free late days for the quarter.
 * You may use up to 2 late days per assignment with no penalty.
 * You may use late days for the assignments, project proposal, and project milestone.
 * You may not use late days for the final project report.
 * Once you have exhausted your free late days, we will deduct a late penalty of 25% per additional late day.
 + For example: you submit A1 one day late, submit A2 three days late, and submit A3 two days late. You receive no penalty for A1, and exhaust one of your free late days. For A2 the first two late days exhaust two of your free late days; the third day late incurs a 25% penalty. For A3 the first late day exhausts your final free late day; the second late day incurs a 25% penalty.
 * For the project proposal and milestone, we will deduct late days from each group member independently.

 FAQ

 Academic accommodations:
 If you need an academic accommodation based on a disability, you should initiate the request with the Office of Accessible Education (OAE). The OAE will evaluate the request, recommend accommodations, and prepare a letter for faculty. Students should contact the OAE as soon as possible and at any rate in advance of assignment deadlines, since timely notice is needed to coordinate accommodations. It is the student’s responsibility to reach out to the teaching staff regarding the OAE letter. Please send your letters to cs231n-spr2122-staff@lists.stanford.edu.
 Can I take this course on credit/no cred basis?
 Yes. Credit will be given to those who would have otherwise earned a C- or above.
 Can I audit or sit in?
 In general we are very open to auditing if you are a member of the Stanford community (registered student, staff, and/or faculty). Out of courtesy, we would appreciate that you first email us or talk to the instructor after the first class you attend.
 Can I work in groups for the Final Project?
 Yes, in groups of up to three people.
 I have a question about the class. What is the best way to reach the course staff?
 Almost all questions should be asked on Ed. If you have a sensitive issue you can email the mailing list to reach the instructors and head TA directly: cs231n-spr2122-staff@lists.stanford.edu.
 Can I combine the Final Project with another course?
 Yes, you may; however before doing so you must receive permission from the instructors of both courses.
The Convolutional Neural Network in this example is classifying images live in your browser using Javascript, at about 10 milliseconds per image. It takes an input image and transforms it through a series of functions into class probabilities at the end. The transformed representations in this visualization can be loosely thought of as the activations of the neurons along the way. The parameters of this function are learned with backpropagation on a dataset of (image, label) pairs. This particular network is classifying CIFAR-10 images into one of 10 classes and was trained with ConvNetJS. Its exact architecture is [conv-relu-conv-relu-pool]x3-fc-softmax, for a total of 17 layers and 7000 parameters. It uses 3x3 convolutions and 2x2 pooling regions. By the end of the class, you will know exactly what all these numbers mean.
 
  
 Course Description
 
 Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art visual recognition systems. This course is a deep dive into the details of deep learning architectures with a focus on learning end-to-end models for these tasks, particularly image classification. During the 10-week course, students will learn to implement and train their own neural networks and gain a detailed understanding of cutting-edge research in computer vision. Additionally, the final assignment will give them the opportunity to train and apply multi-million parameter networks on real-world vision problems of their choice. Through multiple hands-on assignments and the final course project, students will acquire the toolset for setting up deep learning tasks and practical engineering tricks for training and fine-tuning deep neural networks.
 
 
 
 
 
 Coursework
 Prerequisites
 
 Proficiency in PythonAll class assignments will be in Python (and use numpy) (we provide a tutorial here for those who aren't as familiar with Python). If you have a lot of programming experience but in a different language (e.g. C/C++/Matlab/Javascript) you will probably be fine.
 College Calculus, Linear Algebra (e.g. MATH 19 or 41, MATH 51) You should be comfortable taking derivatives and understanding matrix vector operations and notation.
 Basic Probability and Statistics (e.g. CS 109 or other stats course)You should know basics of probabilities, gaussian distributions, mean, standard deviation, etc.
 
 Assignments (45%)
 See the Assignments page for details regarding assignments, late days and collaboration policies.
 Midterm (20%)
 Detailed information regarding the midterm will be made available as an announcement on Ed in the coming weeks.
 Final Project (35%)
 See the Project page for more details regarding the final course project.
 Participation (3% extra credit)
 We appreciate student participation in the class! We will be awarding, on a case-by-case basis, up to 3% in extra credit to the top Ed contributors based on the number of (meaningful) instructor-endorsed answers or other significant contributions that assist the teaching staff or other students in the course. The most helpful contributor will receive the greatest amount of extra credit, and other students with significant contributions will receive a percentage of that.
 Regrade Requests
 If you believe that the course staff made an objective error in grading, you may submit a regrade request on Gradescope within 3 days of the grade release. Your request should briefly summarize why the original grading was incorrect. Note that staff may regrade the entire submission, so it is possible for you to lose more points than you gain if a mistake was overlooked in the first time.
 Late Policy
 
 All students have 4 free late days for the quarter.
 You may use up to 2 late days per assignment with no penalty.
 You may use late days for the assignments, project proposal, and project milestone.
 You may not use late days for the final project report.
 
 Once you have exhausted your free late days, we will deduct a late penalty of 25% per additional late day.
 
 For example: you submit A1 one day late, submit A2 three days late, and submit A3 two days late.
 You receive no penalty for A1, and exhaust one of your free late days.
 For A2 the first two late days exhaust two of your free late days; the third day late incurs a 25% penalty.
 For A3 the first late day exhausts your final free late day; the second late day incurs a 25% penalty.
 
 
 
 For the project proposal and milestone, we will deduct late days from each group member independently.
 
 
 FAQ
 
 Academic accommodations:
 If you need an academic accommodation based on a disability, you should initiate the request with the Office of Accessible Education (OAE). The OAE will evaluate the request, recommend accommodations, and prepare a letter for faculty. Students should contact the OAE as soon as possible and at any rate in advance of assignment deadlines, since timely notice is needed to coordinate accommodations. It is the student’s responsibility to reach out to the teaching staff regarding the OAE letter. Please send your letters to cs231n-spr2122-staff@lists.stanford.edu.
 
 
 Can I take this course on credit/no cred basis?
 Yes. Credit will be given to those who would have otherwise earned a C- or above.
 
 
 Can I audit or sit in?
 In general we are very open to auditing if you are a member of the Stanford community (registered student, staff, and/or faculty). Out of courtesy, we would appreciate that you first email us or talk to the instructor after the first class you attend.
 
 
 Can I work in groups for the Final Project?
 Yes, in groups of up to three people.
 
 
 I have a question about the class. What is the best way to reach the course staff?
 Almost all questions should be asked on Ed. If you have a sensitive issue you can email the mailing list to reach the instructors and head TA directly: cs231n-spr2122-staff@lists.stanford.edu.
 
 
 Can I combine the Final Project with another course?
  Yes, you may; however before doing so you must receive permission from the instructors of both courses.
CS231n: Deep Learning for Computer Vision
http://cs231n.stanford.edu/
http://graphics.stanford.edu/courses/cs468-14-spring/
Data-Driven Shape Anlaysis
2002-01-01
None
<div>
<h2> Data-Driven Shape Anlaysis </h2>
<h2>Course info</h2>
<b>Course:</b> CS468, Spring 2014<br />
<b>Location:</b> Gates B12<br />
<b>Time:</b> Tuesday, Thursday. 9:30-10:45<br />
<b>Instructors:</b> <br />
     • Vladimir (Vova) Kim, vk2@stanford.edu<br />
         Office Hours: Tue, 11am-12pm <br />
     • Qixing (Peter) Huang, huangqx@stanford.edu<br />
         Office Hours: Fri, 1pm-2pm<p>
<b>Description:</b> <br />
      With recent developments in 3D modeling software and advances in acquisition techniques for 3D geometry, the shape of a large numbers of objects has been digitized. Existing datasets include millions of real-world every day objects, cultural heritage artifacts, buildings, as well as medical, scientific, and engineering models. In this course we will discuss (1) computational tools for organizing 3D model collections, (2) algorithms for understanding their semantic properties and relations, and (3) applications in graphics, vision, and other areas. In particular, some of the topics that will be covered in this class include: reconstruction and recognition of 3D data, shape retrieval, segmentation and matching, probabilistic and grammar models for objects and scenes, and data-driven 3D vision. We will also cover machine learning and optimization techniques that are widely used in data-driven shape analysis. 
</p>
<b>Prerequisites:</b> <br />
      Background assumed includes basic material in computer graphics, linear algebra, and optimization.
<p>
<b>Grading (tentative):</b></p><table>
<tbody><tr><td>      </td><td>Homeworks (3 assignments)</td> <td>60%</td></tr>
<tr><td>      </td><td>Final Project</td> <td>40%</td></tr>
</tbody></table>
<h2>Course Schedule</h2>
<table>
<tbody><tr>
	<td><b>Date</b></td>
	<td><b>Topic</b></td>
	<td><b>Materials</b></td>
	<td><b>Instructors</b></td>
	<td><b>Announcements</b></td>
</tr>
<tr>
	<td>April 1</td>
	<td>1. Introduction. Shape Descriptors</td>
	<td>
	Slides: 
	<a href="./slides/1_Apr1_intro.pdf">intro</a>, <a href="./slides/1_Apr1_SD.pdf">SD</a><br />
	Covered Papers: 
	<a href="http://www.cs.princeton.edu/~funk/tog02.pdf">Shape Distributions</a>,<br />
	      
	<a href="http://www.cs.jhu.edu/~misha/Papers/Johnson99.pdf">Spin Images</a>,
	<a href="http://3d.csie.ntu.edu.tw/~dynamic/3DRetrieval/">Lightfield</a><br />
	</td>
	<td>Vova</td>
	<td></td>
</tr>
<tr>
	<td>April 3</td>
	<td>2. Shape Retrieval. Intrinsic Descriptors</td>
	<td>Slides: <a href="./slides/2_Apr3_Apps_and_Intrinsic.pdf">ICP, Apps, Intrinsic Descriptors</a><br />
	Shape Matching: 
	<a href="http://eecs.vanderbilt.edu/courses/cs359/other_links/papers/1992_besl_mckay_ICP.pdf">ICP</a><br />
	Intrinsic: 
	<a href="http://www.lix.polytechnique.fr/~maks/papers/shapegoogle.pdf">Shape Google</a>,
	<a href="https://sites.google.com/site/raifrustamov/downloads/SGP2007.pdf">GPS</a>,
	<a href="http://graphics.stanford.edu/projects/lgl/papers/sog-hks-09/sog-hks-09.pdf">HKS</a>,
	<a href="http://www.di.ens.fr/~aubry/texts/2011-wave-kernel-signature.pdf">WKS</a>
	<br />
	Retrieval &amp; Exploration: <br />
	      
	<a href="http://www.cs.princeton.edu/~funk/tog03.pdf">Sketch and text</a>,
	<a href="http://cybertron.cg.tu-berlin.de/eitz/pdf/2012_siggraph_sbsr.pdf">Sketch only</a>,<br />
	      
	<a href="http://cg.cs.tsinghua.edu.cn/quartet/">Quartets</a>,
	<a href="http://www.lix.polytechnique.fr/~maks/papers/explore.pdf">Templated Exploration</a>
	<br />
	</td>
	<td>Vova</td>
	<td><a href="./assn1.html">Assignment 1</a> due Apr 20</td>
</tr>
<tr>
	<td>April 8</td>
	<td>3. Pair-wise rigid registration</td>
	<td>Slides: <a href="slides_peter/3_April8th_RigidMatching.pdf">RigidMatching</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>April 10</td>
	<td>4. Pair-wise non-rigid registration</td>
	<td>Slides: <a href="slides_peter/4_April10th_NonRigidRegistration.pdf">NonRigidRegistration</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>April 15</td>
	<td>5. Pair-wise intrinsic shape matching</td>
	<td>Slides: <a href="slides/5_Apr15_IntrinsicMaps.pdf">Intrinsic Methods</a></td>
	<td>Vova</td>
	<td></td>
</tr>
<tr>
	<td>April 17</td>
	<td>6. Joint shape matching I</td>
	<td>Slides: <a href="slides_peter/4_April17th_JointShapeMatchingI.pdf">JointMatchingI</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>April 22</td>
	<td>7. Joint shape matching II</td>
	<td>Slides: <a href="slides_peter/4_April22th_JointShapeMatchingII.pdf">JointMatchingII</a></td>
	<td>Peter</td>
	<td><a href="assn2.html">Assignment 2</a> due May 4th</td>
</tr>
<tr>
	<td>April 24</td>
	<td>8. Human-centric shape analysis</td>
	<td>Slides: <a href="slides/8_Apr24_Affordances.pdf">Affordances</a></td>
	<td>Vova</td>
	<td></td>
</tr>
<tr>
	<td>April 29</td>
	<td>9. Shape segmentation</td>
	<td>Slides: <a href="slides_peter/4_April29th_Segmentation.pdf">Segmentation</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>May 1</td>
	<td>10. Joint shape segmentation</td>
	<td>Slides: <a href="slides_peter/10_May1st_JointSegmentation.pdf">JointSegmentation</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>May 6</td>
	<td>11. Project proposals</td>
	<td></td>
	<td>Peter and Vova</td>
	<td></td>
</tr>
<tr>
	<td>May 8</td>
	<td>12. Shape classification</td>
	<td>Slides:<a href="slides_peter/12_May8th_Classification.pdf"> Classification</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>May 13</td>
	<td>13. Parametric Shape Spaces / Shape Grammars</td>
	<td>Slides:<a href="slides/12_May13_Grammars.pdf"> Parametric Models</a></td>
	<td>Vova</td>
	<td><a href="assn3.html">Assignment 3 </a>due May 20th</td>
</tr>
<tr>
	<td>May 15</td>
	<td>14. Data-driven modeling</td>
	<td>Slides:<a href="slides/13_May15_Modeling.pdf"> Modeling</a></td>
	<td>Vova</td>
	<td></td>
</tr>
<tr>
	<td>May 20</td>
	<td>15. Data-driven reconstruction</td>
	<td>Slides: <a href="slides_peter/15_May20th_Reconstruction.pdf">Reconstruction</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>May 22</td>
	<td>16. City-scale reconstruction</td>
	<td></td>
	<td>Guest lecturer: Qian-Yi Zhou</td>
	<td></td>
</tr>
<tr>
	<td>May 27</td>
	<td>17. Data-driven scene analysis and synthesis</td>
	<td>Slides:<a href="slides/17_May27_SceneAnalysis.pdf">Scene Analysis</a></td>	
	<td>Vova</td>
	<td></td>
</tr>
<tr>
	<td>May 29</td>
	<td>18. Data-driven techniques in 3D vision I </td>
	<td>Slides: <a href="slides_peter/18_May29th_3D.pdf">3DVision</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>June 3</td>
	<td>19. Wrap up</td>
	<td>Slides:<a href="slides_peter/19_June3th_Wrapup.pdf"> WrapUp</a></td>
	<td>Peter</td>
	<td></td>
</tr>
<tr>
	<td>June 5</td>
	<td>20. Final project presentations</td>
	<td></td>
	<td>Peter and Vova</td>
	<td></td>
</tr>
</tbody></table>
<h2>References</h2>
<h3>April 8th<br />
</h3>
<p>1. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography, M. Fischler and R. Bolles, June 1981, Comm. of the ACM</p>
<p>2. Linear Model Hashing and Batch RANSAC for Rapid and Accurate Object Recognition, Y. Shan, B. Matei, H. S. Sawhney, R. Kumar, D. Huber, and M. Hebert, CVPR 2004</p>
<p>3. A Spectral Technique for Correspondence Problems using Pairwise Constraints, M. Leordeanu and M. Hebert, ICCV 2005</p>
<p>4. Robust Global Registration, N. Gelfand, N. Mitra, L. Guibas and H. Pottmann, Symposium on Geometry Processing, 2005</p>
<p>5. Partial and Approximate Symmetry Detection for 3D Geometry, N. Mitra, L. Guibas, M. Pauly, SIGGRAPH 2006</p>
<p>6. Reassembling Fractures Objects by Geometric Matching, Q. Huang, S. Flory, N. Gelfand, M. Hofer and H. Pottmann, SIGGRAPH 2006</p>
<p>7. 4-points Congruent Sets for Robust Surface Registration, Dror Aiger, Niloy J. Mitra, Daniel Cohen-Or, SIGGRAPH 2008</p>
<h3>April 10th<br />
</h3>
<div>
 <p>1. Articulated Object Reconstruction and Markerless Motion Capture from Depth Video, Y. Pekelny and C. Gotsman, Eurographics' 08</p>
 <p>2. Global correspondence optimization for non-rigid registration of depth scans, H. Li, R. Sumner, M. Pauly, SGP’08</p>
 <p>3. Non-Rigid Registration Under Isometric Deformations, Q. Huang, B. Adams, M. Wiche, and L.  Guibas, SGP’08</p>
 <p>4. Robust single-View geometry and motion reconstruction, H. Li, B. Adams, L. Guibas, M. Pauly, SIGGRAPH ASIA'09</p>
 <p>5. 3D self-portraits, H. Li, E. Vouga, A. Gudym, J. Barron, L. Luo, G. Gusev, SIGGRAPH ASIA'13</p>
 <p>6. Animation Cartography - Intrinsic Reconstruction of Shape and Motion, A. Tevs, A. Berner, M. Wand, I. Ihrke, M. Bokeloh, J. Kerber, H. Seidel, TOG'13</p>
 <p>7. Dynamic Geometry Processing, W. Chang, H. Li, N. Mitra, M. Pauly, M. Wand:  Eurographics 2012 tutorial<br />
 </p>
</div>
<h3>April 17th</h3>
<p>1. Automatic Three-dimensional Modeling from Reality, PhD thesis, D. Huber, Robotics Institute, Carnegie Mellon University, 2002</p>
<p>2. Reassembling fractured objects by geometric matching. Q. Huang, S. Flory, N. Gelfand, M. Hofer, and H. Pottmann, SIGGRAPH’06</p>
<p>3. Disambiguating visual relations using loop constraints, C. Zach, M. Klopscjotz, and M. POLLEFEYS, CVPR’10</p>
<p>4. An optimization approach to improving collections of shape maps, A. Nguyen, M. Ben-Chen, K. Welnicka, Y. Ye, and L. Guibas,  SGP ’11</p>
<p>5. Exploring collections of 3d models using fuzzy correspondences, V. G. Kim, W. Li, N. Mitra, S. Diverdi, and T. Funkhouser, SIGGRAPH’12</p>
<p>6. An Optimization Approach for Extracting and Encoding Consistent Maps in a Shape Collection, Q. Huang, G. Zhang, L. Gao, S. Hu, A. Bustcher, L. Guibas, SIGGRAPH ASIA’12</p>
<p>7. Consistent Shape Maps via Semidefinite Programming, Q. Huang and L. Guibas, SGP’13</p>
<p>8. Matching Partially Similar Objects via Matrix Completion, Y. Chen, L. Guibas and Q. Huang, ICML’14</p>
<h3>May 22th</h3>
<p>1. Elastic Fragments for Dense Scene Reconstruction, Q.-Y. Zhou, S. Miller and V. Koltun, ICCV 2013</p>
<p>2. Dense Scene Reconstruction with Points of Interest, Q.-Y. Zhou and V. Koltun, SIGGRAPH 2013</p>
<p>3. 2.5D Dual Contouring: A Robust Approach to Creating Building Models from Aerial LiDAR Point Clouds, Q.-Y. Zhou and U. Neumann, ECCV 2010</p>
<p>4. A Survey of Urban Reconstruction, P. Musialski, P. Wonka, D. Aliaga, M. Wimmer, L. Gool, W. Purgathofer, EUROGRAPHICS 2012</p>
<h2>Acknowledgements</h2>
The course staff would like to thank the <a href="http://forum.stanford.edu/">Stanford Computer Forum</a> for their support.
||||I||||Data-Driven Shape Anlaysis

Course info

Course: CS468, Spring 2014
Location: Gates B12
Time: Tuesday, Thursday. 9:30-10:45
Instructors:
• Vladimir (Vova) Kim, vk2@stanford.edu
Office Hours: Tue, 11am-12pm
• Qixing (Peter) Huang, huangqx@stanford.edu
Office Hours: Fri, 1pm-2pm

Description:
With recent developments in 3D modeling software and advances in acquisition techniques for 3D geometry, the shape of a large numbers of objects has been digitized. Existing datasets include millions of real-world every day objects, cultural heritage artifacts, buildings, as well as medical, scientific, and engineering models. In this course we will discuss (1) computational tools for organizing 3D model collections, (2) algorithms for understanding their semantic properties and relations, and (3) applications in graphics, vision, and other areas. In particular, some of the topics that will be covered in this class include: reconstruction and recognition of 3D data, shape retrieval, segmentation and matching, probabilistic and grammar models for objects and scenes, and data-driven 3D vision. We will also cover machine learning and optimization techniques that are widely used in data-driven shape analysis.

Prerequisites:
Background assumed includes basic material in computer graphics, linear algebra, and optimization.

Grading (tentative): Homeworks (3 assignments) 60%
 Final Project 40%


Course Schedule

Date Topic Materials Instructors Announcements 
 Slides: intro, SD  
April 1 1. Introduction. Shape Descriptors Covered Papers: Shape Distributions, Vova 
 Spin Images, Lightfield  
 Slides: ICP, Apps, Intrinsic Descriptors 
 Shape Matching: ICP  
April 3 2. Shape Retrieval. Intrinsic Descriptors Intrinsic: Shape Google, GPS, HKS, WKS Vova Assignment 1 due Apr 20 
 Retrieval & Exploration:  
 Sketch and text, Sketch only,  
 Quartets, Templated Exploration  
April 8 3. Pair-wise rigid registration Slides: RigidMatching Peter 
April 10 4. Pair-wise non-rigid registration Slides: NonRigidRegistration Peter 
April 15 5. Pair-wise intrinsic shape matching Slides: Intrinsic Methods Vova 
April 17 6. Joint shape matching I Slides: JointMatchingI Peter 
April 22 7. Joint shape matching II Slides: JointMatchingII Peter Assignment 2 due May 4th 
April 24 8. Human-centric shape analysis Slides: Affordances Vova 
April 29 9. Shape segmentation Slides: Segmentation Peter 
May 1 10. Joint shape segmentation Slides: JointSegmentation Peter 
May 6 11. Project proposals  Peter and Vova 
May 8 12. Shape classification Slides: Classification Peter 
May 13 13. Parametric Shape Spaces / Shape Grammars Slides: Parametric Models Vova Assignment 3 due May 20th
May 15 14. Data-driven modeling Slides: Modeling Vova 
May 20 15. Data-driven reconstruction Slides: Reconstruction Peter 
May 22 16. City-scale reconstruction Guest lecturer: Qian-Yi Zhou 
May 27 17. Data-driven scene analysis and synthesis Slides:Scene Analysis Vova 
May 29 18. Data-driven techniques in 3D vision I Slides: 3DVision Peter 
June 3 19. Wrap up Slides: WrapUp Peter 
June 5 20. Final project presentations Peter and Vova 


References

April 8th

 1. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography, M. Fischler and R. Bolles, June 1981, Comm. of the ACM
 2. Linear Model Hashing and Batch RANSAC for Rapid and Accurate Object Recognition, Y. Shan, B. Matei, H. S. Sawhney, R. Kumar, D. Huber, and M. Hebert, CVPR 2004
 3. A Spectral Technique for Correspondence Problems using Pairwise Constraints, M. Leordeanu and M. Hebert, ICCV 2005
 4. Robust Global Registration, N. Gelfand, N. Mitra, L. Guibas and H. Pottmann, Symposium on Geometry Processing, 2005
 5. Partial and Approximate Symmetry Detection for 3D Geometry, N. Mitra, L. Guibas, M. Pauly, SIGGRAPH 2006
 6. Reassembling Fractures Objects by Geometric Matching, Q. Huang, S. Flory, N. Gelfand, M. Hofer and H. Pottmann, SIGGRAPH 2006
 7. 4-points Congruent Sets for Robust Surface Registration, Dror Aiger, Niloy J. Mitra, Daniel Cohen-Or, SIGGRAPH 2008

April 10th

 1. Articulated Object Reconstruction and Markerless Motion Capture from Depth Video, Y. Pekelny and C. Gotsman, Eurographics' 08
 2. Global correspondence optimization for non-rigid registration of depth scans, H. Li, R. Sumner, M. Pauly, SGP’08
 3. Non-Rigid Registration Under Isometric Deformations, Q. Huang, B. Adams, M. Wiche, and L. Guibas, SGP’08
 4. Robust single-View geometry and motion reconstruction, H. Li, B. Adams, L. Guibas, M. Pauly, SIGGRAPH ASIA'09
 5. 3D self-portraits, H. Li, E. Vouga, A. Gudym, J. Barron, L. Luo, G. Gusev, SIGGRAPH ASIA'13
 6. Animation Cartography - Intrinsic Reconstruction of Shape and Motion, A. Tevs, A. Berner, M. Wand, I. Ihrke, M. Bokeloh, J. Kerber, H. Seidel, TOG'13
 7. Dynamic Geometry Processing, W. Chang, H. Li, N. Mitra, M. Pauly, M. Wand: Eurographics 2012 tutorial

April 17th

 1. Automatic Three-dimensional Modeling from Reality, PhD thesis, D. Huber, Robotics Institute, Carnegie Mellon University, 2002
 2. Reassembling fractured objects by geometric matching. Q. Huang, S. Flory, N. Gelfand, M. Hofer, and H. Pottmann, SIGGRAPH’06
 3. Disambiguating visual relations using loop constraints, C. Zach, M. Klopscjotz, and M. POLLEFEYS, CVPR’10
 4. An optimization approach to improving collections of shape maps, A. Nguyen, M. Ben-Chen, K. Welnicka, Y. Ye, and L. Guibas, SGP ’11
 5. Exploring collections of 3d models using fuzzy correspondences, V. G. Kim, W. Li, N. Mitra, S. Diverdi, and T. Funkhouser, SIGGRAPH’12
 6. An Optimization Approach for Extracting and Encoding Consistent Maps in a Shape Collection, Q. Huang, G. Zhang, L. Gao, S. Hu, A. Bustcher, L. Guibas, SIGGRAPH ASIA’12
 7. Consistent Shape Maps via Semidefinite Programming, Q. Huang and L. Guibas, SGP’13
 8. Matching Partially Similar Objects via Matrix Completion, Y. Chen, L. Guibas and Q. Huang, ICML’14

May 22th

 1. Elastic Fragments for Dense Scene Reconstruction, Q.-Y. Zhou, S. Miller and V. Koltun, ICCV 2013
 2. Dense Scene Reconstruction with Points of Interest, Q.-Y. Zhou and V. Koltun, SIGGRAPH 2013
 3. 2.5D Dual Contouring: A Robust Approach to Creating Building Models from Aerial LiDAR Point Clouds, Q.-Y. Zhou and U. Neumann, ECCV 2010
 4. A Survey of Urban Reconstruction, P. Musialski, P. Wonka, D. Aliaga, M. Wimmer, L. Gool, W. Purgathofer, EUROGRAPHICS 2012

Acknowledgements

The course staff would like to thank the Stanford Computer Forum for their support.

Data-Driven Shape Anlaysis 
Course info
Course: CS468, Spring 2014
Location: Gates B12
Time: Tuesday, Thursday. 9:30-10:45
Instructors: 
     • Vladimir (Vova) Kim, vk2@stanford.edu
         Office Hours: Tue, 11am-12pm 
     • Qixing (Peter) Huang, huangqx@stanford.edu
         Office Hours: Fri, 1pm-2pm
Description: 
      With recent developments in 3D modeling software and advances in acquisition techniques for 3D geometry, the shape of a large numbers of objects has been digitized. Existing datasets include millions of real-world every day objects, cultural heritage artifacts, buildings, as well as medical, scientific, and engineering models. In this course we will discuss (1) computational tools for organizing 3D model collections, (2) algorithms for understanding their semantic properties and relations, and (3) applications in graphics, vision, and other areas. In particular, some of the topics that will be covered in this class include: reconstruction and recognition of 3D data, shape retrieval, segmentation and matching, probabilistic and grammar models for objects and scenes, and data-driven 3D vision. We will also cover machine learning and optimization techniques that are widely used in data-driven shape analysis. 
Prerequisites: 
      Background assumed includes basic material in computer graphics, linear algebra, and optimization.
Grading (tentative):  
         Homeworks (3 assignments) 60% 
        Final Project 40% 
 
Course Schedule
 
	 Date 
	 Topic 
	 Materials 
	 Instructors 
	 Announcements 
	April 1
	1. Introduction. Shape Descriptors
	
	Slides: 
	intro, SD 
	Covered Papers: 
	Shape Distributions,
	      
	Spin Images,
	Lightfield 
	
	Vova
	 
	April 3
	2. Shape Retrieval. Intrinsic Descriptors
	Slides: ICP, Apps, Intrinsic Descriptors 
	Shape Matching: 
	ICP 
	Intrinsic: 
	Shape Google,
	GPS,
	HKS,
	WKS
	
	Retrieval &amp; Exploration: 
	      
	Sketch and text,
	Sketch only,
	      
	Quartets,
	Templated Exploration
	
	
	Vova
	 Assignment 1 due Apr 20
	April 8
	3. Pair-wise rigid registration
	Slides: RigidMatching 
	Peter
	 
	April 10
	4. Pair-wise non-rigid registration
	Slides: NonRigidRegistration 
	Peter
	 
	April 15
	5. Pair-wise intrinsic shape matching
	Slides: Intrinsic Methods 
	Vova
	 
	April 17
	6. Joint shape matching I
	Slides: JointMatchingI 
	Peter
	 
	April 22
	7. Joint shape matching II
	Slides: JointMatchingII 
	Peter
	 Assignment 2 due May 4th
	April 24
	8. Human-centric shape analysis
	Slides: Affordances 
	Vova
	 
	April 29
	9. Shape segmentation
	Slides: Segmentation 
	Peter
	 
	May 1
	10. Joint shape segmentation
	Slides: JointSegmentation 
	Peter
	 
	May 6
	11. Project proposals
	 
	Peter and Vova
	 
	May 8
	12. Shape classification
	Slides: Classification 
	Peter
	 
	May 13
	13. Parametric Shape Spaces / Shape Grammars
	Slides: Parametric Models 
	Vova
	 Assignment 3 due May 20th
	May 15
	14. Data-driven modeling
	Slides: Modeling 
	Vova
	 
	May 20
	15. Data-driven reconstruction
	Slides: Reconstruction 
	Peter
	 
	May 22
	16. City-scale reconstruction
	 
	Guest lecturer: Qian-Yi Zhou
	 
	May 27
	17. Data-driven scene analysis and synthesis
	Slides:Scene Analysis 	
	Vova
	 
	May 29
	18. Data-driven techniques in 3D vision I 
	Slides: 3DVision 
	Peter
	 
	June 3
	19. Wrap up
	Slides: WrapUp 
	Peter
	 
	June 5
	20. Final project presentations
	 
	Peter and Vova
	 
 
References
April 8th
1. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography, M. Fischler and R. Bolles, June 1981, Comm. of the ACM
2. Linear Model Hashing and Batch RANSAC for Rapid and Accurate Object Recognition, Y. Shan, B. Matei, H. S. Sawhney, R. Kumar, D. Huber, and M. Hebert, CVPR 2004
3. A Spectral Technique for Correspondence Problems using Pairwise Constraints, M. Leordeanu and M. Hebert, ICCV 2005
4. Robust Global Registration, N. Gelfand, N. Mitra, L. Guibas and H. Pottmann, Symposium on Geometry Processing, 2005
5. Partial and Approximate Symmetry Detection for 3D Geometry, N. Mitra, L. Guibas, M. Pauly, SIGGRAPH 2006
6. Reassembling Fractures Objects by Geometric Matching, Q. Huang, S. Flory, N. Gelfand, M. Hofer and H. Pottmann, SIGGRAPH 2006
7. 4-points Congruent Sets for Robust Surface Registration, Dror Aiger, Niloy J. Mitra, Daniel Cohen-Or, SIGGRAPH 2008
April 10th
 1. Articulated Object Reconstruction and Markerless Motion Capture from Depth Video, Y. Pekelny and C. Gotsman, Eurographics' 08
 2. Global correspondence optimization for non-rigid registration of depth scans, H. Li, R. Sumner, M. Pauly, SGP’08
 3. Non-Rigid Registration Under Isometric Deformations, Q. Huang, B. Adams, M. Wiche, and L.  Guibas, SGP’08
 4. Robust single-View geometry and motion reconstruction, H. Li, B. Adams, L. Guibas, M. Pauly, SIGGRAPH ASIA'09
 5. 3D self-portraits, H. Li, E. Vouga, A. Gudym, J. Barron, L. Luo, G. Gusev, SIGGRAPH ASIA'13
 6. Animation Cartography - Intrinsic Reconstruction of Shape and Motion, A. Tevs, A. Berner, M. Wand, I. Ihrke, M. Bokeloh, J. Kerber, H. Seidel, TOG'13
 7. Dynamic Geometry Processing, W. Chang, H. Li, N. Mitra, M. Pauly, M. Wand:  Eurographics 2012 tutorial
 
April 17th
1. Automatic Three-dimensional Modeling from Reality, PhD thesis, D. Huber, Robotics Institute, Carnegie Mellon University, 2002
2. Reassembling fractured objects by geometric matching. Q. Huang, S. Flory, N. Gelfand, M. Hofer, and H. Pottmann, SIGGRAPH’06
3. Disambiguating visual relations using loop constraints, C. Zach, M. Klopscjotz, and M. POLLEFEYS, CVPR’10
4. An optimization approach to improving collections of shape maps, A. Nguyen, M. Ben-Chen, K. Welnicka, Y. Ye, and L. Guibas,  SGP ’11
5. Exploring collections of 3d models using fuzzy correspondences, V. G. Kim, W. Li, N. Mitra, S. Diverdi, and T. Funkhouser, SIGGRAPH’12
6. An Optimization Approach for Extracting and Encoding Consistent Maps in a Shape Collection, Q. Huang, G. Zhang, L. Gao, S. Hu, A. Bustcher, L. Guibas, SIGGRAPH ASIA’12
7. Consistent Shape Maps via Semidefinite Programming, Q. Huang and L. Guibas, SGP’13
8. Matching Partially Similar Objects via Matrix Completion, Y. Chen, L. Guibas and Q. Huang, ICML’14
May 22th
1. Elastic Fragments for Dense Scene Reconstruction, Q.-Y. Zhou, S. Miller and V. Koltun, ICCV 2013
2. Dense Scene Reconstruction with Points of Interest, Q.-Y. Zhou and V. Koltun, SIGGRAPH 2013
3. 2.5D Dual Contouring: A Robust Approach to Creating Building Models from Aerial LiDAR Point Clouds, Q.-Y. Zhou and U. Neumann, ECCV 2010
4. A Survey of Urban Reconstruction, P. Musialski, P. Wonka, D. Aliaga, M. Wimmer, L. Gool, W. Purgathofer, EUROGRAPHICS 2012
Acknowledgements
The course staff would like to thank the Stanford Computer Forum for their support.
Data-Driven Shape Anlaysis
http://graphics.stanford.edu/courses/cs468-14-spring/
http://web.stanford.edu/class/cs224m/
Syllabus
2010-01-10
None
<div><table>
<tbody><tr>
<td>
</td>
<td>
CS 224M : Multi Agent Systems<br />
Spring 2013-14
</td>
</tr>
</tbody></table>
<hr />
<h2> Syllabus</h2>
The syllabus is subject to change. Visit <a href="http://cs224m.stanford.edu/">http://cs224m.stanford.edu/</a> to find the latest syllabus.
<br />
<hr />
<b>Course Links</b>
<ul>
	<li>View grades <a href="https://www.stanford.edu/~hlee0/cgi-bin/cs224m/grades.php">here</a>. (Requires log-in via Stanford NetID)</li>
	<li><a href="https://class.stanford.edu/courses/Engineering/CS224M/Spring2014/about">CS224M on edX (video lectures)</a></li>
	<li><a href="https://class.stanford.edu/courses/Engineering/CS224M/Spring2014/discussion/forum">Discussion Forum on edX</a> (short questions, homework-related questions, etc.)</li>
	<li><a href="http://goo.gl/U3Ahx5">Google Form to submit questions</a> (questions worthy of a discussion in-class). See the list of questions <a href="http://goo.gl/9iNOJo">here</a>.</li>
</ul>
<hr />
<h3> Announcements </h3>
<b>June 9, 2014</b>
<ul>
<li>The class is over! Have a great summer! </li>
<li>
	NOTE: You must submit a hard copy of your final paper by 4pm on June 9. (There is a dropbox outside Gates 128.)
</li>
<li>
	There will be no bonus lecture as not enough students signed up. <br />
	On June 9, Yoav will give a bonus lecture on combinatorial auctions at 2:15pm. <br />
	If you are interested in coming, please email Eric. If 15 people or more respond, it's on. <br />
</li>
</ul>
<b>June 6, 2014</b>
<ul>
	<li>Homework 4 has been graded and solutions are posted. </li>
</ul>
<b>May 30, 2014</b>
<ul>
<li>
	We posted on the forum some notes on definition of dictatorship and IIA. <br />
	Please check these notes before you submit your HW4 solution. 
</li>
<li>
	Also, in Q4 of HW4, you can use Arrow's theorem, but if you are disproving a statement, you must give us a counter-example (otherwise, you will only get a partial credit). 
</li></ul>
<b>May 28, 2014</b>
<ul>
<li>
	On June 2 (last lecture), Haden and Eric will give short presentations on some GT research relevant to the course. 
</li>
<li>
	On June 9, Yoav will give a bonus lecture on combinatorial auctions at 2:15pm. <br />
	If you are interested in coming, please email Eric. If 15 people or more respond, it's on. <br />
	(PS -- I attended it when I took this class, and it would be worth your time! -- Haden.) 
</li>
</ul>
<b>May 27, 2014</b>
<ul>
<li>
Haden's last office hours will be on Friday (May 30) from 2:30pm to 4:30pm at Gates 128. (It's a different time than the usual one due to a robotics seminar at Gates.)
</li>
<li> If your proposal was not approved, please follow up with Yoav directly. </li>
</ul>
<b>May 25, 2014</b>
<ul>
<li>
	We added some clarifications to HW4 Q3 and Q4-b. Please check the updated version <a href="pdfs/hw4.pdf">here</a>. 
</li>
</ul>
<b>May 23, 2014</b>
<ul>
<li>
If you have not picked up your midterm yet, you can pick it up during the following hours:
</li>
<ul>
<li>May 30 (1pm-3pm) (Haden's office hours)</li>
<li>June 2 (in-class -- this is our last class)</li>
<li>June 2 (4pm - 6pm) (Eric's office hours)</li>
</ul>
<li>After 6pm, June 2, we will place all midterms in a dropbox outside Gates 128. <br />
	(If you want us to keep it in our office, just email us.)</li>
<li>Note that we will <b>NOT</b> accept any re-grade requests on HW/midterm <b>after June 2 6pm</b>.</li>
<li> Also note that there will be <b>no</b> re-grade of <b>HW4</b> submissions due to the course schedule.</li> 
<li><b>There is no class on May 26.</b></li>
</ul>
<b>May 19, 2014</b>
<ul>
	<li><b>Final Paper</b>: See <a href="#final">here</a> for infomration. We will make an official announcement after the midterm.</li>
	<li><b>Midterm has been graded (stats available on the forum). You can check your grades <a href="https://www.stanford.edu/~hlee0/cgi-bin/cs224m/grades.php">here</a>. </b></li>
	<li><b><a href="pdfs/MIDTERM-SOLUTION.pdf">MIDTERM SOLUTION</a></b></li>
	<li>Practie midterm and previous midterms are posted as of May 11. </li>
	<li>Solutions to practice midterm and previous midterms are posted as of May 12. </li>
</ul>
<b>May 15, 2014</b>
<ul>
	<li>Homework 3 has been graded. Solutions are posted (see 'Important Dates' section).</li>
	<li>For stats (median/average), see the discussion forum. </li>
</ul>
<b>May 13, 2014</b>
<ul>
	<li>Midterm coverage has been finalized. See the midterm section for details. </li>
	<li>Homework 4 is released. Due date is May 27, but we will grant a 1-week extension with no penalty (if submitted before 4pm June 3). </li>
</ul>
<b>May 5-9, 2014</b>
<ul>
	<li>Haden and Eric will be out of town between May 3 - May 10 (and therefore no office hours). </li>
	<li>Our third TA (<a href="mailto:srn@stanford.edu">Sathish</a>) will hold special office hours on <b>May 6th during 12pm-2pm</b>. <br />
	<b>Location</b>: Basement of Huang building. Email Sathish about the exact location if you can't find him. </li>
</ul>
<b>May 3, 2014</b>
<ul>
	<li>A clarification on Q2 of HW 3: 'Latency' has the same meaning as 'Cost' defined in the book, and this should cause no ambiguity. </li>
	<li>You need to justify your answers for Q2 and Q3 in HW 3. We updated the problem statement to reflect this. </li>
</ul>
<b>May 2, 2014</b>
<ul>
	<li>We finished grading homework 2. Solutions can be found under the 'Important Dates' section.</li>
	<li>Here's some example problems on Selfish routing (from last years recitation).[ <a href="pdfs/Selfish-Routing-Practice.pdf">PDF</a> ]<br />
	The slides are self-explanatory.<br />
	Disclaimer: The slides may contain a typo or error, so please report on the discussion forum if you find any. </li>
</ul>
<b>Apr 29, 2014</b>
<ul>	
	<li>Homework 3 is released. </li>
	<li>Here is a <b>practice problem on Bayesian Games</b> (<a href="pdfs/Bayesian-Games-Practice-Prob.pdf">PDF</a>) from previous years homework. (<a href="pdfs/Bayesian-Games-Practice-Prob-Sols.pdf">Solutions</a>)
 <br />Since we do not have homework problems on Bayesian Games this year, use this as an exercise problem in preparation for midterm.<br /> We will upload a solution to this later, but feel free to discuss on the forum.<br />
</li>
</ul>
<b>Apr 15, 2014</b>
<ul>
	<li>Homework 2 is released. </li>
	<li>Homework 1 solutions can be found under "Important Dates" section.<br />
	Feel free to discuss and comment on solutions of HW1. </li>
	<li>Homework 1 has been graded. You can pick it up from the box outside Gates 128. </li>
</ul>
<b>Apr 14, 2014</b>
<ul>
	<li><b>Office Hours</b>: As announced in class today, Haden will hold office hours on Fridays 1pm-3pm starting this week. </li>
	<li>A clarification on the wording of Q4-(b) and (c): The minmax values are defined as the (expected) payoff if the player best-responds to the minmax strategy of the other player against her (see Definition 3.4.2.). In case this was not clear, we updated our wording in the problem set. </li>
</ul>
<b>Apr 12, 2014</b>
<ul>
	<li>Minor changes to the coverage of reading material: <br />
For Week 3, we are removing sub-sections 5.2.3 and 5.2.4 from the reading list; we noted this in the original syllabus, but we are just making it more explicit.<br />
For Week 4, there is one video ("Learning in Repeated Games") that covers Ch 7.2 of the book. <br />
Note that we do not have lecture videos for Week 6. <br />
For Week 7, we are making Ch 9.5 optional. <br />
For Week 9, we are making Ch 10.4.7 and 10.5 optional.<br />
<b>All these changes have been reflected into the schedule at the bottom of this page. </b> 
</li>
</ul>
<b>Apr 10, 2014</b>
<ul>
	<li>If you visit the edX Course Info, you can now download "All Lecture Slides" by clicking on the link under "Course Handouts" (on the right panel).</li>
</ul>
<b>Apr 9, 2014</b>
<ul>
	<li>In Week 2 material, there are two lecture videos on "Maxmin Strategies", one Basic and one Advanced. <br />
They are essentially the same except the Basic one skips a few slides, and thus we are making the Basic one optional. <br />
The edX Courseware has been updated accordingly. 
</li>
</ul>
<b>Apr 7, 2014</b>
<ul>
	<li>In <b>Homework 1</b>: Assume that epsilon is positive in Question 1-(g). This should be clear from the context. We have updated the pdf file as well.</li>
	<li>We have changed the coverage of textbook material for week 1 and week 2.<br />
	 For week 1, we have removed 3.3.4 (it is optional now). <br />
	For week 2, we added 4.1 and 4.2.1. See the bottom of this page for the updated schedule.</li>
	<li><b>Eric's office hours have been changed to Mondays 4pm-6pm starting next week (at Gates 128).<br />
	For this week, Eric will hold office hours 11am-1pm tomorrow on April 8 (at Gates 128)</b>. </li>
</ul>
<b>Apr 5, 2014</b>
<ul>
	<li>We are aware that some lecture videos of Week 2 through Week 10 do not appear. The edX tech team is currently fixing it, and the videos will be ready soon. <br /> As of 2:30pm Apr 5, all videos sohuld be available on the edX platform (except for Week 6 which has no lecture videos). If you do not see a video for any sub-section, please let us know by posting on the forum which week and which sub-section is missing.</li>
</ul>
<b>Apr 1, 2014</b>
<ul>
	<li>Homework 1 has been released!</li>
	<li><b>Haden's first office hours on April 9 will run from 1pm-3pm (It's re-scheduled due to a seminar that starts at 3pm.)</b></li>
</ul>
<b>Mar 31, 2014</b>
<ul>
	<li>The syllabus has been updated. You can now watch videos on edX (see below). </li>
	<li>We have announcned a schedule for homework assignments. </li>
	<li>A tentative coverage of midterm is announced. We will finalize it a week prior to the exam date. </li>
	<li>Eric's office hours have been changed to Fridays 2pm-4pm (from 1pm-3pm). </li>
</ul>
<hr />
<h2> The Flipped Classroom</h2>
<div><p> 
We will run a flipped classroom: You are responsible for watching video lectures and reading the textbook on your own. <br />
When we meet on Mondays, the first half of the class will consist of reviewing the main concepts (that you are supposed to have learned), and invite your questions and discussion; occasionally we may have an invited guest speaker. For the second half of the class, the TAs will take over and do some recitation (for example, solving an exercise problem and answering questions related to homework). 
</p><p>
You should register for the course on edX here: 
<a href="https://class.stanford.edu/courses/Engineering/CS224M/Spring2014/about">https://class.stanford.edu/courses/Engineering/CS224M/Spring2014/about</a>.
<br />
You are advised to follow our suggested schedule (see the bottom of this page), but you are welcome to watch videos ahead of our schedule. 
<br />
We will collect questions in advance from you via the form here: <a href="http://goo.gl/U3Ahx5">http://goo.gl/U3Ahx5</a>. <br />
You can also view the questions asked by other students (to avoid duplicate questions): 
<a href="http://goo.gl/9iNOJo">http://goo.gl/9iNOJo</a>. <br />
You can ask any questions through the form, and we will try to address them when we meet on Mondays. </p></div><hr />
<h2> Time and Location </h2>
<p> Mondays 2:15-4:05pm in <b> 420-041 </b> (Jordan Hall) </p>
<hr />
<h2>Textbook</h2>
<p>All lecture slides are available on edX (see below). Additional <strong>required</strong> reading material will be the textbook by Professor Shoham, co-authored with Kevin Leyton-Brown: <b>Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations</b> (Cambridge University Press, 2009). A slightly rough version is available 
<a href="http://www.masfoundations.org/download.html">here</a>.</p>
<hr />
<h2>Quizzes and Lab Exercises</h2>
<p>Some lectures will have short quizzes which will help you understand the material. They are intended to make sure you understand the basic definitions, but don't call for the same level of thinking as the problem sets or the midterm. We encourage you to take all quizzes, but they will <b>not</b> count towards your grade.</p>
<p>You will have the opportunity to participate in some periodic online 'lab exercises' which will allow you to play some of the games that we discuss in the lectures. Links to specific games will be provided at the end of some lecture videos. Like the quizzes, these will <strong>not</strong> be graded. We will usually ask you to complete these before the corresponding material is covered in lecture, so that you have a chance to experience some of the games before we provide a formal game theoretic analysis of them.</p>
<hr />
<h2>Grading Policies</h2>
<p>We will have 4 homework assignments and in-class midterm on 5/19 Monday (tentative).<br /> 
We will not grade based on attendance. </p>
<p><strong>Homework = 50%</strong> | <strong>Midterm = 50%</strong> | <strong>Final Paper*</strong> (see below) </p>
<p>We will only accept hard-copies (no scanned copy or email) for homework solutions. <br />
Homework solutions are due by Tuesdays 4pm at Gates 128 (there will be a box). NO late submissions are allowed as we will release the solution at the deadline. <br />
While we do our best to make questions unambiguous, some questions may still remain unclear. <br />
Please ask on the Discussion forum on edX if you are confused.</p>
<p>
(*) Your Final Paper is graded on the A/B/C basis, which could change your letter grade up to a full grade up or down. <br />
Roughly speaking, getting an A on your final paper could increase your final letter grade up to a full grade (analogous for a C). 
</p>
<hr />
<h2> Instructors and Office Hours </h2>
<b> Instructor: </b> <a href="http://robotics.stanford.edu/~shoham/">Yoav Shoham</a>
<ul>
<li> Office Hours: Mondays 1pm - 2pm (starting April 7). </li>
<li> Location: Gates 140</li>
</ul>
<b> TAs: </b>
<ul>
	<li><a href="http://www.stanford.edu/~hlee0/">Haden Hooyeon Lee</a></li>
	<ul>
	<li> Office Hours: 1:00pm - 3:00pm on April 9 (Wed). <br /> 
	Fridays 1:00pm - 3:00pm<br />
	No office hours on May 9 (out of town). </li>
	<li> Location: Gates 128. (If the fishbowl (Gates 120) is not occupied by another group, I will be there.)<br />(May 30th will be the last office hours of Haden's, and it will run from 2:30pm until 4:30pm. ) </li>
	</ul>
	<li><a href="http://ai.stanford.edu/~ehhuang/">Eric Huang</a></li>
	<ul>
	<li> Office Hours: 11:00am - 1:00pm on April 8 (One-time).<br />
 	Mondays 4:00pm - 6:00pm.<br />
	No office hours on May 5 (out of town). </li>
	<li> Location: Gates 128.<br />
	(June 2nd will be the last office hours of Eric's)</li>
	</ul>
	<li><a href="mailto:srn@stanford.edu">Sathish Ramanathan Nagappan</a></li>
	<ul>
	<li> Office Hours: No regular office hours.</li>
	</ul>
</ul>
<hr />
<h2>Important Dates</h2> 
<b> Homework release and due dates </b> (NO late submissions are allowed.) 
<ul>
	<li><a href="pdfs/hw1.pdf">Homework 1</a> will be released on Apr 01 and due by 4pm on Apr 15. [<a href="pdfs/hw1sol.pdf">Solutions</a>]</li>
	<li><a href="pdfs/hw2.pdf">Homework 2</a> will be released on Apr 15 and due by 4pm on Apr 29. [<a href="pdfs/hw2sol.pdf">Solutions</a>]</li>
	<li><a href="pdfs/hw3.pdf">Homework 3</a> will be released on Apr 29 and due by 4pm on May 13. [<a href="pdfs/hw3sol.pdf">Solutions</a>]</li>
	<li><a href="pdfs/hw4.pdf">Homework 4</a> will be released on May 13 and due by 4pm on May 27. [<a href="pdfs/hw4sol.pdf">Solutions</a>]<br />
	You are given a 1-week extension on HW4 with no penalty (<b>if submitted before 4pm June 3</b>).
	</li>
</ul>
<a><b> Midterm date and coverage </b></a>
<ul>
	<li><b>Date</b>: In-class midterm on May 19th.</li>
	<li><b>Coverage</b>: Week 1 - Week 6 material (all lecture videos and textbook readings) as well as homework assignments 1 through 3.<br />
	<b>Except for</b>:
	<ul>
	<li>LP formulations discussed in the book. (We will not ask you to formulate LP problems, for instance.)</li>
	<li>Chapter 6.1.3 (automata). </li>
	<li>Chapter 6.2.3 (computing equilibria in stochastic games).</li>
	<li>Chapter 7.5, 7.6, and 7.7. </li>
	</ul>
	</li>
	<li><b>Open book policy</b>: Open-book and open-note (including your laptops and tablet devices that may have your notes and/or e-book). <br />Lecture slides and notes (from other schools) that you found online can be used as well. <br />However, please do <b>NOT</b> access the <b>Internet</b> during the midterm (<u>including, but not limited to, chatting on-line, searching on-line, etc.</u>). <br />That will be a violation of the honor code. </li>
	<li><b>Use of software</b>: You are <b>NOT allowed</b> to use software or solvers (such as Matlab, Mathematica, CVX, etc.) other than basic calculators and e-book reader. </li> 
	<li><b>Practice miderm</b></li>
	<ul>
	<li><a href="pdfs/mt2012.pdf">Midterm 1</a> [ <a href="pdfs/mts2012.pdf">Solutions</a> ] (Spring 2012)</li>
	<li><a href="pdfs/mt2013.pdf">Midterm 2</a> [ <a href="pdfs/mts2013.pdf">Solutions</a> ] (Spring 2013)</li>
	<li><a href="pdfs/pmt2013.pdf">Practice midterm</a> [ <a href="pdfs/pmts2013.pdf">Solutions</a> ] (Used in recitation, Spring 2013) -- this practice midterm re-uses many problems of midterm #1 above, so we advise you to focus on midterm #1 and #2 above.</li>
	</ul>
</ul>
<a>
<b> Final paper due dates</b>
</a>
<ul>
	<li>Final paper topic proposal due by 4pm on 5/23 Fri (NO LATE SUBMISSION ALLOWED)</li>
	<li>Final paper topic approval due by 4pm on 5/30 Fri (NO LATE SUBMISSION ALLOWED)</li>
	<li>Final paper submission due by 4pm on 6/09 Mon (NO LATE SUBMISSION ALLOWED)</li>
	<li><b>How to submit proposal</b>: If you visit <a href="https://www.stanford.edu/~hlee0/cgi-bin/cs224m/grades.php">HERE</a> (same link as the grading center), you should be able to see a link to the submission form. If not, email Haden.</li>
	<li><b>NOTE</b>: You MUST submit a <b>hard copy of your final paper</b> by 6/09 4pm. No electronic submission is allowed. </li>
	<li>For more information, please refer to the forum post <a href="https://class.stanford.edu/courses/Engineering/CS224M/Spring2014/discussion/forum/i4x-Engineering-CS224M-course-Spring2014/threads/537a6a877b80cb5ce000000a">HERE</a>.</li>
</ul> 
<hr />
<h2>Honor Code</h2>
<p>We encourage students to form study groups and discuss the lecture videos (including in-video questions). We also encourage you to get together with friends to watch the videos together as a group. However, the answers that you submit for the problem sets and midterm should be your own work; students are encouraged to discuss concepts and problems, but are NOT allowed to share their answers to problem sets and midterm. We ask that you do not share your solutions to any of the problem sets and midterm with any other students. This includes any sort of sharing, whether face-to-face, by email, uploading onto public sites, etc. Doing so will drastically detract from the learning experience of your fellow students, and any attempt to do so will be considered a clear honor code violation.</p>
<hr />
<h3> Lecture Schedules and Weekly Contents (subject to change)</h3>
<p></p><table>
 <tbody><tr>
 <th> Dates </th>
 <th> Content (subject to change) </th>
	<th> Released </th>
 <th> Due Dates </th>
 </tr>
 <tr>
 <td> <p> <b> 3/31 (Mon) </b> </p> </td>
 <td> <p> <b> Week 1: Introduction and Normal Form Games </b> </p>
 <ol> Normal Form Definitions, Dominant Strategies, Pareto Optimality, Mixed Strategies, and Nash Equilibrium </ol>
	<p><b> Videos: </b> All videos under Week 1 on edX. (~94 minutes)</p>
	<p><b> Readings: </b> Ch 3.1-3.3 (3.3.4 is optional.) </p>
 </td><td> <a href="pdfs/hw1.pdf">HW 1</a></td>
 <td> </td>
 </tr>
 <tr>
 <td> <p> <b> 4/7 (Mon) </b> </p> </td>
 <td> <p> <b> Week 2: Solution Concepts and Computation in Game Theory</b></p>
 <ol> Maxmin Strategy, Minimax Regret, Iterative Removal of Dominated Strategies, Computing Nash Equilibrium, Complexity of Nash Equilibrium, and Compact Representation</ol>
	<p><b> Videos: </b> All videos under Week 2 on edX (there are two 'optional' vidoes). (~70 minutes excluding optional vidoes)</p>
	<p><b> Readings: </b> Ch 3.4, Ch 4.1 and Ch 4.2.1. (Rest of Ch 4 is optional.)<br /> </p>
 </td><td> </td>
	<td></td>
 </tr>
 <tr>
 <td> <p> <b> 4/14 (Mon) </b> </p></td>
 <td> <p> <b> Week 3: Extensive Form Games</b></p>
 <ol> Extensive Form Definitions, Centipede Game, Backward Inductions, Imperfect Information, and Subgame Perfect Equilibrium </ol>
	<p><b> Videos: </b> All videos under Week 3 on edX. (~99 minutes)</p>
	<p><b> Readings: </b> Ch 5 (5.2.3 and 5.2.4 are optional).
	<br />NOTE: Sequence form and sequential equilibrium will be good to know, but will not appear in the homework or exam. Ch 6.5 is optional (but we recommend you read it as it contains intereting examples).
	</p>
	</td><td> HW 2 </td>
 <td> Homework 1 due <br /> (Apr 15)</td>
 </tr>
 <tr>
 <td> <p> <b> 4/21 (Mon) </b> </p></td>
 <td> <p> <b> Week 4: Repeated Games</b> </p>
 <ol> Finitely Repeated Games, Infinitely Repeated Games, Stochastic Games, Learning in Repeated Games, Folk Theorems </ol>
	<p><b> Videos: </b> All videos under Week 4 on edX. (~84 minutes)</p>
	<p><b> Readings: </b> Ch 6.1-6.2; Also Ch 7.2 (Fictitious play). </p>
	</td><td> </td>
 <td> </td>
 </tr>
 <tr>
 <td> <p> <b> 4/28 (Mon) </b> </p></td>
 <td> <p> <b> Week 5: Coalitional Games and Bayesian Games </b> </p>
 <ol>Coalitional Game Theory, Shapley Value, Core, and Bayesian Games </ol>
	<p><b> Videos: </b> All videos under Week 5 on edX. (~93 minutes)</p>
	<p><b> Readings: </b> Ch 12.1-2, Ch 6.3 </p>
	</td><td> HW 3</td>
 <td> Homework 2 due <br /> (Apr 29)</td>
 </tr>
 <tr>
 <td> <p> <b> 5/5 (Mon) </b> </p></td>
 <td> <p> <b> Week 6: Multi-Agent Learning </b> (and Congestion Games) </p>
 <ol> Rational Learning, Reinforcement Learning, Replicator Dynamics and Evolutionarily Stable Strategies, and Congestion Games </ol>
	<p><b> Videos: </b> No videos. (In Week 4, you watched "Learning in Repeated Games" that covers Fictitious play in Ch 7.2 of the book.) </p>
	<p><b> Readings: </b> Ch 7, Ch 6.4 <br /> </p>
 </td><td> </td>
	<td></td>
 </tr>
 <tr>
 <td> <p> <b> 5/12 (Mon) </b> </p></td>
 <td> <p> <b> Week 7: Social Choice </b> </p>
 <ol> Social Choice, Computational Social Choice and Voting Manipulation </ol>
	<p><b> Videos: </b> All videos under Week 7 on edX. (~77 minutes)</p>
	<p><b> Readings: </b> Ch 9 (Ch 9.5 is optional)</p>
	</td><td> HW 4</td>
 <td> Homework 3 due <br /> (May 13)</td>
 </tr>
 <tr>
 <td> <p> <b> 5/19 (Mon) </b> </p> <b>In-class:<br /> MIDTERM </b> </td>
 <td> <p> <b> MIDTERM </b> </p>
 <p> <b> Week 8: Mechanism Design </b> </p>
 <ol> Intro to Mechanism Design, Implementation, Revelation Principle, Quasilinear Preferences, and Mechanism Design as an Optimization Problem</ol>
	<p><b> Videos: </b> All videos under Week 8 on edX. (~69 minutes)</p>
	<p><b> Readings: </b> Ch 10.1-10.3 </p>
	</td><td></td>
 <td> Final Paper Proposal due (May 23)</td>
 </tr>
 <tr>
 <td> <p> <b> 5/26 (Mon) </b> </p> <b>No classes, Memorial day </b> </td>
 <td>
	 <p> <b> Week 9 : The VCG Mechanisms </b> </p>
 <ol> Groves Mechanisms, VCG Mechanisms, and more </ol>
	<p><b> Videos: </b> All videos under Week 9 on edX. (~81 minutes)</p>
	<p><b> Readings: </b> Ch 10.4 (Ch 10.4.7 is optional.) (optional: 10.5-10.7) </p>
	</td><td> </td>
 <td> Homework 4 due <br /> (May 27)<br /> Final Paper Approval due (May 30)</td>
 </tr>
 <tr>
 <td> <p> <b> 6/2 (Mon) </b> </p> </td>
 <td> <p> <b> Week 10: Auctions</b> </p> 
 <ol> First Price Auctions, Auction Formats, Beyond Single Unit Auctions, Bidding Languages, and the Winner Determination Problem </ol>
	<p><b> Videos: </b> All videos under Week 10 on edX. (~110 minutes)</p>
	<p><b> Readings: </b> Ch 11.1-11.2 (optional: 11.3-11.4) </p>
	</td>
	<td> </td>
 <td> </td>
 </tr>
 <tr>
 <td> <p> <b> 6/9 (Mon) </b> </p> </td>
 <td> <p> <b> Finals week</b> </p> 
 	Final Paper due by 4pm June 9. 
	</td>
	<td> </td>
 <td> </td>
 </tr>
</tbody></table><p></p>
||||I|||| CS 224M : Multi Agent Systems
 Spring 2013-14 


Syllabus

The syllabus is subject to change. Visit http://cs224m.stanford.edu/ to find the latest syllabus.
Course Links
 * View grades here. (Requires log-in via Stanford NetID)
 * CS224M on edX (video lectures)
 * Discussion Forum on edX (short questions, homework-related questions, etc.)
 * Google Form to submit questions (questions worthy of a discussion in-class). See the list of questions here.

Announcements

June 9, 2014
 * The class is over! Have a great summer!
 * NOTE: You must submit a hard copy of your final paper by 4pm on June 9. (There is a dropbox outside Gates 128.)
 * There will be no bonus lecture as not enough students signed up.
 On June 9, Yoav will give a bonus lecture on combinatorial auctions at 2:15pm.
 If you are interested in coming, please email Eric. If 15 people or more respond, it's on.
June 6, 2014
 * Homework 4 has been graded and solutions are posted.
May 30, 2014
 * We posted on the forum some notes on definition of dictatorship and IIA.
 Please check these notes before you submit your HW4 solution.
 * Also, in Q4 of HW4, you can use Arrow's theorem, but if you are disproving a statement, you must give us a counter-example (otherwise, you will only get a partial credit).
May 28, 2014
 * On June 2 (last lecture), Haden and Eric will give short presentations on some GT research relevant to the course.
 * On June 9, Yoav will give a bonus lecture on combinatorial auctions at 2:15pm.
 If you are interested in coming, please email Eric. If 15 people or more respond, it's on.
 (PS -- I attended it when I took this class, and it would be worth your time! -- Haden.)
May 27, 2014
 * Haden's last office hours will be on Friday (May 30) from 2:30pm to 4:30pm at Gates 128. (It's a different time than the usual one due to a robotics seminar at Gates.)
 * If your proposal was not approved, please follow up with Yoav directly.
May 25, 2014
 * We added some clarifications to HW4 Q3 and Q4-b. Please check the updated version here.
May 23, 2014
 * If you have not picked up your midterm yet, you can pick it up during the following hours:
 + May 30 (1pm-3pm) (Haden's office hours)
 + June 2 (in-class -- this is our last class)
 + June 2 (4pm - 6pm) (Eric's office hours)
 * After 6pm, June 2, we will place all midterms in a dropbox outside Gates 128.
 (If you want us to keep it in our office, just email us.)
 * Note that we will NOT accept any re-grade requests on HW/midterm after June 2 6pm.
 * Also note that there will be no re-grade of HW4 submissions due to the course schedule.
 * There is no class on May 26.
May 19, 2014
 * Final Paper: See here for infomration. We will make an official announcement after the midterm.
 * Midterm has been graded (stats available on the forum). You can check your grades here.
 * MIDTERM SOLUTION
 * Practie midterm and previous midterms are posted as of May 11.
 * Solutions to practice midterm and previous midterms are posted as of May 12.
May 15, 2014
 * Homework 3 has been graded. Solutions are posted (see 'Important Dates' section).
 * For stats (median/average), see the discussion forum.
May 13, 2014
 * Midterm coverage has been finalized. See the midterm section for details.
 * Homework 4 is released. Due date is May 27, but we will grant a 1-week extension with no penalty (if submitted before 4pm June 3).
May 5-9, 2014
 * Haden and Eric will be out of town between May 3 - May 10 (and therefore no office hours).
 * Our third TA (Sathish) will hold special office hours on May 6th during 12pm-2pm.
 Location: Basement of Huang building. Email Sathish about the exact location if you can't find him.
May 3, 2014
 * A clarification on Q2 of HW 3: 'Latency' has the same meaning as 'Cost' defined in the book, and this should cause no ambiguity.
 * You need to justify your answers for Q2 and Q3 in HW 3. We updated the problem statement to reflect this.
May 2, 2014
 * We finished grading homework 2. Solutions can be found under the 'Important Dates' section.
 * Here's some example problems on Selfish routing (from last years recitation).[ PDF ]
 The slides are self-explanatory.
 Disclaimer: The slides may contain a typo or error, so please report on the discussion forum if you find any.
Apr 29, 2014
 * Homework 3 is released.
 * Here is a practice problem on Bayesian Games (PDF) from previous years homework. (Solutions)
 Since we do not have homework problems on Bayesian Games this year, use this as an exercise problem in preparation for midterm.
 We will upload a solution to this later, but feel free to discuss on the forum.
Apr 15, 2014
 * Homework 2 is released.
 * Homework 1 solutions can be found under "Important Dates" section.
 Feel free to discuss and comment on solutions of HW1.
 * Homework 1 has been graded. You can pick it up from the box outside Gates 128.
Apr 14, 2014
 * Office Hours: As announced in class today, Haden will hold office hours on Fridays 1pm-3pm starting this week.
 * A clarification on the wording of Q4-(b) and (c): The minmax values are defined as the (expected) payoff if the player best-responds to the minmax strategy of the other player against her (see Definition 3.4.2.). In case this was not clear, we updated our wording in the problem set.
Apr 12, 2014
 * Minor changes to the coverage of reading material:
 For Week 3, we are removing sub-sections 5.2.3 and 5.2.4 from the reading list; we noted this in the original syllabus, but we are just making it more explicit.
 For Week 4, there is one video ("Learning in Repeated Games") that covers Ch 7.2 of the book.
 Note that we do not have lecture videos for Week 6.
 For Week 7, we are making Ch 9.5 optional.
 For Week 9, we are making Ch 10.4.7 and 10.5 optional.
 All these changes have been reflected into the schedule at the bottom of this page.
Apr 10, 2014
 * If you visit the edX Course Info, you can now download "All Lecture Slides" by clicking on the link under "Course Handouts" (on the right panel).
Apr 9, 2014
 * In Week 2 material, there are two lecture videos on "Maxmin Strategies", one Basic and one Advanced.
 They are essentially the same except the Basic one skips a few slides, and thus we are making the Basic one optional.
 The edX Courseware has been updated accordingly.
Apr 7, 2014
 * In Homework 1: Assume that epsilon is positive in Question 1-(g). This should be clear from the context. We have updated the pdf file as well.
 * We have changed the coverage of textbook material for week 1 and week 2.
 For week 1, we have removed 3.3.4 (it is optional now).
 For week 2, we added 4.1 and 4.2.1. See the bottom of this page for the updated schedule.
 * Eric's office hours have been changed to Mondays 4pm-6pm starting next week (at Gates 128).
 For this week, Eric will hold office hours 11am-1pm tomorrow on April 8 (at Gates 128).
Apr 5, 2014
 * We are aware that some lecture videos of Week 2 through Week 10 do not appear. The edX tech team is currently fixing it, and the videos will be ready soon.
 As of 2:30pm Apr 5, all videos sohuld be available on the edX platform (except for Week 6 which has no lecture videos). If you do not see a video for any sub-section, please let us know by posting on the forum which week and which sub-section is missing.
Apr 1, 2014
 * Homework 1 has been released!
 * Haden's first office hours on April 9 will run from 1pm-3pm (It's re-scheduled due to a seminar that starts at 3pm.)
Mar 31, 2014
 * The syllabus has been updated. You can now watch videos on edX (see below).
 * We have announcned a schedule for homework assignments.
 * A tentative coverage of midterm is announced. We will finalize it a week prior to the exam date.
 * Eric's office hours have been changed to Fridays 2pm-4pm (from 1pm-3pm).

The Flipped Classroom

We will run a flipped classroom: You are responsible for watching video lectures and reading the textbook on your own.
When we meet on Mondays, the first half of the class will consist of reviewing the main concepts (that you are supposed to have learned), and invite your questions and discussion; occasionally we may have an invited guest speaker. For the second half of the class, the TAs will take over and do some recitation (for example, solving an exercise problem and answering questions related to homework).

You should register for the course on edX here: https://class.stanford.edu/courses/Engineering/CS224M/Spring2014/about.
You are advised to follow our suggested schedule (see the bottom of this page), but you are welcome to watch videos ahead of our schedule.
We will collect questions in advance from you via the form here: http://goo.gl/U3Ahx5.
You can also view the questions asked by other students (to avoid duplicate questions): http://goo.gl/9iNOJo.
You can ask any questions through the form, and we will try to address them when we meet on Mondays.

Time and Location

Mondays 2:15-4:05pm in 420-041 (Jordan Hall)

Textbook

All lecture slides are available on edX (see below). Additional required reading material will be the textbook by Professor Shoham, co-authored with Kevin Leyton-Brown: Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations (Cambridge University Press, 2009). A slightly rough version is available here.

Quizzes and Lab Exercises

Some lectures will have short quizzes which will help you understand the material. They are intended to make sure you understand the basic definitions, but don't call for the same level of thinking as the problem sets or the midterm. We encourage you to take all quizzes, but they will not count towards your grade.

You will have the opportunity to participate in some periodic online 'lab exercises' which will allow you to play some of the games that we discuss in the lectures. Links to specific games will be provided at the end of some lecture videos. Like the quizzes, these will not be graded. We will usually ask you to complete these before the corresponding material is covered in lecture, so that you have a chance to experience some of the games before we provide a formal game theoretic analysis of them.

Grading Policies

We will have 4 homework assignments and in-class midterm on 5/19 Monday (tentative).
We will not grade based on attendance.

Homework = 50% | Midterm = 50% | Final Paper* (see below)

We will only accept hard-copies (no scanned copy or email) for homework solutions.
Homework solutions are due by Tuesdays 4pm at Gates 128 (there will be a box). NO late submissions are allowed as we will release the solution at the deadline.
While we do our best to make questions unambiguous, some questions may still remain unclear.
Please ask on the Discussion forum on edX if you are confused.

(*) Your Final Paper is graded on the A/B/C basis, which could change your letter grade up to a full grade up or down.
Roughly speaking, getting an A on your final paper could increase your final letter grade up to a full grade (analogous for a C).

Instructors and Office Hours

Instructor: Yoav Shoham
 * Office Hours: Mondays 1pm - 2pm (starting April 7).
 * Location: Gates 140
TAs:
 * Haden Hooyeon Lee
 + Office Hours: 1:00pm - 3:00pm on April 9 (Wed).
 Fridays 1:00pm - 3:00pm
 No office hours on May 9 (out of town).
 + Location: Gates 128. (If the fishbowl (Gates 120) is not occupied by another group, I will be there.)
 (May 30th will be the last office hours of Haden's, and it will run from 2:30pm until 4:30pm. )
 * Eric Huang
 + Office Hours: 11:00am - 1:00pm on April 8 (One-time).
 Mondays 4:00pm - 6:00pm.
 No office hours on May 5 (out of town).
 + Location: Gates 128.
 (June 2nd will be the last office hours of Eric's)
 * Sathish Ramanathan Nagappan
 + Office Hours: No regular office hours.

Important Dates

Homework release and due dates (NO late submissions are allowed.)
 * Homework 1 will be released on Apr 01 and due by 4pm on Apr 15. [Solutions]
 * Homework 2 will be released on Apr 15 and due by 4pm on Apr 29. [Solutions]
 * Homework 3 will be released on Apr 29 and due by 4pm on May 13. [Solutions]
 * Homework 4 will be released on May 13 and due by 4pm on May 27. [Solutions]
 You are given a 1-week extension on HW4 with no penalty (if submitted before 4pm June 3).
Midterm date and coverage
 * Date: In-class midterm on May 19th.
 * Coverage: Week 1 - Week 6 material (all lecture videos and textbook readings) as well as homework assignments 1 through 3.
 Except for:
 + LP formulations discussed in the book. (We will not ask you to formulate LP problems, for instance.)
 + Chapter 6.1.3 (automata).
 + Chapter 6.2.3 (computing equilibria in stochastic games).
 + Chapter 7.5, 7.6, and 7.7.
 * Open book policy: Open-book and open-note (including your laptops and tablet devices that may have your notes and/or e-book).
 Lecture slides and notes (from other schools) that you found online can be used as well.
 However, please do NOT access the Internet during the midterm (including, but not limited to, chatting on-line, searching on-line, etc.).
 That will be a violation of the honor code.
 * Use of software: You are NOT allowed to use software or solvers (such as Matlab, Mathematica, CVX, etc.) other than basic calculators and e-book reader.
 * Practice miderm
 + Midterm 1 [ Solutions ] (Spring 2012)
 + Midterm 2 [ Solutions ] (Spring 2013)
 + Practice midterm [ Solutions ] (Used in recitation, Spring 2013) -- this practice midterm re-uses many problems of midterm #1 above, so we advise you to focus on midterm #1 and #2 above.
Final paper due dates
 * Final paper topic proposal due by 4pm on 5/23 Fri (NO LATE SUBMISSION ALLOWED)
 * Final paper topic approval due by 4pm on 5/30 Fri (NO LATE SUBMISSION ALLOWED)
 * Final paper submission due by 4pm on 6/09 Mon (NO LATE SUBMISSION ALLOWED)
 * How to submit proposal: If you visit HERE (same link as the grading center), you should be able to see a link to the submission form. If not, email Haden.
 * NOTE: You MUST submit a hard copy of your final paper by 6/09 4pm. No electronic submission is allowed.
 * For more information, please refer to the forum post HERE.

Honor Code

We encourage students to form study groups and discuss the lecture videos (including in-video questions). We also encourage you to get together with friends to watch the videos together as a group. However, the answers that you submit for the problem sets and midterm should be your own work; students are encouraged to discuss concepts and problems, but are NOT allowed to share their answers to problem sets and midterm. We ask that you do not share your solutions to any of the problem sets and midterm with any other students. This includes any sort of sharing, whether face-to-face, by email, uploading onto public sites, etc. Doing so will drastically detract from the learning experience of your fellow students, and any attempt to do so will be considered a clear honor code violation.

Lecture Schedules and Weekly Contents (subject to change)

Dates Content (subject to change)   Released Due Dates 
 Week 1: Introduction and Normal Form Games    
     
 Normal Form Definitions, Dominant Strategies, Pareto Optimality, Mixed Strategies, and Nash Equilibrium   
3/31 (Mon)    HW 1 
 Videos: All videos under Week 1 on edX. (~94 minutes)   
     
 Readings: Ch 3.1-3.3 (3.3.4 is optional.)    
     
 Week 2: Solution Concepts and Computation in Game Theory   
     
 Maxmin Strategy, Minimax Regret, Iterative Removal of Dominated Strategies, Computing Nash Equilibrium, Complexity of Nash Equilibrium, and Compact Representation  
4/7 (Mon)     
 Videos: All videos under Week 2 on edX (there are two 'optional' vidoes). (~70 minutes excluding optional vidoes)   
     
 Readings: Ch 3.4, Ch 4.1 and Ch 4.2.1. (Rest of Ch 4 is optional.)   
     
 Week 3: Extensive Form Games    
     
 Extensive Form Definitions, Centipede Game, Backward Inductions, Imperfect Information, and Subgame Perfect Equilibrium  
4/14 (Mon)    Homework 1 due 
 Videos: All videos under Week 3 on edX. (~99 minutes)   HW 2 (Apr 15) 
     
 Readings: Ch 5 (5.2.3 and 5.2.4 are optional).    
 NOTE: Sequence form and sequential equilibrium will be good to know, but will not appear in the homework or exam. Ch 6.5 is optional (but we recommend you read it as it contains intereting examples). 
     
 Week 4: Repeated Games    
     
 Finitely Repeated Games, Infinitely Repeated Games, Stochastic Games, Learning in Repeated Games, Folk Theorems   
4/21 (Mon)     
 Videos: All videos under Week 4 on edX. (~84 minutes)   
     
 Readings: Ch 6.1-6.2; Also Ch 7.2 (Fictitious play).   
     
 Week 5: Coalitional Games and Bayesian Games    
     
 Coalitional Game Theory, Shapley Value, Core, and Bayesian Games   
4/28 (Mon)    HW 3 Homework 2 due 
 Videos: All videos under Week 5 on edX. (~93 minutes)   (Apr 29) 
     
 Readings: Ch 12.1-2, Ch 6.3    
     
 Week 6: Multi-Agent Learning (and Congestion Games)    
     
 Rational Learning, Reinforcement Learning, Replicator Dynamics and Evolutionarily Stable Strategies, and Congestion Games  
5/5 (Mon)     
 Videos: No videos. (In Week 4, you watched "Learning in Repeated Games" that covers Fictitious play in Ch 7.2 of the book.)  
     
 Readings: Ch 7, Ch 6.4    
     
 Week 7: Social Choice    
     
 Social Choice, Computational Social Choice and Voting Manipulation   
5/12 (Mon)    HW 4 Homework 3 due 
 Videos: All videos under Week 7 on edX. (~77 minutes)   (May 13) 
     
 Readings: Ch 9 (Ch 9.5 is optional)    
     
 MIDTERM    
     
 Week 8: Mechanism Design    
5/19 (Mon)     
 Intro to Mechanism Design, Implementation, Revelation Principle, Quasilinear Preferences, and Mechanism Design as an Optimization Problem  Final Paper Proposal due (May 23)
In-class:     
MIDTERM Videos: All videos under Week 8 on edX. (~69 minutes)   
     
 Readings: Ch 10.1-10.3    
     
 Week 9 : The VCG Mechanisms    
     
5/26 (Mon) Groves Mechanisms, VCG Mechanisms, and more   Homework 4 due 
    (May 27) 
No classes, Memorial day Videos: All videos under Week 9 on edX. (~81 minutes)   Final Paper Approval due (May 30)
     
 Readings: Ch 10.4 (Ch 10.4.7 is optional.) (optional: 10.5-10.7)   
     
 Week 10: Auctions    
     
 First Price Auctions, Auction Formats, Beyond Single Unit Auctions, Bidding Languages, and the Winner Determination Problem  
6/2 (Mon)     
 Videos: All videos under Week 10 on edX. (~110 minutes)   
     
 Readings: Ch 11.1-11.2 (optional: 11.3-11.4)    
     
6/9 (Mon) Finals week    
     
 Final Paper due by 4pm June 9.    

CS 224M : Multi Agent Systems
Spring 2013-14
 
 Syllabus
The syllabus is subject to change. Visit http://cs224m.stanford.edu/ to find the latest syllabus.
Course Links
	View grades here. (Requires log-in via Stanford NetID)
	 CS224M on edX (video lectures) 
	 Discussion Forum on edX (short questions, homework-related questions, etc.)
	 Google Form to submit questions (questions worthy of a discussion in-class). See the list of questions here.
 Announcements 
June 9, 2014
The class is over! Have a great summer! 
	NOTE: You must submit a hard copy of your final paper by 4pm on June 9. (There is a dropbox outside Gates 128.)
	There will be no bonus lecture as not enough students signed up. 
	On June 9, Yoav will give a bonus lecture on combinatorial auctions at 2:15pm. 
	If you are interested in coming, please email Eric. If 15 people or more respond, it's on. 
June 6, 2014
	Homework 4 has been graded and solutions are posted. 
May 30, 2014
	We posted on the forum some notes on definition of dictatorship and IIA. 
	Please check these notes before you submit your HW4 solution. 
	Also, in Q4 of HW4, you can use Arrow's theorem, but if you are disproving a statement, you must give us a counter-example (otherwise, you will only get a partial credit). 
 
May 28, 2014
	On June 2 (last lecture), Haden and Eric will give short presentations on some GT research relevant to the course. 
	On June 9, Yoav will give a bonus lecture on combinatorial auctions at 2:15pm. 
	If you are interested in coming, please email Eric. If 15 people or more respond, it's on. 
	(PS -- I attended it when I took this class, and it would be worth your time! -- Haden.) 
May 27, 2014
Haden's last office hours will be on Friday (May 30) from 2:30pm to 4:30pm at Gates 128. (It's a different time than the usual one due to a robotics seminar at Gates.)
 If your proposal was not approved, please follow up with Yoav directly. 
May 25, 2014
	We added some clarifications to HW4 Q3 and Q4-b. Please check the updated version here. 
May 23, 2014
If you have not picked up your midterm yet, you can pick it up during the following hours:
May 30 (1pm-3pm) (Haden's office hours)
June 2 (in-class -- this is our last class)
June 2 (4pm - 6pm) (Eric's office hours)
After 6pm, June 2, we will place all midterms in a dropbox outside Gates 128. 
	(If you want us to keep it in our office, just email us.)
Note that we will NOT accept any re-grade requests on HW/midterm after June 2 6pm.
 Also note that there will be no re-grade of HW4 submissions due to the course schedule. 
 There is no class on May 26. 
May 19, 2014
	 Final Paper: See here for infomration. We will make an official announcement after the midterm.
	 Midterm has been graded (stats available on the forum). You can check your grades here.  
	  MIDTERM SOLUTION  
	Practie midterm and previous midterms are posted as of May 11. 
	Solutions to practice midterm and previous midterms are posted as of May 12. 
May 15, 2014
	Homework 3 has been graded. Solutions are posted (see 'Important Dates' section).
	For stats (median/average), see the discussion forum. 
May 13, 2014
	Midterm coverage has been finalized. See the midterm section for details. 
	Homework 4 is released. Due date is May 27, but we will grant a 1-week extension with no penalty (if submitted before 4pm June 3). 
May 5-9, 2014
	Haden and Eric will be out of town between May 3 - May 10 (and therefore no office hours). 
	Our third TA (Sathish) will hold special office hours on May 6th during 12pm-2pm. 
	Location: Basement of Huang building. Email Sathish about the exact location if you can't find him. 
May 3, 2014
	A clarification on Q2 of HW 3: 'Latency' has the same meaning as 'Cost' defined in the book, and this should cause no ambiguity. 
	You need to justify your answers for Q2 and Q3 in HW 3. We updated the problem statement to reflect this. 
May 2, 2014
	We finished grading homework 2. Solutions can be found under the 'Important Dates' section.
	Here's some example problems on Selfish routing (from last years recitation).[ PDF ]
	The slides are self-explanatory.
	Disclaimer: The slides may contain a typo or error, so please report on the discussion forum if you find any. 
Apr 29, 2014
	
	Homework 3 is released. 
	Here is a practice problem on Bayesian Games (PDF) from previous years homework. (Solutions)
 Since we do not have homework problems on Bayesian Games this year, use this as an exercise problem in preparation for midterm. We will upload a solution to this later, but feel free to discuss on the forum.
Apr 15, 2014
	Homework 2 is released. 
	Homework 1 solutions can be found under "Important Dates" section.
	Feel free to discuss and comment on solutions of HW1. 
	Homework 1 has been graded. You can pick it up from the box outside Gates 128. 
Apr 14, 2014
	 Office Hours: As announced in class today, Haden will hold office hours on Fridays 1pm-3pm starting this week. 
	A clarification on the wording of Q4-(b) and (c): The minmax values are defined as the (expected) payoff if the player best-responds to the minmax strategy of the other player against her (see Definition 3.4.2.). In case this was not clear, we updated our wording in the problem set. 
Apr 12, 2014
	Minor changes to the coverage of reading material: 
For Week 3, we are removing sub-sections 5.2.3 and 5.2.4 from the reading list; we noted this in the original syllabus, but we are just making it more explicit.
For Week 4, there is one video ("Learning in Repeated Games") that covers Ch 7.2 of the book. 
Note that we do not have lecture videos for Week 6. 
For Week 7, we are making Ch 9.5 optional. 
For Week 9, we are making Ch 10.4.7 and 10.5 optional.
All these changes have been reflected into the schedule at the bottom of this page.  
Apr 10, 2014
	If you visit the edX Course Info, you can now download "All Lecture Slides" by clicking on the link under "Course Handouts" (on the right panel).
Apr 9, 2014
	In Week 2 material, there are two lecture videos on "Maxmin Strategies", one Basic and one Advanced. 
They are essentially the same except the Basic one skips a few slides, and thus we are making the Basic one optional. 
The edX Courseware has been updated accordingly. 
Apr 7, 2014
	In Homework 1: Assume that epsilon is positive in Question 1-(g). This should be clear from the context. We have updated the pdf file as well.
	We have changed the coverage of textbook material for week 1 and week 2.
	 For week 1, we have removed 3.3.4 (it is optional now). 
	For week 2, we added 4.1 and 4.2.1. See the bottom of this page for the updated schedule.
	 Eric's office hours have been changed to Mondays 4pm-6pm starting next week (at Gates 128).
	For this week, Eric will hold office hours 11am-1pm tomorrow on April 8 (at Gates 128). 
Apr 5, 2014
	We are aware that some lecture videos of Week 2 through Week 10 do not appear. The edX tech team is currently fixing it, and the videos will be ready soon.  As of 2:30pm Apr 5, all videos sohuld be available on the edX platform (except for Week 6 which has no lecture videos). If you do not see a video for any sub-section, please let us know by posting on the forum which week and which sub-section is missing.
Apr 1, 2014
	Homework 1 has been released!
	 Haden's first office hours on April 9 will run from 1pm-3pm (It's re-scheduled due to a seminar that starts at 3pm.) 
Mar 31, 2014
	The syllabus has been updated. You can now watch videos on edX (see below). 
	We have announcned a schedule for homework assignments. 
	A tentative coverage of midterm is announced. We will finalize it a week prior to the exam date. 
	Eric's office hours have been changed to Fridays 2pm-4pm (from 1pm-3pm). 
 The Flipped Classroom
  
We will run a flipped classroom: You are responsible for watching video lectures and reading the textbook on your own. 
When we meet on Mondays, the first half of the class will consist of reviewing the main concepts (that you are supposed to have learned), and invite your questions and discussion; occasionally we may have an invited guest speaker. For the second half of the class, the TAs will take over and do some recitation (for example, solving an exercise problem and answering questions related to homework). 
 
You should register for the course on edX here: 
https://class.stanford.edu/courses/Engineering/CS224M/Spring2014/about.
You are advised to follow our suggested schedule (see the bottom of this page), but you are welcome to watch videos ahead of our schedule. 
We will collect questions in advance from you via the form here: http://goo.gl/U3Ahx5. 
You can also view the questions asked by other students (to avoid duplicate questions): 
http://goo.gl/9iNOJo. 
You can ask any questions through the form, and we will try to address them when we meet on Mondays.   
 Time and Location 
 Mondays 2:15-4:05pm in  420-041  (Jordan Hall) 
Textbook
All lecture slides are available on edX (see below). Additional required reading material will be the textbook by Professor Shoham, co-authored with Kevin Leyton-Brown: Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations (Cambridge University Press, 2009). A slightly rough version is available 
here.
Quizzes and Lab Exercises
Some lectures will have short quizzes which will help you understand the material. They are intended to make sure you understand the basic definitions, but don't call for the same level of thinking as the problem sets or the midterm. We encourage you to take all quizzes, but they will not count towards your grade.
You will have the opportunity to participate in some periodic online 'lab exercises' which will allow you to play some of the games that we discuss in the lectures. Links to specific games will be provided at the end of some lecture videos. Like the quizzes, these will not be graded. We will usually ask you to complete these before the corresponding material is covered in lecture, so that you have a chance to experience some of the games before we provide a formal game theoretic analysis of them.
Grading Policies
We will have 4 homework assignments and in-class midterm on 5/19 Monday (tentative). 
We will not grade based on attendance. 
 Homework = 50% | Midterm = 50% | Final Paper* (see below) 
We will only accept hard-copies (no scanned copy or email) for homework solutions. 
Homework solutions are due by Tuesdays 4pm at Gates 128 (there will be a box). NO late submissions are allowed as we will release the solution at the deadline. 
While we do our best to make questions unambiguous, some questions may still remain unclear. 
Please ask on the Discussion forum on edX if you are confused.
(*) Your Final Paper is graded on the A/B/C basis, which could change your letter grade up to a full grade up or down. 
Roughly speaking, getting an A on your final paper could increase your final letter grade up to a full grade (analogous for a C). 
 Instructors and Office Hours 
 Instructor:  Yoav Shoham
 Office Hours: Mondays 1pm - 2pm (starting April 7). 
 Location: Gates 140
 TAs: 
	 Haden Hooyeon Lee 
	
	 Office Hours: 1:00pm - 3:00pm on April 9 (Wed).  
	Fridays 1:00pm - 3:00pm
	No office hours on May 9 (out of town). 
	 Location: Gates 128. (If the fishbowl (Gates 120) is not occupied by another group, I will be there.)(May 30th will be the last office hours of Haden's, and it will run from 2:30pm until 4:30pm. ) 
	
	 Eric Huang 
	
	 Office Hours: 11:00am - 1:00pm on April 8 (One-time).
 	Mondays 4:00pm - 6:00pm.
	No office hours on May 5 (out of town). 
	 Location: Gates 128.
	(June 2nd will be the last office hours of Eric's)
	
	 Sathish Ramanathan Nagappan 
	
	 Office Hours: No regular office hours.
	
Important Dates 
 Homework release and due dates  (NO late submissions are allowed.) 
	 Homework 1 will be released on Apr 01 and due by 4pm on Apr 15. [Solutions]
	 Homework 2 will be released on Apr 15 and due by 4pm on Apr 29. [Solutions]
	 Homework 3 will be released on Apr 29 and due by 4pm on May 13. [Solutions]
	 Homework 4 will be released on May 13 and due by 4pm on May 27. [Solutions]
	You are given a 1-week extension on HW4 with no penalty (if submitted before 4pm June 3).
	
  Midterm date and coverage  
	 Date: In-class midterm on May 19th.
	 Coverage: Week 1 - Week 6 material (all lecture videos and textbook readings) as well as homework assignments 1 through 3.
	Except for:
	
	LP formulations discussed in the book. (We will not ask you to formulate LP problems, for instance.)
	Chapter 6.1.3 (automata). 
	Chapter 6.2.3 (computing equilibria in stochastic games).
	Chapter 7.5, 7.6, and 7.7. 
	
	
	 Open book policy: Open-book and open-note (including your laptops and tablet devices that may have your notes and/or e-book). Lecture slides and notes (from other schools) that you found online can be used as well. However, please do NOT access the Internet during the midterm (including, but not limited to, chatting on-line, searching on-line, etc.). That will be a violation of the honor code. 
	 Use of software: You are NOT allowed to use software or solvers (such as Matlab, Mathematica, CVX, etc.) other than basic calculators and e-book reader.  
	 Practice miderm 
	
	 Midterm 1 [ Solutions ] (Spring 2012)
	 Midterm 2 [ Solutions ] (Spring 2013)
	 Practice midterm [ Solutions ] (Used in recitation, Spring 2013) -- this practice midterm re-uses many problems of midterm #1 above, so we advise you to focus on midterm #1 and #2 above.
	
 Final paper due dates
	Final paper topic proposal due by 4pm on 5/23 Fri (NO LATE SUBMISSION ALLOWED)
	Final paper topic approval due by 4pm on 5/30 Fri (NO LATE SUBMISSION ALLOWED)
	Final paper submission due by 4pm on 6/09 Mon (NO LATE SUBMISSION ALLOWED)
	 How to submit proposal: If you visit HERE (same link as the grading center), you should be able to see a link to the submission form. If not, email Haden.
	 NOTE: You MUST submit a hard copy of your final paper by 6/09 4pm. No electronic submission is allowed. 
	For more information, please refer to the forum post HERE.
 
Honor Code
We encourage students to form study groups and discuss the lecture videos (including in-video questions). We also encourage you to get together with friends to watch the videos together as a group. However, the answers that you submit for the problem sets and midterm should be your own work; students are encouraged to discuss concepts and problems, but are NOT allowed to share their answers to problem sets and midterm. We ask that you do not share your solutions to any of the problem sets and midterm with any other students. This includes any sort of sharing, whether face-to-face, by email, uploading onto public sites, etc. Doing so will drastically detract from the learning experience of your fellow students, and any attempt to do so will be considered a clear honor code violation.
 Lecture Schedules and Weekly Contents (subject to change)
  
  
  Dates 
  Content (subject to change) 
	 Released 
  Due Dates 
 
 
    3/31 (Mon)   
    Week 1: Introduction and Normal Form Games  
  Normal Form Definitions, Dominant Strategies, Pareto Optimality, Mixed Strategies, and Nash Equilibrium 
	  Videos:  All videos under Week 1 on edX. (~94 minutes)
	  Readings:  Ch 3.1-3.3 (3.3.4 is optional.) 
   HW 1 
  
 
 
    4/7 (Mon)   
    Week 2: Solution Concepts and Computation in Game Theory 
  Maxmin Strategy, Minimax Regret, Iterative Removal of Dominated Strategies, Computing Nash Equilibrium, Complexity of Nash Equilibrium, and Compact Representation
	  Videos:  All videos under Week 2 on edX (there are two 'optional' vidoes). (~70 minutes excluding optional vidoes)
	  Readings:  Ch 3.4, Ch 4.1 and Ch 4.2.1. (Rest of Ch 4 is optional.) 
   
	 
 
 
    4/14 (Mon)   
    Week 3: Extensive Form Games 
  Extensive Form Definitions, Centipede Game, Backward Inductions, Imperfect Information, and Subgame Perfect Equilibrium 
	  Videos:  All videos under Week 3 on edX. (~99 minutes)
	  Readings:  Ch 5 (5.2.3 and 5.2.4 are optional).
	NOTE: Sequence form and sequential equilibrium will be good to know, but will not appear in the homework or exam. Ch 6.5 is optional (but we recommend you read it as it contains intereting examples).
	
	  HW 2 
  Homework 1 due  (Apr 15)
 
 
    4/21 (Mon)   
    Week 4: Repeated Games 
  Finitely Repeated Games, Infinitely Repeated Games, Stochastic Games, Learning in Repeated Games, Folk Theorems 
	  Videos:  All videos under Week 4 on edX. (~84 minutes)
	  Readings:  Ch 6.1-6.2; Also Ch 7.2 (Fictitious play). 
	  
  
 
 
    4/28 (Mon)   
    Week 5: Coalitional Games and Bayesian Games  
 Coalitional Game Theory, Shapley Value, Core, and Bayesian Games 
	  Videos:  All videos under Week 5 on edX. (~93 minutes)
	  Readings:  Ch 12.1-2, Ch 6.3 
	  HW 3
  Homework 2 due  (Apr 29)
 
 
    5/5 (Mon)   
    Week 6: Multi-Agent Learning  (and Congestion Games) 
  Rational Learning, Reinforcement Learning, Replicator Dynamics and Evolutionarily Stable Strategies, and Congestion Games 
	  Videos:  No videos. (In Week 4, you watched "Learning in Repeated Games" that covers Fictitious play in Ch 7.2 of the book.) 
	  Readings:  Ch 7, Ch 6.4  
   
	 
 
 
    5/12 (Mon)   
    Week 7: Social Choice  
  Social Choice, Computational Social Choice and Voting Manipulation 
	  Videos:  All videos under Week 7 on edX. (~77 minutes)
	  Readings:  Ch 9 (Ch 9.5 is optional)
	  HW 4
  Homework 3 due  (May 13)
 
 
    5/19 (Mon)   In-class: MIDTERM  
    MIDTERM  
   Week 8: Mechanism Design  
  Intro to Mechanism Design, Implementation, Revelation Principle, Quasilinear Preferences, and Mechanism Design as an Optimization Problem
	  Videos:  All videos under Week 8 on edX. (~69 minutes)
	  Readings:  Ch 10.1-10.3 
	  
  Final Paper Proposal due (May 23)
 
 
    5/26 (Mon)   No classes, Memorial day  
 
	   Week 9 : The VCG Mechanisms  
  Groves Mechanisms, VCG Mechanisms, and more 
	  Videos:  All videos under Week 9 on edX. (~81 minutes)
	  Readings:  Ch 10.4 (Ch 10.4.7 is optional.) (optional: 10.5-10.7) 
	  
  Homework 4 due  (May 27) Final Paper Approval due (May 30)
 
 
    6/2 (Mon)   
    Week 10: Auctions  
  First Price Auctions, Auction Formats, Beyond Single Unit Auctions, Bidding Languages, and the Winner Determination Problem 
	  Videos:  All videos under Week 10 on edX. (~110 minutes)
	  Readings:  Ch 11.1-11.2 (optional: 11.3-11.4) 
	
	 
  
 
 
    6/9 (Mon)   
    Finals week  
 	Final Paper due by 4pm June 9.
Syllabus
http://web.stanford.edu/class/cs224m/
http://scottkom.com/courses/Market-Design_2018-2019/
Scott Duke Kominers
2018-08-29
None
<div><div>
<p><hr /><h3>Market Design</h3>
<hr /></p>
<div>
<p><b>Economics 2099 -- Harvard University -- Fall 2018</b> 
<br />
</p><p><b>Description:</b>
	</p><blockquote>
This course explores the theory and practice of market design. Key topics include auctions, labor market matching, school choice programs, online markets, organ exchange systems, financial market design, and matching with contracts. The first half of the course will introduce market design and its technology; subsequent weeks will discuss recent papers alongside their classical antecedents.
</blockquote>
<p><b>Information on Logistics, Requirements, and Readings:</b>
	</p><blockquote>
	See the <a href="Economics_2099_syllabus_2018-2019.pdf">course syllabus</a> (posted August 29, 2018). 
	</blockquote>
<p><b>Enrollment Application:</b>
	</p><blockquote>
	<a href="https://tinyurl.com/2099app/">https://tinyurl.com/2099app/</a>.
	</blockquote>
<p><b>Assignment Deadlines:</b>
	</p><blockquote>
	A short proposal summary/plan will be due on October 17, 2018.
	The final proposal will be due on December 10, 2018 (the last day of Reading Period).
	</blockquote>
<p><b>Schedule:</b>
	</p><blockquote>
	<table>
<tbody><tr><td><b>Date</b></td><td><b>Topic</b></td><td><b>Guest(s)</b>
</td></tr><tr><td>September 4, 2018</td><td>Introduction/Overview</td><td>
</td></tr><tr><td>September 11, 2018</td><td>The Market Designer's Toolbox</td><td>
</td></tr><tr><td>September 18, 2018</td><td>Food Supply, Scrip Systems, and<br />Pseudo-Markets</td><td>Erica Moszkowski
</td></tr><tr><td>September 25, 2018</td><td>School Choice</td><td>
</td></tr><tr><td>October 2, 2018</td><td>Generalized Matching</td><td>Ravi Jagadeesan
</td></tr><tr><td>October 9, 2018</td><td>Markets for Intellectual Property</td><td>
</td></tr><tr><td>October 16, 2018</td><td>Auction Theory</td><td>Shengwu Li
</td></tr><tr><td>October 23, 2018</td><td>The US Spectrum Incentive Auction </td><td>
</td></tr><tr><td>October 30, 2018</td><td>Organ Allocation</td><td>
</td></tr><tr><td>November 6, 2018</td><td>Finance, Cryptocurrency, and<br />Blockchain</td><td>
</td></tr><tr><td>November 13, 2018</td><td>Inequality and Urban Issues</td><td>Edward L. Glaeser
</td></tr><tr><td>November 20, 2018</td><td>New Horizons</td><td>Zoë Cullen, Andrey Fradkin<br />David Parkes, Utku Ünver, <br />Kate Vredenburgh
</td></tr><tr><td>November 27, 2018</td><td>Refugees, Immigration, and<br />Economic Development</td><td>Benjamin Roth
</td></tr><tr><td>December 4, 2018</td><td>Student Talks/Course Wrap</td><td>
	</td></tr></tbody></table>
	</blockquote>
<p><b>Internal Harvard Website:</b>
	</p><blockquote>
	<a href="https://canvas.harvard.edu/courses/43959/">https://canvas.harvard.edu/courses/43959/</a>. 
	</blockquote>
<p><b>Office Hours Calendar:</b>
	</p><blockquote>
	<a href="https://2099-officehours.youcanbook.me/">https://2099-officehours.youcanbook.me/</a>.
	</blockquote>
</div>
</div>||||I|||| Scott Duke Kominers

 [ Main | Research | Publications | Talks | Press | Teaching | QED ]
 [ Courses | Students ]

 Market Design

 Economics 2099 -- Harvard University -- Fall 2018

 Description:

 This course explores the theory and practice of market design. Key topics include auctions, labor market matching, school choice programs, online markets, organ exchange systems, financial market design, and matching with contracts. The first half of the course will introduce market design and its technology; subsequent weeks will discuss recent papers alongside their classical antecedents.

 Information on Logistics, Requirements, and Readings:

 See the course syllabus (posted August 29, 2018).

 Enrollment Application:

 https://tinyurl.com/2099app/.

 Assignment Deadlines:

 A short proposal summary/plan will be due on October 17, 2018. The final proposal will be due on December 10, 2018 (the last day of Reading Period).

 Schedule:

 Date Topic Guest(s) 
 September 4, 2018 Introduction/Overview 
 September 11, 2018 The Market Designer's Toolbox 
 September 18, 2018 Food Supply, Scrip Systems, and Erica Moszkowski 
 Pseudo-Markets 
 September 25, 2018 School Choice 
 October 2, 2018 Generalized Matching Ravi Jagadeesan 
 October 9, 2018 Markets for Intellectual Property 
 October 16, 2018 Auction Theory Shengwu Li 
 October 23, 2018 The US Spectrum Incentive Auction 
 October 30, 2018 Organ Allocation 
 November 6, 2018 Finance, Cryptocurrency, and 
 Blockchain 
 November 13, 2018 Inequality and Urban Issues Edward L. Glaeser 
 November 20, 2018 New Horizons Zoë Cullen, Andrey Fradkin
 David Parkes, Utku Ünver, 
 Kate Vredenburgh 
 November 27, 2018 Refugees, Immigration, and Benjamin Roth 
 Economic Development 
 December 4, 2018 Student Talks/Course Wrap 
 

 Internal Harvard Website:

 https://canvas.harvard.edu/courses/43959/.

 Office Hours Calendar:

 https://2099-officehours.youcanbook.me/.
Market Design
 
 Economics 2099 -- Harvard University -- Fall 2018 
  Description:
	 
This course explores the theory and practice of market design. Key topics include auctions, labor market matching, school choice programs, online markets, organ exchange systems, financial market design, and matching with contracts. The first half of the course will introduce market design and its technology; subsequent weeks will discuss recent papers alongside their classical antecedents.
 Information on Logistics, Requirements, and Readings:
	 
	See the course syllabus (posted August 29, 2018). 
	
 Enrollment Application:
	 
	https://tinyurl.com/2099app/.
	
 Assignment Deadlines:
	 
	A short proposal summary/plan will be due on October 17, 2018.
	The final proposal will be due on December 10, 2018 (the last day of Reading Period).
	
 Schedule:
	 
	
   Date   Topic   Guest(s)
   September 4, 2018 Introduction/Overview 
   September 11, 2018 The Market Designer's Toolbox 
   September 18, 2018 Food Supply, Scrip Systems, andPseudo-Markets Erica Moszkowski
   September 25, 2018 School Choice 
   October 2, 2018 Generalized Matching Ravi Jagadeesan
   October 9, 2018 Markets for Intellectual Property 
   October 16, 2018 Auction Theory Shengwu Li
   October 23, 2018 The US Spectrum Incentive Auction  
   October 30, 2018 Organ Allocation 
   November 6, 2018 Finance, Cryptocurrency, andBlockchain 
   November 13, 2018 Inequality and Urban Issues Edward L. Glaeser
   November 20, 2018 New Horizons Zoë Cullen, Andrey FradkinDavid Parkes, Utku Ünver, Kate Vredenburgh
   November 27, 2018 Refugees, Immigration, andEconomic Development Benjamin Roth
   December 4, 2018 Student Talks/Course Wrap 
	   
	
 Internal Harvard Website:
	 
	https://canvas.harvard.edu/courses/43959/. 
	
 Office Hours Calendar:
	 
	https://2099-officehours.youcanbook.me/.
Scott Duke Kominers
http://scottkom.com/courses/Market-Design_2018-2019/
https://engineering.purdue.edu/OOSD/F2008/F2008.html
ECE 462 Fall 2008
2008-09-03
None
<div><div>
 <tbody><tr>
 <td>
 
 
 
 <h2>ECE 462 Object-Oriented Programming using C++ and Java</h2>
<p>If you are taking this class, please enter <a href="http://www.itap.purdue.edu/tlt/blackboard/">Blackboard</a> to submit your assignments, check your grades, and join the discussion. </p>
<p>[<a href="#outcome">outcomes</a> | <a href="#tools">tools</a> | <a href="#handout">lectures</a> | <a href="#assignment">assignments</a> | <a href="#exercise">lab exercises</a> | <a href="#exams">exams</a> | <a href="#textbook">textbook</a> | <a href="#kiwi">Rhea</a> | <a href="#optional">optional readings</a> | <a href="#change">changes in 2008</a> | <a href="#evaluation">students' comments</a> ]</p>
<h3><a href="https://engineering.purdue.edu/OOSD/F2008/feedback">Your Feedback</a></h3>
<h3><a href="https://engineering.purdue.edu/oosdflsh/F2008/demo/demo.html">Project Demonstration</a></h3>
<h3>Course Outcomes:<a></a></h3>
<p>A student who successfully fulfills the course requirements will have demonstrated:</p>
<ol>
 <li>an ability to write object-oriented programs of moderate complexity in Java. [3,4;e]</li>
 <li>an ability to write object-oriented programs of moderate complexity in C++. [3,4;e]</li>
 <li>an understanding of the concepts of inheritance and polymorphism. [3,4;k]</li>
 <li>an ability to use template classes and the STL library in C++ and Java. [3,4;k]</li>
 <li>an ability to overload operators in C++. [4;c,e,k]</li>
 <li>an ability to incorporate exception handling in object-oriented programs. [3,4;k]</li>
 <li>an understanding of the difference between function overloading and function overriding. [3,4;k]</li>
 <li>an ability to write programs with multiple threads and use synchronization among threads. [3,4,k]</li>
</ol>
<h3>Suggestions to Students:</h3>
<p>Learning by watching on-line videos (also called "asynchronous learning") has unique challenges. The lectures may move faster than your own pace, because you cannot stop the instructor and ask questions. Meanwhile, there are many advantages, for example, you can pause or review. Here are some suggestions to learn more effectively.</p>
<ol>
 <li>Scan the slides before<i> </i>watching a video.</li>
 <li>Have the slides and code in front of you while watching the video.</li>
 <li>Pause when necessary.</li>
 <li>Keep the schedule. Do not procrastinate.</li>
</ol>
<h3><b>Tools:<a></a></b><a href="http://www.netbeans.org/"></a> <a href="http://www.eclipse.org/"></a>  <a href="http://trolltech.com/products/qt"></a> <a href="http://java.sun.com/products/java-media/3D/"></a> <a href="http://www.gnu.org/software/ddd/"></a></h3>
<h3>Lectures:<a></a></h3>
<p>LE = lab exercise, PA = programming assignment</p>
<p>The instructor is available in MSEE 190 software laboratory during the lecture hours, three times a week. Student can use the lecture hours for programming assignments, lab exercises, discussion, or asking questions. Additional office hours can be arranged by email. There are three lecture hours per week. Two are used for video instructions and one is used for lab exercises. The experiment conducted in 2007 indicated that this approach did not reduce the coverage of the course materials. If fact, due to the personalized help, students learned more and faster.</p>
<p>The slides contain bookmarks. To show the bookmarks, in Adobe Reader, select  "View", "Navigation Tabs", and "Bookmarks'.  The slides are mostly screenshots of the videos. It is recommended that you read the slides before printing. Many slides are used to explain how to set up your programming environment. They are not needed once you have finished the setup. If you do want to print, please print 4 slides on the same page to save paper.</p>
<p>The source code used in each lecture is available separately. You are encouraged to print and study the source code.</p>
<p>There are practice questions at the end of each video clip.</p>
<h3><a href="./errata.html">Errata</a></h3>
<table>
 <tbody>
 <tr>
 <td>Week</td>
 <td>Date</td>
 <td><b>Due Date*</b></td>
 <td>Slides</td>
 <td>Reading</td>
 <td>Code</td>
 <td>
 <p>Video</p>
 </td>
 </tr>
 <tr>
 <td>1</td>
 <td>08/25</td>
 <td> -</td>
 <td><a href="./lecture/0825Slides.pdf">Slides </a></td>
 <td>1</td>
 <td>-</td>
 <td>Introduction</td>
 </tr>
 <tr>
 <td>08/27</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0827Slides.pdf">Slides</a></td>
 <td>2-3.3</td>
 <td>
 <p><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0827Code.zip">Code</a></p>
 </td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week01/0102ObjectClass/0102ObjectClass.html">Object and Class</a> (5:43)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week01/0103InheritancePolymorphism/0103InheritancePolymorphism.html"> Inheritance and Polymorphism</a> (10:45)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week01/0104Development/0104Development.html"> Development Environment</a> (17:32)</p>
 <p><a href="#exercise">Lab Exercise 1</a> (14:02)</p>
 </td>
 </tr>
 <tr>
 <td>08/29</td>
 <td>-</td>
 <td>3.4-3.9</td>
 <td> Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td>2</td>
 <td>09/01</td>
 <td>no class</td>
 </tr>
 <tr>
 <td>09/03</td>
 <td>LE 01</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0901Slides.pdf">Slides</a></td>
 <td>3.10-3.12</td>
 <td>
 <p><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0901Code.zip">Code</a></p>
 </td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week01/0105Structure/0105Structure.html">Program Structure</a> (14:09)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week01/0106ClassExample/0106ClassExample.html">Class Examples</a> (4:32)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week01/0107Encapsulation/0107Encapsulation.html">Encapsulation and Polymorphism</a> (16:12)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week01/0108Constructor/0108Constructor.html">Constructor and Destructor</a> (17:34)</p>
 </td>
 </tr>
 <tr>
 <td>09/05</td>
 <td>-</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0903Slides.pdf">Slides</a></td>
 <td>3.13-3.16</td>
 <td>
 <p><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0903Code.zip">Code</a></p>
 <a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0903Code.zip"><br />
 </a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0201VersionControl/0201VersionControl.html">Version Control</a> (8:28)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0202Instantiation/0202Instantiation.html">Instantiation</a> (17:31)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0203Submission/0203Submission.html">Submission Procedure</a> (8:23)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0204Inheritance/0204Inheritance.html">Inheritance</a> (6:52)</p>
 <p><a href="#exercise">Lab Exercise 2</a> (8:59)</p>
 </td>
 </tr>
 <tr>
 <td>3</td>
 <td>09/08</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0908Slides.pdf">Slides</a></td>
 <td>17.8-17.12</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0908Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0205UserInterface/0205UserInterface.html">User Interface</a> (14:22)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0206QtSignalSlot/0206QtSignalSlot.html">Qt Signals and Slots</a> (17:45)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0207JavaEvents/0207JavaEvents.html">Java Events and Handler</a> (9:47)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week02/0208Array/0208Array.html">Array</a> (11:27)</p>
 </td>
 </tr>
 <tr>
 <td>09/10</td>
 <td>LE02</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0910Slides.pdf">Slides</a></td>
 <td>5-5.2</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0910Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week03/0301Container/0301Container.html">Container</a> (21:57)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week03/0302Collision/0302Collision.html">Collision Detection</a> (16:57)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week03/0303NewContainer/0303NewContainer.html">New Container in C++</a> (12:24)</p>
 </td>
 </tr>
 <tr>
 <td>09/12</td>
 <td>-     </td>
 <td>17.13-17.17</td>
 <td> Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td>4</td>
 <td>09/15</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0915Slides.pdf">Slides</a></td>
 <td>6-6.9</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0915Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week03/0304File/0304File.html">Open and Save File</a> (21:36)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week03/0305Definition/0305Definition.html">Definition, Declaration, and Initialization</a> (17:23)</p>
 <p><a href="#exercise">Lab Exercise 3</a> (15:57)</p>
 </td>
 </tr>
 <tr>
 <td>09/17</td>
 <td>LE03</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0917Slides.pdf">Slides</a></td>
 <td>7-8.5</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0917Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week04/0401Reference/0401Reference.html">Reference</a> (4:38)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week04/0402ParameterPassing/0402ParameterPassing.html">Parameter Passing</a> (8:23)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week04/0403CopyConstructor/0403CopyConstructor.html">Copy Constructor</a> (14:41)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week04/0404ParameterPassing2/0404ParameterPassing2.html">Parameter Passing 2</a> (6:00)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week04/0405OverloadResolution/0405OverloadResolution.html">Overload Resolution</a> (15:01)</p>
 </td>
 </tr>
 <tr>
 <td>09/19</td>
 <td>PA1 Java Breakout</td>
 <td>-     </td>
 <td>9-9.13</td>
 <td> Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td> 5</td>
 <td>09/22</td>
 <td>review at ARMS 1109 (bring your questions, no lecture)</td>
 </tr>
 <tr>
 <td>09/24</td>
 <td><b>Exam 1</b>  (outcomes 3,4)</td>
 </tr>
 <tr>
 <td>09/26</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0922Slides.pdf">Slides</a></td>
 <td>12-12.11</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0922Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week05/0501OperatorOverload/0501OperatorOverload.html">Operator Overloading</a> (24:10)</p>
 <a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week05/0502SmallInt/0502SmallInt.html">Small Int and Conversion</a> (24:30)</td>
 </tr>
 <tr>
 <td> 6</td>
 <td>09/29</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0929Slides.pdf">Slides</a></td>
 <td>10-10.7</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/0929Code.zip">Code</a></td>
 <td>
 <p><a href="#exercise">Lab Exercise 4</a> (1:24)</p>
 <p><a href="#assignment">Programming Assignment 03</a> (4:47)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week06/0601CppException/0601CppException.html">Exception Handling in C++</a> (16:22)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week06/0602JavaException/0602JavaException.html">Exception Handling in Java</a> (10:18)</p>
 <a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week06/0603CppStaticMember/0603CppStaticMember.html">Static Member in C++</a> (9:10)</td>
 </tr>
 <tr>
 <td>10/01</td>
 <td>LE04</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1001Slides.pdf">Slides</a></td>
 <td> 11-11.14</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1001Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week06/0604JavaStaticMember/0604JavaStaticMember.html">Static Member in Java</a> (9:28)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week06/0605Game/0605Game.html">Game Programming</a> (6:28)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week06/0606FullScreenGame/0606FullScreenGame.html">Full Screen Game</a> (28:18)</p>
 <p><a href="#exercise">Lab Exercise 5</a> (7:38)</p>
 </td>
 </tr>
 <tr>
 <td>10/03</td>
 <td>Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td> 7</td>
 <td>10/06</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1006Slides.pdf">Slides</a></td>
 <td> 14-14.6</td>
 <td> -</td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week07/0701DoubleBuffering/0701DoubleBuffering.html">Double Buffering</a> (20:46)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week07/0702Sprite/0702Sprite.html">Sprite</a> (4:13)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week07/0703UML/0703UML.html">Unified Modeling Language (UML)</a> (22:19)</p>
 </td>
 </tr>
 <tr>
 <td>10/08</td>
 <td>LE05</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1008Slides.pdf">Slides</a></td>
 <td> 15-15.18</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1008Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week07/0704Inheritance/0704Inheritance.html">Inheritance</a> (21:51)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week07/0705Virtual/0705Virtual.html">Virtual Function</a> (11:32)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week07/0706PrivateInheritance/0706PrivateInheritance.html">Private Inheritance</a> (9:16)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week07/0707JavaFinal/0707JavaFinal.html">Java Final</a> (3:36)</p>
 <p><a href="#exercise">Lab Exercise 6</a> (5:34)</p>
 </td>
 </tr>
 <tr>
 <td>10/10</td>
 <td>PA2 C++ Breakout    </td>
 <td>Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td> 8</td>
 <td>10/13</td>
 <td>No Class</td>
 </tr>
 <tr>
 <td>10/15</td>
 <td>LE06</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1015Slides.pdf">Slides</a></td>
 <td> 16-16.7</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1015Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week08/0801JavaKeyInput/0801JavaKeyInput.html">Java Key Input</a> (15:09)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week08/0802JavaMouseInput/0802JavaMouseInput.html">Java Mouse Input</a> (6:59)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week08/0803MultipleInheritance/0803MultipleInheritance.html">Multiple Inheritance in C++</a> (17:40)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week08/0804QtLayout/0804QtLayout.html">Qt Layouts</a> (9:33)</p>
 </td>
 </tr>
 <tr>
 <td>10/17</td>
 <td>review at ARMS 1109 (bring your questions, no lecture)</td>
 </tr>
 <tr>
 <td> 9</td>
 <td>10/20</td>
 <td><b>Exam 2</b>  (outcomes 5,6)</td>
 </tr>
 <tr>
 <td>10/22</td>
 <td>-</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1020Slides.pdf">Slides</a></td>
 <td>-</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1020Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week09/0901Sound/0901Sound.html">Sound</a> (7:50)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week09/0902Profile/0902Profile.html">Performance Profiling</a> (17:40)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week09/0903CppProfile/0903CppProfile.html">C++ Profiling</a> (3:52)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week09/0904Performance/0904Performance.html">Performance Improvement</a> (18:04)</p>
 </td>
 </tr>
 <tr>
 <td>10/24</td>
 <td>Lab (MSEE 190) </td>
 </tr>
 <tr>
 <td> 10</td>
 <td>10/27</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1027Slides.pdf">Slides</a></td>
 <td> 18-18.3</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1027Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week10/1001Parallelism/1001Parallelism.html">Parallelism</a> (14:43)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week10/1002Thread/1002Thread.html">Thread</a> (21:17) <a href="http://www.ece.purdue.edu/~yunglu/videos/1002Thread.wmv">WMV format</a>  <a href="http://www.ece.purdue.edu/~yunglu/videos/1002Thread.rm">RM format</a></p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week10/1003Parallel/1003Parallel.html">Parallel Programs</a> (14:47)</p>
 </td>
 </tr>
 <tr>
 <td>10/29</td>
 <td>LE07</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1029Slides.pdf">Slides</a></td>
 <td> 18.4-18.11</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1029Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week10/1004Schedule/1004Schedule.html">Scheduling</a> (18:40) <a href="http://www.ece.purdue.edu/~yunglu/videos/1004Schedule.wmv">WMV format</a></p>
 <a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week10/1005Synchronization/1005Synchronization.html">Synchronization</a> (23:01)
 <p><a href="#exercise">Lab Exercise 9</a> (10:20)</p>
 </td>
 </tr>
 <tr>
 <td>10/31</td>
 <td>PA3 Java Tetrix  </td>
 <td>Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td> 11</td>
 <td>11/03</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1103Slides.pdf">Slides</a></td>
 <td>- </td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1103Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1101DesignParallel/1101DesignParallel.html">Design Parallel Programs</a> (19:31)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1102Deadlock/1102Deadlock.html"> Deadlock</a> (15:38)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1103ThreadPerformance/1103ThreadPerformance.html"> Thread Performance</a> (11:13)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1104TileGame/1104TileGame.html">Platform Game</a> (5:43)</p>
 </td>
 </tr>
 <tr>
 <td>11/05</td>
 <td>LE08</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1105Slides.pdf">Slides</a></td>
 <td>19-19.4 </td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1105Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1105DrawGame/1105DrawGame.html">Draw Game</a> (6:08)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1106NetworkClient/1106NetworkClient.html">Network Client</a> (17:32)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1107NetworkServer/1107NetworkServer.html"> Network Server</a> (20:38)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week11/1108Coverage/1108Coverage.html"> Test Coverage</a> (6:34)</p>
 </td>
 </tr>
 <tr>
 <td>11/07</td>
 <td>review at ARMS 1109 (bring your questions, no lecture)</td>
 </tr>
 <tr>
 <td> 12</td>
 <td>11/10</td>
 <td><b>Exam 3  </b>(outcomes 7,8)</td>
 </tr>
 <tr>
 <td>11/12</td>
 <td>LE09</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1110Slides.pdf">Slides</a></td>
 <td>-</td>
 <td>-</td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12011Test1/12011Test1.html"> Software Test I</a> (12:34)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12012Test2/12012Test2.html"> Software Test II</a> (13:06)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/1203CppTest/1203CppTest.html">Automatic Testing</a> (9:52)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12023DGraphics/12023DGraphics.html">3D Graphics</a> (12:05)</p>
 </td>
 </tr>
 <tr>
 <td>11/14</td>
 <td>PA4 C++ Pacman </td>
 <td>Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td> 13</td>
 <td>11/17</td>
 <td>-</td>
 <td>- </td>
 <td>-</td>
 <td>-</td>
 <td><a href="./lecture/1117discussion">Discussion "Education and Technology"</a></td>
 </tr>
 <tr>
 <td>11/19</td>
 <td>LE10</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1112Slides.pdf">Slides</a></td>
 <td>-</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1112Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12041NetworkGame/12041NetworkGame.html">Multi-Player Game using Network</a> (16:01)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12043Client/12043Client.html">Game Client</a> (15:26)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12044Server/12044Server.html">Game Server</a> (8:10)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12045Improvement/12045Improvement.html">Improvement</a> (5:10)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12051RMI/12051RMI.html">Java Remote Method Invocation</a> (7:41)</p>
 </td>
 </tr>
 <tr>
 <td>11/21</td>
 <td>Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td> 14</td>
 <td>11/24</td>
 <td> -</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1124Slides.pdf">Slides</a></td>
 <td>-</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1124Code.zip">Code</a></td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week14/1401CppHistory/1401CppHistory.html">Brief History of C++</a> (20:15)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week14/1401JavaHistory/1401JavaHistory.html">Brief History of Java</a> (10:11)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week12/12052RMI2/12052RMI2.html">RMI Example</a> (9:19)</p>
 <a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week14/1403RayTracing/1403RayTracing.html">Ray Tracing</a> (10:19)</td>
 </tr>
 <tr>
 <td>11/26</td>
 <td>No Class</td>
 </tr>
 <tr>
 <td>11/28</td>
 <td>No Class</td>
 </tr>
 <tr>
 <td> 15</td>
 <td>12/01</td>
 <td>review at ARMS 1109 (bring your questions, no lecture)</td>
 </tr>
 <tr>
 <td>12/03</td>
 <td><b>Exam 4<br />
 </b></td>
 </tr>
 <tr>
 <td>12/05</td>
 <td>PA5  </td>
 <td>Lab (MSEE 190)</td>
 </tr>
 <tr>
 <td> 16</td>
 <td>12/08</td>
 <td>-</td>
 <td><a href="https://engineering.purdue.edu/OOSD/F2008/lecture/1208Slides.pdf">Slides</a></td>
 <td>-</td>
 <td>-</td>
 <td>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week15/1501ReuseThread/1501ReuseThread.html">Reuse Threads</a> (12:23)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week15/1502RayTracer/1502RayTracer.html">Ray Tracer</a> (8:43)</p>
 <p><a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/week15/1503ThreadProblem/1503ThreadProblem.html">Problem with Threads</a> (6:15)</p>
 </td>
 </tr>
 <tr>
 <td>12/10</td>
 <td>game demonstration at MSEE 190    </td>
 </tr>
 <tr>
 <td>12/12</td>
 <td>review at ARMS 1109 (bring your questions, no lecture)</td>
 </tr>
 <tr>
 <td>17</td>
 <td>12/18</td>
 <td><b>Final Exam </b>8-10AM, <b>Physics 116 and 117</b></td>
 </tr>
 </tbody>
</table>
<p>* All due dates are suggested deadlines. The flexibility is provided to accommodate your schedule (such as interviews or conferences) and unexpected situations (such as illness or accidents). The deadline for all assignments and lab exercises is 6PM December 5 Friday. A grace period of 6 hours is given to all students. You can submit and resubmit assignments or lab exercises during this grace period without any penalty. All assignments and lab exercises <b>must be submitted before 11:59PM December 5</b>. This is the  absolute deadline. After 11:59PM December 5, 10% is taken every hour (round up) from your grade. Nothing will be accepted after 10AM December 6.</p>
<p>Please remember that you are <b>not allowed to request regrading</b> if you submit a lab exercise or a programming assignment after the suggested deadline.</p>
<h3>Programming Assignments and Due Dates:<a></a></h3>
<p><a href="./assignment/submission.html"><b>Submission Procedure and Rules</b></a></p>
<p><a href="./assignment/team.html"><b>Rules on Collaboration</b></a></p>
<ol>
 <li>2008/09/19, <a href="./assignment/assignment1.html">Two-player Breakout game using Java</a> (outcome 1)</li>
 <li>2008/10/10, <a href="./assignment/assignment2.html">Two-player Breakout game using C++</a> and <a href="http://doc.trolltech.com/4.3/index.html">Qt</a> (outcome 2)</li>
 <li>2008/10/31, <a href="./assignment/assignment3.html">Tetrix game using Java</a> (modified from C++ and <a href="http://doc.trolltech.com/4.3/script-tetrix.html">Qt Tetrix game</a>), <a href="https://engineering.purdue.edu/OOSD/F2008/assignment/PA3Slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/lecture/PA3/PA3.html">video</a> (4:47) (outcome 1)</li>
 <li>2008/11/14, <a href="./assignment/assignment4.html">Pacman game using C++ and Qt</a> (improve a simplified<a href="https://engineering.purdue.edu/OOSD/F2008/assignment/PA4.zip"> Java example</a>) (outcome 2)</li>
 <li>2008/12/05, <a href="./assignment/assignment5.html">Interactive 2-player network game using Java or C++</a> (design your own own game)</li>
</ol>
<p>A student can do each assignment alone or work with another (and only one) student that is also taking the class. A student can have different teammates for different assignments. If two students work together, <b>both</b> students have to submit the assignment. Outcome 1 can be passed by assignment 1 or 3. Outcome 2 can be passed by assignment 2 or 4.</p>
<h3>Laboratory Exercises and Due Dates:<a></a></h3>
<p>Every student must submit the lab exercises independently. Collaboration is not allowed.</p>
<ol>
 <li>2008/09/03, (Java) <a href="http://www.netbeans.org/">Netbeans</a> programming interface, version control, drawing and handling events. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab01slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/labexercise/lab01/flash01.html">video</a> (14:02), <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab01code.java">code</a>.</li>
 <li>2008/09/10, (Java) Tracking mouse movement and bouncing ball. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab02slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/labexercise/lab02/flash02.html">video</a> (8:59), <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab02code.java">code</a>.</li>
 <li>2008/09/17, (C++) <a href="http://doc.trolltech.com/4.3/index.html">Qt</a> graphical user interface: drawing and handling events. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab03slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/labexercise/lab03/flash03.html">video</a> (15:57), <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab03code.zip">code</a>.</li>
 <li>2008/10/01, (Java) Unified Modeling Language using Netbeans. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab04slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/labexercise/lab04/flash04.html">video</a> (1:24).</li>
 <li>2008/10/08, (Java and C++) Container classes' performance. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab05slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/labexercise/lab05/flash05.html">video</a> (7:38), <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab05code.zip">code</a>.</li>
 <li>2008/10/15, (Java) Applet. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/NewJApplet.html">applet</a>, <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab06slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/labexercise/lab06/flash06.html">video</a> (5:34), <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab06code.java">code</a>.</li>
 <li>2008/10/29, (Java and C++) Multithread, convert C++ to Java. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab07code.cpp">lab07.cpp</a>.</li>
 <li>2008/11/05, (Java and C++) Multithread, convert Java to C++. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab08code.java">lab08.java</a>.</li>
 <li>2008/11/12, (Java and C++) Networking. <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab09slides.pdf">slides</a>, <a href="https://engineering.purdue.edu/oosdflsh/F2008/labexercise/lab09/flash09.html">video</a> (10:20), <a href="https://engineering.purdue.edu/OOSD/F2008/labexercise/lab09code.zip">code</a>.</li>
 <li>2008/11/19, (Java or C++) <a href="./labexercise/lab10.html">Profile and Coverage</a>.</li>
</ol>
<h3>Exam Dates:<a></a></h3>
<ol>
 <li>2008/09/24, <a href="./exams/exam1.pdf">Exam 1</a></li>
 <li>2008/10/20, <a href="./exams/exam2.pdf">Exam 2</a></li>
 <li>2008/11/10, <a href="./exams/exam3.pdf">Exam 3</a></li>
 <li>2008/12/03, <a href="./exams/exam4.pdf">Exam 4</a></li>
 <li>2008/12/18, 8-10AM, <b>Physics 116 and 117</b>, <a href="./exams/final.pdf">Final Exam</a></li>
</ol>
<p>All exams are open-book and open-note. Please bring your Purdue ID. No electronic device (including calculators) is allowed. Exams from <a href="http://engineering.purdue.edu/OOSD/F2007/F2007.html#exams">2007</a>.</p>
<h3><b>Textbook:</b>  <a></a> <a href="http://programming-with-objects.com/">Programming with Objects</a> <a href="http://programming-with-objects.com/"></a></h3>
<h3>References:</h3>
<p><a href="http://www.brackeen.com/javagamebook/">Developing Games in Java</a><a href="http://www.aristeia.com/books_frames.html">  Effective C++</a> <a href="http://www.aristeia.com/books_frames.html"> </a></p>
<h3>Rhea Project<a></a></h3>
<p><a href="http://kiwi.ecn.purdue.edu/">Purdue ECE Rhea Project</a>: multidimensional, multimedia, self-adaptive, collective learning tool.</p>
<h3>Optional Readings<a></a></h3>
<p> These readings are optional. They will not appear in any exam. You can download the PDF files from any Purdue computer.</p>
<ol>
 <li><a href="http://portal.acm.org/citation.cfm?id=155360.155375&amp;coll=Portal&amp;dl=GUIDE&amp;CFID=35899546&amp;CFTOKEN=97534112">A History of C++ 1979-1991</a></li>
 <li><a href="http://portal.acm.org/citation.cfm?id=1238844.1238848&amp;coll=Portal&amp;dl=GUIDE&amp;CFID=36005233&amp;CFTOKEN=87647903">Evolving a Language In and For the Real World: C++ 1991-2006</a></li>
 <li><a href="http://ieeexplore.ieee.org/search/srchabstract.jsp?arnumber=1631937&amp;isnumber=34216&amp;punumber=2&amp;k2dockey=1631937@ieeejrns&amp;query=(+((problem)%3Cin%3Emetadata+)+%3Cand%3E+((thread)%3Cin%3Emetadata+)+)%3Cand%3E+((lee)%3Cin%3Eau+)&amp;pos=1&amp;access=no">Problems with Threads</a></li>
 <li><a href="http://portal.acm.org/citation.cfm?id=251595.251598&amp;coll=Portal&amp;dl=GUIDE&amp;CFID=35899546&amp;CFTOKEN=97534112">Programming Languages: Past, Present, and Future</a></li>
 <li><a href="http://portal.acm.org/citation.cfm?id=357401.357402&amp;coll=Portal&amp;dl=GUIDE&amp;CFID=36005233&amp;CFTOKEN=87647903">End-to-End Arguments in System Design</a></li>
 <li><a href="http://ieeexplore.ieee.org/search/srchabstract.jsp?arnumber=1237172&amp;isnumber=27736&amp;punumber=32&amp;k2dockey=1237172@ieeejrns&amp;query=%28+%28%28redundancy%29%3Cin%3Emetadata+%29+%3Cand%3E+%28%28engler%29%3Cin%3Emetadata+%29+%29&amp;pos=0&amp;access=no">Using Redundancy to Find Errors</a></li>
 <li><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=6812&amp;arnumber=274940&amp;count=6&amp;index=1">An investigation of the Therac-25 Accidents</a></li>
 <li><a href="http://ieeexplore.ieee.org/search/srchabstract.jsp?arnumber=1261363&amp;isnumber=28193&amp;punumber=17&amp;k2dockey=1261363@ieeejrns&amp;query=%28%28+%28%28education%29%3Cin%3Emetadata+%29+%3Cand%3E+%28%28technology%29%3Cin%3Emetadata+%29+%29%29+%3Cand%3E+%28pyr+%3E%3D+2000+%3Cand%3E+pyr+%3C%3D+2008%29&amp;pos=9&amp;access=no">Innovation and Education in the Digital Age: Reconciling the Roles of Pedagogy, Technology, and the Business of Learning</a></li>
</ol>
<h3>Changes in 2008<a></a> </h3>
<ol>
 <li>The lectures, assignments, and lab exercises will be recorded in separate videos.</li>
 <li>On-line homework will be eliminated. The questions will be embedded in the lectures as self tests.</li>
 <li>The lab exercises will be more closely integrated with the programming assignments.</li>
</ol>
<p>Bacause of the postive responses from the students in Fall 2007, ECE 462 will continue the format using on-line lectures. The instructor will be available in the laboratory working with students during the lecture hours. All programming assignments will be developing computer games.</p>
<h3>Student Comments<a></a></h3>
<p>These are some comments from students' evaluations after taking ECE 462 in Fall 2008.</p>
<ul>
 <li>"I enjoyed this course."</li>
 <li>"The game projects are incredibly refreshing..."</li>
 <li>"This course was a definite benefit. I think that all CompE students should take it... The course's structure is great."</li>
 <li>"Great course and a must for anybody looking to go into software after they graduate."</li>
 <li>"Course is fantastic! I feel this is a really important course before entering the CompE working world."</li>
 <li>"He did a very good job teaching this course."</li>
 <li>"Professor Lu is great--very knowledgeable as well as approachable."</li>
 <li>"Professor Lu does a great job and is very helpful..."</li>
 <li>"Thumbs up."</li>
 <li>"Very helpful, really wants to and does help students who seek it."</li>
 <li>"Professor Lu is very helpful and dedicated."</li>
 <li>"Great teacher, tries really hard to help students, very helpful."</li>
 <li>"The professor is very enthusiastic and extremely diligent in helping his students succeed. Very pleased. I got my education worth from this course."</li>
</ul>
<p><a href="https://engineering.purdue.edu/OOSD">Back to OOSD</a></p>
 
 </td>
 </tr>
 </tbody></div>||||I|||| Home
 Netbeans Eclipse Qt Java
 Games
 College of Engineering Aeronautics and Astronautics Agricultural and Biological Engineering Biomedical Engineering Chemical Engineering Civil Engineering Construction Engineering and Management Electrical and Computer Engineering Engineering Education Engineering Professional Education Environmental and Ecological Engineering Industrial Engineering Materials Engineering Mechanical Engineering Nuclear Engineering
 EPICS (Engineering Projects In Community Service) First-Year Engineering Program First-Year Engineering Honors Program Global Engineering Program Minority Engineering Program Professional Practice (Co-Op) Program Women in Engineering Program
 College Administration Schools Programs All Groups All People ECN Webmail
 
 College of Engineering | ECN
 Home Tools Demos
 
 Purdue > Engineering > Object-Oriented Software Development > F2008          
           
           
 ECE 462 Object-Oriented Programming using C++ and Java          
           
 Fall 2008           
           
 If you are taking this class, please enter Blackboard to submit your assignments, check your grades, and join the discussion.         
           
 [outcomes | tools | lectures | assignments | lab exercises | exams | textbook | Rhea | optional readings | changes in 2008 | students' comments ]         
           
 Your Feedback           
           
 Project Demonstration          
           
 Course Outcomes:           
           
 A student who successfully fulfills the course requirements will have demonstrated:         
           
 1. an ability to write object-oriented programs of moderate complexity in Java. [3,4;e]         
 2. an ability to write object-oriented programs of moderate complexity in C++. [3,4;e]         
 3. an understanding of the concepts of inheritance and polymorphism. [3,4;k]          
 4. an ability to use template classes and the STL library in C++ and Java. [3,4;k]         
 5. an ability to overload operators in C++. [4;c,e,k]          
 6. an ability to incorporate exception handling in object-oriented programs. [3,4;k]         
 7. an understanding of the difference between function overloading and function overriding. [3,4;k]         
 8. an ability to write programs with multiple threads and use synchronization among threads. [3,4,k]         
           
 Suggestions to Students:          
           
 Learning by watching on-line videos (also called "asynchronous learning") has unique challenges. The lectures may move faster than your own pace, because you cannot stop the instructor and ask questions. Meanwhile, there are many advantages, for example, you can pause or review. Here are some suggestions to learn more effectively.      
           
 1. Scan the slides before watching a video.          
 2. Have the slides and code in front of you while watching the video.          
 3. Pause when necessary.          
 4. Keep the schedule. Do not procrastinate.          
           
 Tools:           
           
           
 Lectures:           
           
 LE = lab exercise, PA = programming assignment          
           
 The instructor is available in MSEE 190 software laboratory during the lecture hours, three times a week. Student can use the lecture hours for programming assignments, lab exercises, discussion, or asking questions. Additional office hours can be arranged by email. There are three lecture hours per week. Two are used for video instructions and one is used for lab exercises. The experiment conducted in 2007 indicated that this approach did not reduce the coverage of the course materials. If fact, due to the personalized help, students learned more and faster.  
           
 The slides contain bookmarks. To show the bookmarks, in Adobe Reader, select "View", "Navigation Tabs", and "Bookmarks'. The slides are mostly screenshots of the videos. It is recommended that you read the slides before printing. Many slides are used to explain how to set up your programming environment. They are not needed once you have finished the setup. If you do want to print, please print 4 slides on the same page to save paper.    
           
 The source code used in each lecture is available separately. You are encouraged to print and study the source code.         
           
 There are practice questions at the end of each video clip.          
           
 Errata           
           
 Week Date Due Date* Slides Reading Code Video        
           
 1 08/25 - Slides 1 - Introduction        
   Object and Class (5:43)        
           
   Inheritance and Polymorphism (10:45)        
 08/27 - Slides 2-3.3 Code         
   Development Environment (17:32)        
           
   Lab Exercise 1 (14:02)        
           
 08/29 - 3.4-3.9 Lab (MSEE 190)         
 2 09/01 no class          
   Program Structure (14:09)        
           
   Class Examples (4:32)        
 09/03 LE 01 Slides 3.10-3.12 Code         
   Encapsulation and Polymorphism (16:12)        
           
   Constructor and Destructor (17:34)        
           
   Version Control (8:28)        
           
   Instantiation (17:31)        
   Code         
 09/05 - Slides 3.13-3.16 Submission Procedure (8:23)        
           
   Inheritance (6:52)        
           
   Lab Exercise 2 (8:59)        
           
    User Interface (14:22)       
           
    Qt Signals and Slots (17:45)       
 3 09/08 - Slides 17.8-17.12 Code        
    Java Events and Handler (9:47)       
           
    Array (11:27)        
           
   Container (21:57)        
           
 09/10 LE02 Slides 5-5.2 Code Collision Detection (16:57)        
           
   New Container in C++ (12:24)        
           
 09/12 - 17.13-17.17 Lab (MSEE 190)         
    Open and Save File (21:36)       
           
 4 09/15 - Slides 6-6.9 Code Definition, Declaration, and Initialization (17:23)       
           
    Lab Exercise 3 (15:57)       
           
   Reference (4:38)        
           
   Parameter Passing (8:23)        
           
 09/17 LE03 Slides 7-8.5 Code Copy Constructor (14:41)        
           
   Parameter Passing 2 (6:00)        
           
   Overload Resolution (15:01)        
           
 09/19 PA1 Java Breakout - 9-9.13 Lab (MSEE 190)        
 5 09/22 review at ARMS 1109 (bring your questions, no lecture)         
           
 09/24 Exam 1 (outcomes 3,4)          
   Operator Overloading (24:10)        
 09/26 - Slides 12-12.11 Code         
   Small Int and Conversion (24:30)        
    Lab Exercise 4 (1:24)       
           
    Programming Assignment 03 (4:47)       
 6           
 09/29 - Slides 10-10.7 Code Exception Handling in C++ (16:22)       
           
    Exception Handling in Java (10:18)       
           
    Static Member in C++ (9:10)       
   Static Member in Java (9:28)        
           
   Game Programming (6:28)        
 10/01 LE04 Slides 11-11.14 Code         
   Full Screen Game (28:18)        
           
   Lab Exercise 5 (7:38)        
           
 10/03 Lab (MSEE 190)          
    Double Buffering (20:46)       
           
 7 10/06 - Slides 14-14.6 - Sprite (4:13)        
           
    Unified Modeling Language (UML) (22:19)       
           
   Inheritance (21:51)        
           
   Virtual Function (11:32)        
           
 10/08 LE05 Slides 15-15.18 Code Private Inheritance (9:16)        
           
   Java Final (3:36)        
           
   Lab Exercise 6 (5:34)        
           
 10/10 PA2 C++ Breakout Lab (MSEE 190)          
 8 10/13 No Class          
           
   Java Key Input (15:09)        
           
   Java Mouse Input (6:59)        
 10/15 LE06 Slides 16-16.7 Code         
   Multiple Inheritance in C++ (17:40)        
           
   Qt Layouts (9:33)        
           
 10/17 review at ARMS 1109 (bring your questions, no lecture)          
 9 10/20 Exam 2 (outcomes 5,6)         
           
   Sound (7:50)        
           
   Performance Profiling (17:40)        
 10/22 - Slides - Code         
   C++ Profiling (3:52)        
           
   Performance Improvement (18:04)        
           
 10/24 Lab (MSEE 190)          
    Parallelism (14:43)       
           
 10 10/27 - Slides 18-18.3 Code Thread (21:17) WMV format RM format       
           
    Parallel Programs (14:47)       
           
   Scheduling (18:40) WMV format        
           
 10/29 LE07 Slides 18.4-18.11 Code Synchronization (23:01)        
           
   Lab Exercise 9 (10:20)        
           
 10/31 PA3 Java Tetrix Lab (MSEE 190)          
    Design Parallel Programs (19:31)       
           
    Deadlock (15:38)        
 11 11/03 - Slides - Code        
    Thread Performance (11:13)       
           
    Platform Game (5:43)       
           
   Draw Game (6:08)        
           
   Network Client (17:32)        
 11/05 LE08 Slides 19-19.4 Code         
   Network Server (20:38)        
           
   Test Coverage (6:34)        
           
 11/07 review at ARMS 1109 (bring your questions, no lecture)          
 12 11/10 Exam 3 (outcomes 7,8)         
           
   Software Test I (12:34)        
           
   Software Test II (13:06)        
 11/12 LE09 Slides - -         
   Automatic Testing (9:52)        
           
   3D Graphics (12:05)        
           
 11/14 PA4 C++ Pacman Lab (MSEE 190)          
 13 11/17 - - - - Discussion "Education and Technology"       
           
   Multi-Player Game using Network (16:01)        
           
   Game Client (15:26)        
           
 11/19 LE10 Slides - Code Game Server (8:10)        
           
   Improvement (5:10)        
           
   Java Remote Method Invocation (7:41)        
           
 11/21 Lab (MSEE 190)          
    Brief History of C++ (20:15)       
           
 14   Brief History of Java (10:11)       
 11/24 - Slides - Code        
    RMI Example (9:19)        
           
    Ray Tracing (10:19)       
 11/26 No Class           
 11/28 No Class           
 15 12/01 review at ARMS 1109 (bring your questions, no lecture)         
           
 12/03 Exam 4           
 12/05 PA5 Lab (MSEE 190)          
    Reuse Threads (12:23)       
           
 16 12/08 - Slides - - Ray Tracer (8:43)        
           
    Problem with Threads (6:15)       
           
 12/10 game demonstration at MSEE 190          
 12/12 review at ARMS 1109 (bring your questions, no lecture)          
 17 12/18 Final Exam 8-10AM, Physics 116 and 117         
           
           
 * All due dates are suggested deadlines. The flexibility is provided to accommodate your schedule (such as interviews or conferences) and unexpected situations (such as illness or accidents). The deadline for all assignments and lab exercises is 6PM December 5 Friday. A grace period of 6 hours is given to all students. You can submit and resubmit assignments or lab exercises during this grace period without any penalty. All assignments and lab exercises must be submitted before 11:59PM December 5. This is the absolute deadline. After 11:59PM December 5, 10% is taken every hour (round up) from your grade. Nothing will be accepted after 10AM December 6.
           
 Please remember that you are not allowed to request regrading if you submit a lab exercise or a programming assignment after the suggested deadline.        
           
 Programming Assignments and Due Dates:          
           
 Submission Procedure and Rules          
           
 Rules on Collaboration          
           
 1. 2008/09/19, Two-player Breakout game using Java (outcome 1)          
 2. 2008/10/10, Two-player Breakout game using C++ and Qt (outcome 2)          
 3. 2008/10/31, Tetrix game using Java (modified from C++ and Qt Tetrix game), slides, video (4:47) (outcome 1)         
 4. 2008/11/14, Pacman game using C++ and Qt (improve a simplified Java example) (outcome 2)         
 5. 2008/12/05, Interactive 2-player network game using Java or C++ (design your own own game)         
           
 A student can do each assignment alone or work with another (and only one) student that is also taking the class. A student can have different teammates for different assignments. If two students work together, both students have to submit the assignment. Outcome 1 can be passed by assignment 1 or 3. Outcome 2 can be passed by assignment 2 or 4.     
           
 Laboratory Exercises and Due Dates:          
           
 Every student must submit the lab exercises independently. Collaboration is not allowed.         
           
 1. 2008/09/03, (Java) Netbeans programming interface, version control, drawing and handling events. slides, video (14:02), code.         
 2. 2008/09/10, (Java) Tracking mouse movement and bouncing ball. slides, video (8:59), code.         
 3. 2008/09/17, (C++) Qt graphical user interface: drawing and handling events. slides, video (15:57), code.         
 4. 2008/10/01, (Java) Unified Modeling Language using Netbeans. slides, video (1:24).         
 5. 2008/10/08, (Java and C++) Container classes' performance. slides, video (7:38), code.         
 6. 2008/10/15, (Java) Applet. applet, slides, video (5:34), code.          
 7. 2008/10/29, (Java and C++) Multithread, convert C++ to Java. lab07.cpp.          
 8. 2008/11/05, (Java and C++) Multithread, convert Java to C++. lab08.java.          
 9. 2008/11/12, (Java and C++) Networking. slides, video (10:20), code.          
 10. 2008/11/19, (Java or C++) Profile and Coverage.          
           
 Exam Dates:           
           
 1. 2008/09/24, Exam 1          
 2. 2008/10/20, Exam 2          
 3. 2008/11/10, Exam 3          
 4. 2008/12/03, Exam 4          
 5. 2008/12/18, 8-10AM, Physics 116 and 117, Final Exam          
           
 All exams are open-book and open-note. Please bring your Purdue ID. No electronic device (including calculators) is allowed. Exams from 2007.         
           
 Textbook: Programming with Objects          
           
 References:           
           
 Developing Games in Java Effective C++          
           
 Rhea Project           
           
 Purdue ECE Rhea Project: multidimensional, multimedia, self-adaptive, collective learning tool.         
           
 Optional Readings           
           
 These readings are optional. They will not appear in any exam. You can download the PDF files from any Purdue computer.         
           
 1. A History of C++ 1979-1991          
 2. Evolving a Language In and For the Real World: C++ 1991-2006          
 3. Problems with Threads          
 4. Programming Languages: Past, Present, and Future          
 5. End-to-End Arguments in System Design          
 6. Using Redundancy to Find Errors          
 7. An investigation of the Therac-25 Accidents          
 8. Innovation and Education in the Digital Age: Reconciling the Roles of Pedagogy, Technology, and the Business of Learning         
           
 Changes in 2008           
           
 1. The lectures, assignments, and lab exercises will be recorded in separate videos.         
 2. On-line homework will be eliminated. The questions will be embedded in the lectures as self tests.         
 3. The lab exercises will be more closely integrated with the programming assignments.         
           
 Bacause of the postive responses from the students in Fall 2007, ECE 462 will continue the format using on-line lectures. The instructor will be available in the laboratory working with students during the lecture hours. All programming assignments will be developing computer games.      
           
 Student Comments           
           
 These are some comments from students' evaluations after taking ECE 462 in Fall 2008.         
           
 * "I enjoyed this course."          
 * "The game projects are incredibly refreshing..."          
 * "This course was a definite benefit. I think that all CompE students should take it... The course's structure is great."         
 * "Great course and a must for anybody looking to go into software after they graduate."         
 * "Course is fantastic! I feel this is a really important course before entering the CompE working world."         
 * "He did a very good job teaching this course."          
 * "Professor Lu is great--very knowledgeable as well as approachable."          
 * "Professor Lu does a great job and is very helpful..."          
 * "Thumbs up."           
 * "Very helpful, really wants to and does help students who seek it."          
 * "Professor Lu is very helpful and dedicated."          
 * "Great teacher, tries really hard to help students, very helpful."          
 * "The professor is very enthusiastic and extremely diligent in helping his students succeed. Very pleased. I got my education worth from this course."        
           
 Back to OOSD           
           
           
           
 

 Purdue Homepage | Purdue Search | Campus Map | Purdue Directories

 Copyright © 2023, Purdue University, all rights reserved.
 An equal access/equal opportunity university
 Why Secure Web Services? (SSL)
 webmaster@ecn.purdue.edu
 Served by zeoclient-06.ecn.purdue.edu

ECE 462 Object-Oriented Programming using C++ and Java
If you are taking this class, please enter Blackboard to submit your assignments, check your grades, and join the discussion. 
[outcomes | tools | lectures | assignments | lab exercises | exams | textbook | Rhea | optional readings | changes in 2008 | students' comments ]
 Your Feedback 
 Project Demonstration 
Course Outcomes:  
A student who successfully fulfills the course requirements will have demonstrated:
 an ability to write object-oriented programs of moderate complexity in Java. [3,4;e]
 an ability to write object-oriented programs of moderate complexity in C++. [3,4;e]
 an understanding of the concepts of inheritance and polymorphism. [3,4;k]
 an ability to use template classes and the STL library in C++ and Java. [3,4;k]
 an ability to overload operators in C++. [4;c,e,k]
 an ability to incorporate exception handling in object-oriented programs. [3,4;k]
 an understanding of the difference between function overloading and function overriding. [3,4;k]
 an ability to write programs with multiple threads and use synchronization among threads. [3,4,k]
Suggestions to Students:
Learning by watching on-line videos (also called "asynchronous learning") has unique challenges. The lectures may move faster than your own pace, because you cannot stop the instructor and ask questions. Meanwhile, there are many advantages, for example, you can pause or review. Here are some suggestions to learn more effectively.
 Scan the slides before watching a video.
 Have the slides and code in front of you while watching the video.
 Pause when necessary.
 Keep the schedule. Do not procrastinate.
 Tools:              
Lectures:  
LE = lab exercise, PA = programming assignment
The instructor is available in MSEE 190 software laboratory during the lecture hours, three times a week. Student can use the lecture hours for programming assignments, lab exercises, discussion, or asking questions. Additional office hours can be arranged by email. There are three lecture hours per week. Two are used for video instructions and one is used for lab exercises. The experiment conducted in 2007 indicated that this approach did not reduce the coverage of the course materials. If fact, due to the personalized help, students learned more and faster.
The slides contain bookmarks. To show the bookmarks, in Adobe Reader, select  "View", "Navigation Tabs", and "Bookmarks'.  The slides are mostly screenshots of the videos. It is recommended that you read the slides before printing. Many slides are used to explain how to set up your programming environment. They are not needed once you have finished the setup. If you do want to print, please print 4 slides on the same page to save paper.
The source code used in each lecture is available separately. You are encouraged to print and study the source code.
There are practice questions at the end of each video clip.
 Errata 
 
 
 Week
 Date
  Due Date* 
 Slides
 Reading
 Code
 
 Video
 
 
 
 1
 08/25
  -
  Slides  
 1
 -
 Introduction
 
 
 08/27
  -
  Slides 
 2-3.3
 
  Code 
 
 
  Object and Class (5:43)
   Inheritance and Polymorphism (10:45)
   Development Environment (17:32)
  Lab Exercise 1 (14:02)
 
 
 
 08/29
 -
 3.4-3.9
  Lab (MSEE 190)
 
 
 2
 09/01
 no class
 
 
 09/03
 LE 01
  Slides 
 3.10-3.12
 
  Code 
 
 
  Program Structure (14:09)
  Class Examples (4:32)
  Encapsulation and Polymorphism (16:12)
  Constructor and Destructor (17:34)
 
 
 
 09/05
 -
  Slides 
 3.13-3.16
 
  Code 
  
  
 
  Version Control (8:28)
  Instantiation (17:31)
  Submission Procedure (8:23)
  Inheritance (6:52)
  Lab Exercise 2 (8:59)
 
 
 
 3
 09/08
  -
  Slides 
 17.8-17.12
  Code 
 
  User Interface (14:22)
  Qt Signals and Slots (17:45)
  Java Events and Handler (9:47)
  Array (11:27)
 
 
 
 09/10
 LE02
  Slides 
 5-5.2
  Code 
 
  Container (21:57)
  Collision Detection (16:57)
  New Container in C++ (12:24)
 
 
 
 09/12
 -     
 17.13-17.17
  Lab (MSEE 190)
 
 
 4
 09/15
  -
  Slides 
 6-6.9
  Code 
 
  Open and Save File (21:36)
  Definition, Declaration, and Initialization (17:23)
  Lab Exercise 3 (15:57)
 
 
 
 09/17
 LE03
  Slides 
 7-8.5
  Code 
 
  Reference (4:38)
  Parameter Passing (8:23)
  Copy Constructor (14:41)
  Parameter Passing 2 (6:00)
  Overload Resolution (15:01)
 
 
 
 09/19
 PA1 Java Breakout
 -     
 9-9.13
  Lab (MSEE 190)
 
 
  5
 09/22
 review at ARMS 1109 (bring your questions, no lecture)
 
 
 09/24
  Exam 1  (outcomes 3,4)
 
 
 09/26
  -
  Slides 
 12-12.11
  Code 
 
  Operator Overloading (24:10)
 Small Int and Conversion (24:30)
 
 
  6
 09/29
  -
  Slides 
 10-10.7
  Code 
 
  Lab Exercise 4 (1:24)
  Programming Assignment 03 (4:47)
  Exception Handling in C++ (16:22)
  Exception Handling in Java (10:18)
 Static Member in C++ (9:10)
 
 
 10/01
 LE04
  Slides 
  11-11.14
  Code 
 
  Static Member in Java (9:28)
  Game Programming (6:28)
  Full Screen Game (28:18)
  Lab Exercise 5 (7:38)
 
 
 
 10/03
 Lab (MSEE 190)
 
 
  7
 10/06
  -
  Slides 
  14-14.6
  -
 
  Double Buffering (20:46)
  Sprite (4:13)
  Unified Modeling Language (UML) (22:19)
 
 
 
 10/08
 LE05
  Slides 
  15-15.18
  Code 
 
  Inheritance (21:51)
  Virtual Function (11:32)
  Private Inheritance (9:16)
  Java Final (3:36)
  Lab Exercise 6 (5:34)
 
 
 
 10/10
 PA2 C++ Breakout    
 Lab (MSEE 190)
 
 
  8
 10/13
 No Class
 
 
 10/15
 LE06
  Slides 
  16-16.7
  Code 
 
  Java Key Input (15:09)
  Java Mouse Input (6:59)
  Multiple Inheritance in C++ (17:40)
  Qt Layouts (9:33)
 
 
 
 10/17
 review at ARMS 1109 (bring your questions, no lecture)
 
 
  9
 10/20
  Exam 2  (outcomes 5,6)
 
 
 10/22
 -
  Slides 
 -
  Code 
 
  Sound (7:50)
  Performance Profiling (17:40)
  C++ Profiling (3:52)
  Performance Improvement (18:04)
 
 
 
 10/24
 Lab (MSEE 190) 
 
 
  10
 10/27
  -
  Slides 
  18-18.3
  Code 
 
  Parallelism (14:43)
  Thread (21:17) WMV format  RM format 
  Parallel Programs (14:47)
 
 
 
 10/29
 LE07
  Slides 
  18.4-18.11
  Code 
 
  Scheduling (18:40) WMV format 
 Synchronization (23:01)
  Lab Exercise 9 (10:20)
 
 
 
 10/31
 PA3 Java Tetrix  
 Lab (MSEE 190)
 
 
  11
 11/03
  -
  Slides 
 - 
  Code 
 
  Design Parallel Programs (19:31)
   Deadlock (15:38)
   Thread Performance (11:13)
  Platform Game (5:43)
 
 
 
 11/05
 LE08
  Slides 
 19-19.4 
  Code 
 
  Draw Game (6:08)
  Network Client (17:32)
   Network Server (20:38)
   Test Coverage (6:34)
 
 
 
 11/07
 review at ARMS 1109 (bring your questions, no lecture)
 
 
  12
 11/10
  Exam 3  (outcomes 7,8)
 
 
 11/12
 LE09
  Slides 
 -
 -
 
   Software Test I (12:34)
   Software Test II (13:06)
  Automatic Testing (9:52)
  3D Graphics (12:05)
 
 
 
 11/14
 PA4 C++ Pacman 
 Lab (MSEE 190)
 
 
  13
 11/17
 -
 - 
 -
 -
  Discussion "Education and Technology" 
 
 
 11/19
 LE10
  Slides 
 -
  Code 
 
  Multi-Player Game using Network (16:01)
  Game Client (15:26)
  Game Server (8:10)
  Improvement (5:10)
  Java Remote Method Invocation (7:41)
 
 
 
 11/21
 Lab (MSEE 190)
 
 
  14
 11/24
  -
  Slides 
 -
  Code 
 
  Brief History of C++ (20:15)
  Brief History of Java (10:11)
  RMI Example (9:19)
 Ray Tracing (10:19)
 
 
 11/26
 No Class
 
 
 11/28
 No Class
 
 
  15
 12/01
 review at ARMS 1109 (bring your questions, no lecture)
 
 
 12/03
  Exam 4
  
 
 
 12/05
 PA5  
 Lab (MSEE 190)
 
 
  16
 12/08
 -
  Slides 
 -
 -
 
  Reuse Threads (12:23)
  Ray Tracer (8:43)
  Problem with Threads (6:15)
 
 
 
 12/10
 game demonstration at MSEE 190    
 
 
 12/12
 review at ARMS 1109 (bring your questions, no lecture)
 
 
 17
 12/18
  Final Exam 8-10AM, Physics 116 and 117 
 
 
* All due dates are suggested deadlines. The flexibility is provided to accommodate your schedule (such as interviews or conferences) and unexpected situations (such as illness or accidents). The deadline for all assignments and lab exercises is 6PM December 5 Friday. A grace period of 6 hours is given to all students. You can submit and resubmit assignments or lab exercises during this grace period without any penalty. All assignments and lab exercises must be submitted before 11:59PM December 5. This is the  absolute deadline. After 11:59PM December 5, 10% is taken every hour (round up) from your grade. Nothing will be accepted after 10AM December 6.
Please remember that you are not allowed to request regrading if you submit a lab exercise or a programming assignment after the suggested deadline.
Programming Assignments and Due Dates:  
  Submission Procedure and Rules  
  Rules on Collaboration  
 2008/09/19, Two-player Breakout game using Java (outcome 1)
 2008/10/10, Two-player Breakout game using C++ and Qt (outcome 2)
 2008/10/31, Tetrix game using Java (modified from C++ and Qt Tetrix game), slides, video (4:47) (outcome 1)
 2008/11/14, Pacman game using C++ and Qt (improve a simplified Java example) (outcome 2)
 2008/12/05, Interactive 2-player network game using Java or C++ (design your own own game)
A student can do each assignment alone or work with another (and only one) student that is also taking the class. A student can have different teammates for different assignments. If two students work together, both students have to submit the assignment. Outcome 1 can be passed by assignment 1 or 3. Outcome 2 can be passed by assignment 2 or 4.
Laboratory Exercises and Due Dates:  
Every student must submit the lab exercises independently. Collaboration is not allowed.
 2008/09/03, (Java) Netbeans programming interface, version control, drawing and handling events. slides, video (14:02), code.
 2008/09/10, (Java) Tracking mouse movement and bouncing ball. slides, video (8:59), code.
 2008/09/17, (C++) Qt graphical user interface: drawing and handling events. slides, video (15:57), code.
 2008/10/01, (Java) Unified Modeling Language using Netbeans. slides, video (1:24).
 2008/10/08, (Java and C++) Container classes' performance. slides, video (7:38), code.
 2008/10/15, (Java) Applet. applet, slides, video (5:34), code.
 2008/10/29, (Java and C++) Multithread, convert C++ to Java. lab07.cpp.
 2008/11/05, (Java and C++) Multithread, convert Java to C++. lab08.java.
 2008/11/12, (Java and C++) Networking. slides, video (10:20), code.
 2008/11/19, (Java or C++) Profile and Coverage.
Exam Dates:  
 2008/09/24, Exam 1 
 2008/10/20, Exam 2 
 2008/11/10, Exam 3 
 2008/12/03, Exam 4 
 2008/12/18, 8-10AM, Physics 116 and 117, Final Exam 
All exams are open-book and open-note. Please bring your Purdue ID. No electronic device (including calculators) is allowed. Exams from 2007.
 Textbook:    Programming with Objects   
References:
 Developing Games in Java   Effective C++   
Rhea Project  
 Purdue ECE Rhea Project: multidimensional, multimedia, self-adaptive, collective learning tool.
Optional Readings  
 These readings are optional. They will not appear in any exam. You can download the PDF files from any Purdue computer.
  A History of C++ 1979-1991 
  Evolving a Language In and For the Real World: C++ 1991-2006 
  Problems with Threads 
  Programming Languages: Past, Present, and Future 
  End-to-End Arguments in System Design 
  Using Redundancy to Find Errors 
  An investigation of the Therac-25 Accidents 
  Innovation and Education in the Digital Age: Reconciling the Roles of Pedagogy, Technology, and the Business of Learning 
Changes in 2008  
 The lectures, assignments, and lab exercises will be recorded in separate videos.
 On-line homework will be eliminated. The questions will be embedded in the lectures as self tests.
 The lab exercises will be more closely integrated with the programming assignments.
Bacause of the postive responses from the students in Fall 2007, ECE 462 will continue the format using on-line lectures. The instructor will be available in the laboratory working with students during the lecture hours. All programming assignments will be developing computer games.
Student Comments  
These are some comments from students' evaluations after taking ECE 462 in Fall 2008.
 "I enjoyed this course."
 "The game projects are incredibly refreshing..."
 "This course was a definite benefit. I think that all CompE students should take it... The course's structure is great."
 "Great course and a must for anybody looking to go into software after they graduate."
 "Course is fantastic! I feel this is a really important course before entering the CompE working world."
 "He did a very good job teaching this course."
 "Professor Lu is great--very knowledgeable as well as approachable."
 "Professor Lu does a great job and is very helpful..."
 "Thumbs up."
 "Very helpful, really wants to and does help students who seek it."
 "Professor Lu is very helpful and dedicated."
 "Great teacher, tries really hard to help students, very helpful."
 "The professor is very enthusiastic and extremely diligent in helping his students succeed. Very pleased. I got my education worth from this course."
 Back to OOSD
ECE 462 Fall 2008
https://engineering.purdue.edu/OOSD/F2008/F2008.html
https://www.stanford.edu/
Stanford University
2022-10-13
None
<div><section>
	
 <section>
 <header>
<h2>A Purposeful University</h2>
</header>
 <section>
 <p>Stanford was founded almost 150 years ago on a bedrock of societal purpose. Our mission is to contribute to the world by educating students for lives of leadership and purposeful contribution; advancing fundamental knowledge and cultivating creativity; and accelerating solutions and amplifying their impact.</p>
 </section>
 <section>
 
<a href="https://www.stanford.edu/about/">More about Stanford</a>
 </section>
 </section>
 <section>
 <header>
<h2>Campus News</h2>
<p>Stories about people, research, and innovation across the Farm</p>
</header>
 
 <section>
 
<a href="http://news.stanford.edu/report">More campus news</a>
 </section>
 </section>
 <section>
 <header>
<h2>Academics</h2>
<p>Preparing students to make meaningful contributions to society as engaged citizens and leaders in a complex world</p>
</header>
 <div>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Undergraduate Education</h3>
<p>Rich learning experiences that provide a broad liberal arts foundation and deep subject-area expertise</p>
<p><a href="https://undergrad.stanford.edu/">Undergraduate Education</a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Graduate Education</h3>
<p>Unsurpassed opportunities to participate in the advancement of entire fields of knowledge</p>
<p><a href="https://vpge.stanford.edu/">Graduate education</a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Driving impact</h3>
<p>Continuing adult education, executive and professional programs, and programs for K-12 students</p>
<p><a href="https://lifelonglearning.stanford.edu/">Lifelong Learning</a></p>
</section>
</div>
 <div>
<h3>Seven schools in which to pursue your passions</h3>
</div>
 <section>
 
<a href="/academics">More about academics</a>
 </section>
 </section>
 <section>
 
<h2>Profile of Meet Chris Field </h2>
 
<div>
 <p></p><p>“I’m an optimist about our ability to cope with climate change. As I’ve moved forward in my career, what I see are more and more opportunities to address the challenge, to put in place solutions that lead to better lives for individuals and communities.”</p>
 <div>
 <h3>Meet Chris Field </h3>
 <p>Perry L. McCarty Director of the Stanford Woods Institute for the Environment</p>
 <p><a href="https://news.stanford.edu/report/2022/10/13/meet-faculty-chris-field/">More </a> </p></div>
</div>
 </section>
 <section>
 <header>
<h2>Research</h2>
<p>Driving discoveries vital to our world, our health, and our intellectual life</p>
</header>
 <section>
 
<p>
 </p><figure>
 <strong>18 Institutes</strong> cross disciplinary boundaries
 </figure>
 <figure>
 <strong>20 Libraries</strong> hold over 9.5 million volumes
 </figure>
 <figure>
 <strong>$1.69 Billion</strong> sponsored research budget
 </figure>
<p></p>
 </section>
 <section>
 
<a href="/research">More about research </a>
 </section>
 </section>
 <section>
 <header>
<h2>Upcoming Events</h2>
</header>
 
 <section>
 
<a href="http://events.stanford.edu/">More events</a>
 </section>
 </section>
 <section>
 <header>
<h2>Health Care</h2>
<p>Advancing human health through innovative research, education, and care</p>
</header>
 <div>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Stanford Medicine</h3>
<p>Leading a worldwide revolution in precision health through biomedical research, education, and clinical enterprises</p>
<p><a href="https://med.stanford.edu/">Stanford Medicine</a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Stanford Health Care</h3>
<p>Leveraging expertise and advanced technology  to deliver unparalleled care for each patient’s unique needs</p>
<p><a href="https://stanfordhealthcare.org/">Stanford Health Care</a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Stanford Children's Health</h3>
<p>The only health care network in the Bay Area – and one of the few in the country – exclusively dedicated to pediatric and obstetric care</p>
<p><a href="https://stanfordchildrens.org/">Stanford Children's Health</a></p>
</section>
</div>
 <section>
 
<a href="/health-care/">More about health care</a>
 </section>
 </section>
 <section>
 
<h2>Profile of Meet Beatriz Stix-Brunell</h2>
 
<div>
 <p></p><p>“Sometimes the best things that happen to us are the leaps we take without knowing what’s going to happen next, without knowing where we’ll land.”</p>
 <div>
 <h3>Meet Beatriz Stix-Brunell</h3>
 <p>Class of 2025, former Royal Ballet soloist</p>
 <p><a href="https://news.stanford.edu/report/2023/03/08/act-ii-beatriz-stix-brunell-25-leaps-faith-life-beyond-stage/">More</a> </p></div>
</div>
 </section>
 <section>
 <header>
<h2>Campus Life</h2>
<p>Building a vibrant community of creative and accomplished people from around the world</p>
</header>
 <div>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Student Life</h3>
<p>A residential campus with diverse housing, exceptional dining, and over 600 student organizations</p>
<p><a href="http://studentaffairs.stanford.edu/">Student Affairs</a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Arts &amp; Culture</h3>
<p>A rich tradition of fostering creativity and a vibrant arts district on campus</p>
<p><a href="http://arts.stanford.edu/">Stanford Arts</a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Recreation &amp; Wellness</h3>
<p>State-of-the-art facilities and fitness programs to encourage movement and play</p>
<p><a href="https://rec.stanford.edu/">Recreation &amp; Wellness</a></p>
</section>
</div>
 <section>
 
<a href="/campus-life/">More about campus life</a>
 </section>
 </section>
 <section>
 <header>
<h2>Athletics</h2>
<p>Providing student-athletes the opportunity to achieve excellence both in competition and in the classroom</p>
</header>
 <div>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Home of Champions</h3>
<p>Stanford’s 131 NCAA championships are the most for any university, a product of an unrivaled culture of excellence and continued support from the campus community</p>
<p><a href="https://gostanford.com/sports/2017/5/22/home-of-champions.aspx">National Championships</a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Olympic Excellence</h3>
<p>The Cardinal has produced at least one medalist in every Olympics in which the U.S. has competed since 1912, totaling 296 medals from 177 medalists</p>
<p><a href="https://gostanford.com/news/2016/7/1/athletics-stanford-olympic-history.aspx">Medals </a></p>
</section>
<section>
<figure>
 
 
 
 
 
 
 
 
 
</figure>
<h3>Multidimensional Impact</h3>
<p>Stanford student-athletes have achieved local, national, and global impact through community involvement and advocacy</p>
<p><a href="https://gostanford.com/sports/featured">Athlete Stories</a></p>
</section>
</div>
 <section>
 
<a href="https://gostanford.com/">More about athletics</a>
 </section>
 </section>
 <section>
 <header>
<h2>Admission</h2>
<p>Offering extraordinary freedom to explore, to collaborate, and to challenge yourself</p>
</header>
 <section>
 
<figure>
 
 
 
 
 
 
 </figure>
 </section>
 <div>
<section>
<h3>Explore the possibilities of a Stanford education as you map out your college journey.</h3>
<p>We look for distinctive students who exhibit an abundance of energy and curiosity in their classes, activities, projects, research, and lives.</p>
</section>
<section>
<h3>Stanford meets the full financial need of every admitted undergrad who qualifies for assistance.</h3>
<p>Nearly 80% of undergrads receive some form of financial assistance. Generally, tuition is covered for families with incomes below $150,000.</p>
</section>
</div>
 <section>
 
<a href="/admission">More about admission</a>
 </section>
 </section>
 <div>
 
 
 
 
 
 
 
</div>
</section></div>||||I||||Skip to content Stanford University
 Information for:
 * Students
 * Faculty & Staff
 * Families
 * Visitors
 * Alumni
 * COVID-19
Search Menu
 * News
 * Events
 * Academics
 * Research
 * Health Care
 * Campus Life
 * Admission
 * About
 Search term

 Search Stanford:

 Web People
 Search Web

 Other ways to search: Map Profiles

Stanford

Explore Stanford

Main Content

A Purposeful University

Stanford was founded almost 150 years ago on a bedrock of societal purpose. Our mission is to contribute to the world by educating students for lives of leadership and purposeful contribution; advancing fundamental knowledge and cultivating creativity; and accelerating solutions and amplifying their impact.

More about Stanford

Campus News

Stories about people, research, and innovation across the Farm

 Science & Technology

 Advances in generalizable medical AI

 Medicine

 DNA circles are key drivers of cancer

 Social Sciences

 When markets and politics collide, innovation may lose out

 Science & Technology

 Building a precise assistive-feeding robot that can handle any meal

 Science & Technology

 The tale of the ‘ubiquitous’ Stanford Bunny

 Science & Technology

 3D printing research at Stanford

More campus news

Academics

Preparing students to make meaningful contributions to society as engaged citizens and leaders in a complex world

 Undergraduate Education

 Rich learning experiences that provide a broad liberal arts foundation and deep subject-area expertise

 Undergraduate Education

 Graduate Education

 Unsurpassed opportunities to participate in the advancement of entire fields of knowledge

 Graduate education

 Driving impact

 Continuing adult education, executive and professional programs, and programs for K-12 students

 Lifelong Learning

 Seven schools in which to pursue your passions

 * Medicine
 * Law
 * Humanities & Sciences
 * Engineering
 * Education
 * Sustainability
 * Business
More about academics

Profile of Meet Chris Field

 “I’m an optimist about our ability to cope with climate change. As I’ve moved forward in my career, what I see are more and more opportunities to address the challenge, to put in place solutions that lead to better lives for individuals and communities.”

 Meet Chris Field

 Perry L. McCarty Director of the Stanford Woods Institute for the Environment

 More

Research

Driving discoveries vital to our world, our health, and our intellectual life

 18 Institutes cross disciplinary boundaries

 20 Libraries hold over 9.5 million volumes

 $1.69 Billion sponsored research budget

More about research

Upcoming Events

More events

Health Care

Advancing human health through innovative research, education, and care

 Stanford Medicine

 Leading a worldwide revolution in precision health through biomedical research, education, and clinical enterprises

 Stanford Medicine

 Stanford Health Care

 Leveraging expertise and advanced technology to deliver unparalleled care for each patient’s unique needs

 Stanford Health Care

 Stanford Children's Health

 The only health care network in the Bay Area – and one of the few in the country – exclusively dedicated to pediatric and obstetric care

 Stanford Children's Health

More about health care

Profile of Meet Beatriz Stix-Brunell

 “Sometimes the best things that happen to us are the leaps we take without knowing what’s going to happen next, without knowing where we’ll land.”

 Meet Beatriz Stix-Brunell

 Class of 2025, former Royal Ballet soloist

 More

Campus Life

Building a vibrant community of creative and accomplished people from around the world

 Student Life

 A residential campus with diverse housing, exceptional dining, and over 600 student organizations

 Student Affairs

 Arts & Culture

 A rich tradition of fostering creativity and a vibrant arts district on campus

 Stanford Arts

 Recreation & Wellness

 State-of-the-art facilities and fitness programs to encourage movement and play

 Recreation & Wellness

More about campus life

Athletics

Providing student-athletes the opportunity to achieve excellence both in competition and in the classroom

 Home of Champions

 Stanford’s 131 NCAA championships are the most for any university, a product of an unrivaled culture of excellence and continued support from the campus community

 National Championships

 Olympic Excellence

 The Cardinal has produced at least one medalist in every Olympics in which the U.S. has competed since 1912, totaling 296 medals from 177 medalists

 Medals

 Multidimensional Impact

 Stanford student-athletes have achieved local, national, and global impact through community involvement and advocacy

 Athlete Stories

More about athletics

Admission

Offering extraordinary freedom to explore, to collaborate, and to challenge yourself

 Explore the possibilities of a Stanford education as you map out your college journey.

 We look for distinctive students who exhibit an abundance of energy and curiosity in their classes, activities, projects, research, and lives.

 Stanford meets the full financial need of every admitted undergrad who qualifies for assistance.

 Nearly 80% of undergrads receive some form of financial assistance. Generally, tuition is covered for families with incomes below $150,000.

More about admission
 * Facebook
 * Twitter
 * Instagram
 * LinkedIn
 * YouTube
 * iTunes U

 Schools

 * Business
 * Education
 * Engineering
 * Humanities & Sciences
 * Law
 * Medicine
 * Sustainability

 Departments

 * Departments A - to Z
 * Interdisciplinary Programs

 Research

 * Research Centers A - to Z
 * Interdisciplinary Research
 * Libraries

 Health Care

 * Stanford Health Care
 * Stanford Children's Health

 Online Learning

 * Stanford Online

 About Stanford

 * Facts
 * History
 * Accreditation

 Admission

 * Undergraduate
 * Graduate
 * Financial Aid

 Resources

 * A - to Z Index
 * Campus Map
 * Community Engagement
 * Directory
 * Stanford Profiles
 * Applying
 * Visiting
 * Giving
 * Careers
 * Faculty Positions
 * Contact
 Stanford
 University
 * Stanford Home
 * Maps & Directions
 * Search Stanford
 * Emergency Info
 * Terms of Use
 * Privacy
 * Copyright
 * Trademarks
 * Non-Discrimination
 * Accessibility

 © Copyright Stanford University . Stanford , California 94305 .

A Purposeful University
 
 Stanford was founded almost 150 years ago on a bedrock of societal purpose. Our mission is to contribute to the world by educating students for lives of leadership and purposeful contribution; advancing fundamental knowledge and cultivating creativity; and accelerating solutions and amplifying their impact.
 
 
 
More about Stanford
 
 
 
 
Campus News
Stories about people, research, and innovation across the Farm
 
 
 
More campus news
 
 
 
 
Academics
Preparing students to make meaningful contributions to society as engaged citizens and leaders in a complex world
 
 
 
 
 
 
 
 
 
 
Undergraduate Education
Rich learning experiences that provide a broad liberal arts foundation and deep subject-area expertise
 Undergraduate Education 
 
 
 
 
 
 
 
 
 
Graduate Education
Unsurpassed opportunities to participate in the advancement of entire fields of knowledge
 Graduate education 
 
 
 
 
 
 
 
 
 
Driving impact
Continuing adult education, executive and professional programs, and programs for K-12 students
 Lifelong Learning 
 
Seven schools in which to pursue your passions
 
 
More about academics
 
 
 
 
Profile of Meet Chris Field 
 
   “I’m an optimist about our ability to cope with climate change. As I’ve moved forward in my career, what I see are more and more opportunities to address the challenge, to put in place solutions that lead to better lives for individuals and communities.”
 
 Meet Chris Field 
 Perry L. McCarty Director of the Stanford Woods Institute for the Environment
  More   
 
 
 
Research
Driving discoveries vital to our world, our health, and our intellectual life
 
 
  
 18 Institutes cross disciplinary boundaries
 
 
 20 Libraries hold over 9.5 million volumes
 
 
 $1.69 Billion sponsored research budget
 
 
 
 
 
More about research 
 
 
 
 
Upcoming Events
 
 
 
More events
 
 
 
 
Health Care
Advancing human health through innovative research, education, and care
 
 
 
 
 
 
 
 
 
 
Stanford Medicine
Leading a worldwide revolution in precision health through biomedical research, education, and clinical enterprises
 Stanford Medicine 
 
 
 
 
 
 
 
 
 
Stanford Health Care
Leveraging expertise and advanced technology  to deliver unparalleled care for each patient’s unique needs
 Stanford Health Care 
 
 
 
 
 
 
 
 
 
Stanford Children's Health
The only health care network in the Bay Area – and one of the few in the country – exclusively dedicated to pediatric and obstetric care
 Stanford Children's Health 
 
 
More about health care
 
 
 
 
Profile of Meet Beatriz Stix-Brunell
 
   “Sometimes the best things that happen to us are the leaps we take without knowing what’s going to happen next, without knowing where we’ll land.”
 
 Meet Beatriz Stix-Brunell
 Class of 2025, former Royal Ballet soloist
  More  
 
 
 
Campus Life
Building a vibrant community of creative and accomplished people from around the world
 
 
 
 
 
 
 
 
 
 
Student Life
A residential campus with diverse housing, exceptional dining, and over 600 student organizations
 Student Affairs 
 
 
 
 
 
 
 
 
 
Arts &amp; Culture
A rich tradition of fostering creativity and a vibrant arts district on campus
 Stanford Arts 
 
 
 
 
 
 
 
 
 
Recreation &amp; Wellness
State-of-the-art facilities and fitness programs to encourage movement and play
 Recreation &amp; Wellness 
 
 
More about campus life
 
 
 
 
Athletics
Providing student-athletes the opportunity to achieve excellence both in competition and in the classroom
 
 
 
 
 
 
 
 
 
 
Home of Champions
Stanford’s 131 NCAA championships are the most for any university, a product of an unrivaled culture of excellence and continued support from the campus community
 National Championships 
 
 
 
 
 
 
 
 
 
Olympic Excellence
The Cardinal has produced at least one medalist in every Olympics in which the U.S. has competed since 1912, totaling 296 medals from 177 medalists
 Medals  
 
 
 
 
 
 
 
 
 
Multidimensional Impact
Stanford student-athletes have achieved local, national, and global impact through community involvement and advocacy
 Athlete Stories 
 
 
More about athletics
 
 
 
 
Admission
Offering extraordinary freedom to explore, to collaborate, and to challenge yourself
 
 
 
 
 
 
 
 
 
 
 
Explore the possibilities of a Stanford education as you map out your college journey.
We look for distinctive students who exhibit an abundance of energy and curiosity in their classes, activities, projects, research, and lives.
Stanford meets the full financial need of every admitted undergrad who qualifies for assistance.
Nearly 80% of undergrads receive some form of financial assistance. Generally, tuition is covered for families with incomes below $150,000.
 
 
More about admission
Stanford University
https://www.stanford.edu/
http://quanser.blogspot.com/2013/12/controls-course-gives-students-skills.html
Controls Course Gives Students Skills and Tools for Senior Design Project and Future Career
2013-12-17
Quanser
<div><div><p>
The <a href="https://engineering.purdue.edu/ME">School of Mechanical Engineering</a> at the Purdue University has a rather large enrollment, with more than 1,300 students in sophomore to senior years. The School strives to graduate engineers with knowledge and skills they will use in their career paths once they leave the university. Providing them with the tools and equipment similar to those used in industry is therefore a must.</p><p>
A great example of a course that adapted to the changing environment is the Automatic Control Systems Course. While the controller design techniques and theories that students learn are still sound, the course lab had to be updated to reflect the shift in the controllers hardware implementation. As a result, students learn controller design methods working with <a href="http://www.quanser.com/NI-Quanser">Quanser-NI platform</a>. Since the focus of the course lies on the controller design, rather than on programming or plant analysis, the School has decided to equip the lab with several NI<a href="http://www.ni.com/compactrio/"> CompactRIO</a> controllers that can be easily connected to a Quanser plant, such as a <a href="http://www.quanser.com/products/linear_servo_IP02">Linear Inverted Pendulum</a> or <a href="http://www.quanser.com/Products/seesaw">Seesaw</a>.</p><table><tbody>
<tr><td><a href="http://1.bp.blogspot.com/-MT312gozUmc/Uqt764RoLDI/AAAAAAAADEk/jQbPtSKV3Ug/s1600/Linear+IP+lab.jpg"></a></td></tr>
<tr><td>A typical lab setup as presented by Dr. Galen King, Professor of Mechanical Engineering at Purdue University during the recent NI Engineering Education webcast series.</td><td></td><td><br /></td></tr>
</tbody></table><p>
At the beginning of the course, students learn to design their controller based on the method covered in the class, using <a href="http://www.ni.com/labview/">LabVIEW</a> Control Design and Simulation Module. Once they validate their algorithm in simulation, they deploy the code to the cRIO system, using LabVIEW to program FPGA on the cRIO module. At the end of semester, students complete their project by implementing the controller on an actual physical plant - either a custom build one, or on a linear motion control system from Quanser. That allows them to observe the behavior of the plant and tune their controller. At the end of the semester the students can compare their designs in a contest. They even take Quanser Seesaw further, to make the contest more exciting: students have to come up with the controller to balance the seesaw as weights are added on one end.</p><p>
The course has been very well received by the students. By the end of the course, they are able to design real-time controllers on their own and are quite happy with the minimal programming overhead using LabVIEW environment. Moreover, they are able to apply the control concepts during their Capstone Design Project - and several students are competing to use the cRIO controllers they became familiar with in the Automatic Control Systems Course.</p><p>
That's exactly what the Quanser-NI platform is supposed to do - make controls engineering teaching more engaging, while giving students industry-related tools and build the skills they will need as professional engineers.</p><p>
To learn more about Quanser-NI platform for controls, <a href="http://www.quanser.com/NI-Quanser">click her</a>e.
</p>
</div>||||I|||| Tuesday, December 17, 2013

 Controls Course Gives Students Skills and Tools for Senior Design Project and Future Career

 The School of Mechanical Engineering at the Purdue University has a rather large enrollment, with more than 1,300 students in sophomore to senior years. The School strives to graduate engineers with knowledge and skills they will use in their career paths once they leave the university. Providing them with the tools and equipment similar to those used in industry is therefore a must.

 A great example of a course that adapted to the changing environment is the Automatic Control Systems Course. While the controller design techniques and theories that students learn are still sound, the course lab had to be updated to reflect the shift in the controllers hardware implementation. As a result, students learn controller design methods working with Quanser-NI platform. Since the focus of the course lies on the controller design, rather than on programming or plant analysis, the School has decided to equip the lab with several NI CompactRIO controllers that can be easily connected to a Quanser plant, such as a Linear Inverted Pendulum or Seesaw.

    
 A typical lab setup as presented by Dr. Galen King, Professor of Mechanical Engineering at Purdue University during the recent NI Engineering Education webcast series. 
 
 At the beginning of the course, students learn to design their controller based on the method covered in the class, using LabVIEW Control Design and Simulation Module. Once they validate their algorithm in simulation, they deploy the code to the cRIO system, using LabVIEW to program FPGA on the cRIO module. At the end of semester, students complete their project by implementing the controller on an actual physical plant - either a custom build one, or on a linear motion control system from Quanser. That allows them to observe the behavior of the plant and tune their controller. At the end of the semester the students can compare their designs in a contest. They even take Quanser Seesaw further, to make the contest more exciting: students have to come up with the controller to balance the seesaw as weights are added on one end.

 The course has been very well received by the students. By the end of the course, they are able to design real-time controllers on their own and are quite happy with the minimal programming overhead using LabVIEW environment. Moreover, they are able to apply the control concepts during their Capstone Design Project - and several students are competing to use the cRIO controllers they became familiar with in the Automatic Control Systems Course.

 That's exactly what the Quanser-NI platform is supposed to do - make controls engineering teaching more engaging, while giving students industry-related tools and build the skills they will need as professional engineers.

 To learn more about Quanser-NI platform for controls, click here.
 Posted by Quanser at 11:25 AM
 Labels: Solutions - Linear Motion Control , Solutions - Quanser-NI Workstations

 No comments:

 Post a Comment

 Newer Post Older Post Home
 Subscribe to: Post Comments (Atom)

 Visit Quanser website

 * http://www.quanser.com
 Subscribe in a reader

 Read our eNEWS

 eNEWS Archive
 
 

 Quanser Blog Authors


 Cameron Fulford, Engineering Manager, Systems & Control

 Hervé Lacheray, Senior Projects Manager

 Tom Lee, Chief Education Officer

 Heidi Wight, Electronics Engineer

 Amirpasha Javid, Applications Engineer

 Paul Karam, Director of Engineering

 Michel Levis, Manager, Curriculum

 Derek Wight, Manager, Electronics

 Zuzana Fabusova, Marketing Specialist

 Blog Archive

 * ► 2014 (18)
 + ► July (1)
 + ► June (2)
 + ► May (3)
 + ► April (4)
 + ► March (3)
 + ► February (3)
 + ► January (2)
 * ▼ 2013 (68)
 + ▼ December (3)
 o SWAT Visits Quanser
 o Controls Course Gives Students Skills and Tools fo...
 o Quanser Qball Starring on TV
 + ► November (4)
 + ► October (7)
 + ► September (5)
 + ► August (6)
 + ► July (6)
 + ► June (9)
 + ► May (6)
 + ► April (6)
 + ► March (5)
 + ► February (6)
 + ► January (5)
 * ► 2012 (56)
 + ► December (2)
 + ► November (6)
 + ► October (2)
 + ► September (4)
 + ► August (6)
 + ► July (4)
 + ► June (6)
 + ► May (4)
 + ► April (5)
 + ► March (8)
 + ► February (3)
 + ► January (6)
 * ► 2011 (65)
 + ► December (7)
 + ► November (8)
 + ► October (5)
 + ► September (6)
 + ► August (5)
 + ► July (8)
 + ► June (10)
 + ► May (4)
 + ► April (3)
 + ► March (3)
 + ► February (3)
 + ► January (3)
 * ► 2010 (59)
 + ► December (5)
 + ► November (4)
 + ► October (4)
 + ► September (2)
 + ► August (6)
 + ► July (8)
 + ► June (8)
 + ► May (1)
 + ► April (8)
 + ► March (3)
 + ► February (5)
 + ► January (5)
 * ► 2009 (78)
 + ► December (1)
 + ► November (3)
 + ► October (3)
 + ► September (9)
 + ► August (9)
 + ► July (7)
 + ► June (14)
 + ► May (6)
 + ► April (7)
 + ► March (7)
 + ► February (7)
 + ► January (5)
 * ► 2008 (36)
 + ► December (11)
 + ► November (4)
 + ► October (4)
 + ► September (6)
 + ► August (1)
 + ► July (5)
 + ► June (2)
 + ► April (1)
 + ► February (1)
 + ► January (1)
 * ► 2007 (14)
 + ► November (2)
 + ► October (7)
 + ► August (3)
 + ► May (2)

 Labels

 * engineering education (65)
 * Events (115)
 * Global trends in engineering education (22)
 * Inside Quanser (48)
 * Outreach (23)
 * Partners (35)
 * Quanser on the road (16)
 * research (44)
 * Solutions - Aerospace systems (6)
 * Solutions - Control Peripherals (8)
 * Solutions - Haptics (16)
 * Solutions - Linear Motion Control (1)
 * Solutions - Mechatronic Controls (16)
 * Solutions - QNET Trainers (3)
 * Solutions - Quanser-NI Workstations (12)
 * Solutions - QUARC control software (38)
 * Solutions - RCP Toolkit for LabVIEW (4)
 * Solutions - Robotics (21)
 * Solutions - Rotary Motion Control (12)
 * Solutions - Structural Dynamics (18)
 * Solutions - Unmanned Systems (35)
 * Solutions - Virtual experiments (3)
 
 
 Simple theme. Powered by Blogger.
The School of Mechanical Engineering at the Purdue University has a rather large enrollment, with more than 1,300 students in sophomore to senior years. The School strives to graduate engineers with knowledge and skills they will use in their career paths once they leave the university. Providing them with the tools and equipment similar to those used in industry is therefore a must. 
A great example of a course that adapted to the changing environment is the Automatic Control Systems Course. While the controller design techniques and theories that students learn are still sound, the course lab had to be updated to reflect the shift in the controllers hardware implementation. As a result, students learn controller design methods working with Quanser-NI platform. Since the focus of the course lies on the controller design, rather than on programming or plant analysis, the School has decided to equip the lab with several NI CompactRIO controllers that can be easily connected to a Quanser plant, such as a Linear Inverted Pendulum or Seesaw.  
     
 A typical lab setup as presented by Dr. Galen King, Professor of Mechanical Engineering at Purdue University during the recent NI Engineering Education webcast series.      
  
At the beginning of the course, students learn to design their controller based on the method covered in the class, using LabVIEW Control Design and Simulation Module. Once they validate their algorithm in simulation, they deploy the code to the cRIO system, using LabVIEW to program FPGA on the cRIO module. At the end of semester, students complete their project by implementing the controller on an actual physical plant - either a custom build one, or on a linear motion control system from Quanser. That allows them to observe the behavior of the plant and tune their controller. At the end of the semester the students can compare their designs in a contest. They even take Quanser Seesaw further, to make the contest more exciting: students have to come up with the controller to balance the seesaw as weights are added on one end. 
The course has been very well received by the students. By the end of the course, they are able to design real-time controllers on their own and are quite happy with the minimal programming overhead using LabVIEW environment. Moreover, they are able to apply the control concepts during their Capstone Design Project - and several students are competing to use the cRIO controllers they became familiar with in the Automatic Control Systems Course. 
That's exactly what the Quanser-NI platform is supposed to do - make controls engineering teaching more engaging, while giving students industry-related tools and build the skills they will need as professional engineers. 
To learn more about Quanser-NI platform for controls, click here.
Controls Course Gives Students Skills and Tools for Senior Design Project and Future Career
http://quanser.blogspot.com/2013/12/controls-course-gives-students-skills.html
http://groups.csail.mit.edu/mac/users/gjs/6946/index.html
Classical Mechanics: A Computational Approach
2014-01-01
None
<div>
 
<b>MASSACHVSETTS INSTITVTE OF TECHNOLOGY</b><br /> 
Joint Subject Offering: 6.946J, 8.351J, 12.620J 
<p>
<b>Classical Mechanics:
A Computational Approach</b><br /> 
</p><p>
<a href="http://swiss.csail.mit.edu/users/wisdom/">
Jack Wisdom</a>, wisdom@mit.edu, 54-414, x3-7730 
<br />
<a href="http://groups.csail.mit.edu/mac/users/gjs/">
Gerald Jay Sussman</a>, gjs@mit.edu, 32G-514, x3-5874
<br />
</p><p>
 Kenny Chen, kclisp@mit.edu, will assist us this term.
</p>
<p>
 
 
</p>
<p>
 <b>
Content:
 </b>
</p>
<p>
We study the fundamental principles of classical mechanics, with
a modern emphasis on the qualitative structure of phase space. We
use computational ideas to formulate the principles of mechanics
precisely. Expression in a computational framework encourages clear
thinking and active exploration.
</p>
<p>
Our presentation is unusual in that computation underlies our
understanding of the mathematical ideas used to express mechanics. We
make our mathematical notations explicit and precise enough that they
can be interpreted automatically by a computer. As a consequence of
this requirement the formulas and equations stand on their own. They
have clear meaning, independent of any informal context.
</p>
<p>
We plan to consider the following topics: The Lagrangian formulation.
Action, variational principles, and equations of motion. Hamilton's
principle. Conserved quantities. Hamiltonian formulation and
canonical equations. Surfaces of section. Chaos. Canonical
transformations and generating functions. Hamilton-Jacobi theory,
Liouville's theorem and Poincaré integral invariants. Canonical
perturbation theory. Poincaré-Birkhoff and KAM theorems. Invariant
curves. Nonlinear resonances. Resonance overlap and transition to
chaos. Properties of chaotic motion.
</p>
<p>
Ideas will be illustrated and supported with physical examples. We
will make extensive use of computing to capture methods, for
simulation, and for symbolic analysis.
</p>
<hr />
<p>
This subject awards G-LEVEL Graduate Credit, however the subject
is appropriate for undergraduates who have the prerequisite experience.
Undergraduates are welcome.
</p>
<p>
Prerequisites: 8.01, 18.03, programming experience
</p>
<p>
Lectures: MWF at 1400EDT (2:00PM EDT), Online: see below
Computer Lab: Wednesday evenings, 1900-2200 EDT (7--10 PM EDT), Online
Units: 3-3-6
</p>
<p>
 Instructions for attending the online class are
 <a href="http://groups.csail.mit.edu/mac/users/gjs/6946/first-class-info.txt"> here </a>
</p>
<p>
 <b>
Teaching plan:
 </b>
</p>
<p>
Professors Jack Wisdom (EAPS) and Gerald Jay Sussman will teach
this class entirely online, with synchronous lectures on Monday,
Wednesday, and Friday at 1400--1500 EDT (2:00PM--3:00PM). We
will run our evening laboratory, each Wednesday from 1900--2200
EDT (7:00PM--10:00PM). We expect students to actively
participate in all of the meetings, so it may be difficult for
students who are in some time zones. If a significant number of
students want the hours to be modified, we will be happy to
adjust, as appropriate, (one advantage of online teaching is that
there is not a problem with allocating a classroom!) The times
can be renegotiated by the class in the first few meetings of the
term.
</p>
<p>
We also invite students individually and in groups to drop in
(online) to discuss problems with us at other times. We will try
to make ourselves very accessible in these strange circumstances.
</p>
<p>
 <b>
Grades:
 </b>
</p>
<p>
This is an advanced class. There are no quizzes. Grades are entirely
determined by the work that students do in weekly problem sets,
attendance and participation in the class and in the laboratory, and
some more extensive projects. In the evening laboratory we hang out
with the students, engage in discussions, and we try to help with the
weekly work. We encourage students to work together and help each
other learn the material, but each student must prepare an individual
report on the work done on the problem sets and projects. Each
student must report on the help that they gave to and received from
other students.
</p>
<p>
 <b>
Textbook: 
 </b>
</p>
<p>
<a href="https://mitpress.mit.edu/books/structure-and-interpretation-classical-mechanics-second-edition">
Structure and Interpretation of Classical Mechanics, second edition</a>,
MIT Press, 2014, ISBN: 978-0-262-02896-7
</p><p>
<a href="http://mitpress.mit.edu/sites/default/files/titles/content/sicm_edition_2/book.html">
Structure and Interpretation of Classical Mechanics (HTML free!), second edition</a>
</p><p>
<a href="http://groups.csail.mit.edu/mac/users/gjs/6946/errata.pdf">
Errata for the Mechanics Book, second edition </a>. 
</p><p>
 <b>
Class Organization: 
 </b>
</p>
<p>
<a href="http://groups.csail.mit.edu/mac/users/gjs/6946/red-tape.pdf">
Red Tape Memo</a>
</p>
<p>
<a href="http://groups.csail.mit.edu/mac/users/gjs/6946/assignments.html">
Assignments</a>
</p>
<p>
 <b>
Other Resources: 
 </b>
</p>
<p>
<a href="http://mitpress.mit.edu/sicp/full-text/book/book.html">
Structure and Interpretation of Computer Programs, second edition (HTML) </a>
</p>
<p>
 <a href="dont-panic">Don't Panic!</a>: A guide for the perplexed (software setup).
</p>
<p>
<a href="http://groups.csail.mit.edu/mac/users/gjs/6946/beginner.pdf">
Beginner notes</a>
</p>
<p>
<a href="http://groups.csail.mit.edu/mac/users/gjs/6946/cheat-sheet.pdf">
Edwin cheat sheet</a>
</p>
<p>
<a href="http://groups.csail.mit.edu/mac/users/gjs/6946/refman.pdf">
Scmutils manual</a>
</p>
<p>
<a href="http://groups.csail.mit.edu/mac/users/gjs/6946/graphing.pdf">
Graphing notes</a>
</p>
<p>
<b>
 Software:
</b>
</p>
<p>
If you want to install the software on your personal computers 
see <a href="http://groups.csail.mit.edu/mac/users/gjs/6946/installation.html"> here</a>. 
</p>
<p>
We also make our software available on Athena.
</p>
<p>
Because our laboratory will be online this year (UGH!) we are also developing
a special collaborative software system that we will use in the lab!
</p>
<p>
 <b>
Plug for our other book, not needed for this class: 
 </b>
</p>
<p>
<a href="http://mitpress.mit.edu/books/functional-differential-geometry">
Our MIT Press book on differential geometry!</a>
</p>
<p>
<b>
Software for Differential Geometry:
</b>
</p>
<p>
This software is now automatically part of our mechanics system, available above.
</p>
<br />
||||I||||MASSACHVSETTS INSTITVTE OF TECHNOLOGY
Joint Subject Offering: 6.946J, 8.351J, 12.620J

Classical Mechanics: A Computational Approach

Jack Wisdom, wisdom@mit.edu, 54-414, x3-7730
Gerald Jay Sussman, gjs@mit.edu, 32G-514, x3-5874

Kenny Chen, kclisp@mit.edu, will assist us this term.

Content:

We study the fundamental principles of classical mechanics, with a modern emphasis on the qualitative structure of phase space. We use computational ideas to formulate the principles of mechanics precisely. Expression in a computational framework encourages clear thinking and active exploration.

Our presentation is unusual in that computation underlies our understanding of the mathematical ideas used to express mechanics. We make our mathematical notations explicit and precise enough that they can be interpreted automatically by a computer. As a consequence of this requirement the formulas and equations stand on their own. They have clear meaning, independent of any informal context.

We plan to consider the following topics: The Lagrangian formulation. Action, variational principles, and equations of motion. Hamilton's principle. Conserved quantities. Hamiltonian formulation and canonical equations. Surfaces of section. Chaos. Canonical transformations and generating functions. Hamilton-Jacobi theory, Liouville's theorem and Poincaré integral invariants. Canonical perturbation theory. Poincaré-Birkhoff and KAM theorems. Invariant curves. Nonlinear resonances. Resonance overlap and transition to chaos. Properties of chaotic motion.

Ideas will be illustrated and supported with physical examples. We will make extensive use of computing to capture methods, for simulation, and for symbolic analysis.

This subject awards G-LEVEL Graduate Credit, however the subject is appropriate for undergraduates who have the prerequisite experience. Undergraduates are welcome.

Prerequisites: 8.01, 18.03, programming experience

Lectures: MWF at 1400EDT (2:00PM EDT), Online: see below Computer Lab: Wednesday evenings, 1900-2200 EDT (7--10 PM EDT), Online Units: 3-3-6

Instructions for attending the online class are here

Teaching plan:

Professors Jack Wisdom (EAPS) and Gerald Jay Sussman will teach this class entirely online, with synchronous lectures on Monday, Wednesday, and Friday at 1400--1500 EDT (2:00PM--3:00PM). We will run our evening laboratory, each Wednesday from 1900--2200 EDT (7:00PM--10:00PM). We expect students to actively participate in all of the meetings, so it may be difficult for students who are in some time zones. If a significant number of students want the hours to be modified, we will be happy to adjust, as appropriate, (one advantage of online teaching is that there is not a problem with allocating a classroom!) The times can be renegotiated by the class in the first few meetings of the term.

We also invite students individually and in groups to drop in (online) to discuss problems with us at other times. We will try to make ourselves very accessible in these strange circumstances.

Grades:

This is an advanced class. There are no quizzes. Grades are entirely determined by the work that students do in weekly problem sets, attendance and participation in the class and in the laboratory, and some more extensive projects. In the evening laboratory we hang out with the students, engage in discussions, and we try to help with the weekly work. We encourage students to work together and help each other learn the material, but each student must prepare an individual report on the work done on the problem sets and projects. Each student must report on the help that they gave to and received from other students.

Textbook:

Structure and Interpretation of Classical Mechanics, second edition, MIT Press, 2014, ISBN: 978-0-262-02896-7

Structure and Interpretation of Classical Mechanics (HTML free!), second edition

Errata for the Mechanics Book, second edition .

Class Organization:

Red Tape Memo

Assignments

Other Resources:

Structure and Interpretation of Computer Programs, second edition (HTML)

Don't Panic!: A guide for the perplexed (software setup).

Beginner notes

Edwin cheat sheet

Scmutils manual

Graphing notes

Software:

If you want to install the software on your personal computers see here.

We also make our software available on Athena.

Because our laboratory will be online this year (UGH!) we are also developing a special collaborative software system that we will use in the lab!

Plug for our other book, not needed for this class:

Our MIT Press book on differential geometry!

Software for Differential Geometry:

This software is now automatically part of our mechanics system, available above.


Accessibility
This page contains no speech, video, or music.
Accessibility
MASSACHVSETTS INSTITVTE OF TECHNOLOGY  
Joint Subject Offering: 6.946J, 8.351J, 12.620J 
Classical Mechanics:
A Computational Approach  
 
Jack Wisdom, wisdom@mit.edu, 54-414, x3-7730 
Gerald Jay Sussman, gjs@mit.edu, 32G-514, x3-5874
 
 Kenny Chen, kclisp@mit.edu, will assist us this term.
 
 
 
Content:
 
We study the fundamental principles of classical mechanics, with
a modern emphasis on the qualitative structure of phase space. We
use computational ideas to formulate the principles of mechanics
precisely. Expression in a computational framework encourages clear
thinking and active exploration.
Our presentation is unusual in that computation underlies our
understanding of the mathematical ideas used to express mechanics. We
make our mathematical notations explicit and precise enough that they
can be interpreted automatically by a computer. As a consequence of
this requirement the formulas and equations stand on their own. They
have clear meaning, independent of any informal context.
We plan to consider the following topics: The Lagrangian formulation.
Action, variational principles, and equations of motion. Hamilton's
principle. Conserved quantities. Hamiltonian formulation and
canonical equations. Surfaces of section. Chaos. Canonical
transformations and generating functions. Hamilton-Jacobi theory,
Liouville's theorem and Poincaré integral invariants. Canonical
perturbation theory. Poincaré-Birkhoff and KAM theorems. Invariant
curves. Nonlinear resonances. Resonance overlap and transition to
chaos. Properties of chaotic motion.
Ideas will be illustrated and supported with physical examples. We
will make extensive use of computing to capture methods, for
simulation, and for symbolic analysis.
This subject awards G-LEVEL Graduate Credit, however the subject
is appropriate for undergraduates who have the prerequisite experience.
Undergraduates are welcome.
Prerequisites: 8.01, 18.03, programming experience
Lectures: MWF at 1400EDT (2:00PM EDT), Online: see below
Computer Lab: Wednesday evenings, 1900-2200 EDT (7--10 PM EDT), Online
Units: 3-3-6
 Instructions for attending the online class are
  here 
 
Teaching plan:
 
Professors Jack Wisdom (EAPS) and Gerald Jay Sussman will teach
this class entirely online, with synchronous lectures on Monday,
Wednesday, and Friday at 1400--1500 EDT (2:00PM--3:00PM). We
will run our evening laboratory, each Wednesday from 1900--2200
EDT (7:00PM--10:00PM). We expect students to actively
participate in all of the meetings, so it may be difficult for
students who are in some time zones. If a significant number of
students want the hours to be modified, we will be happy to
adjust, as appropriate, (one advantage of online teaching is that
there is not a problem with allocating a classroom!) The times
can be renegotiated by the class in the first few meetings of the
term.
We also invite students individually and in groups to drop in
(online) to discuss problems with us at other times. We will try
to make ourselves very accessible in these strange circumstances.
 
Grades:
 
This is an advanced class. There are no quizzes. Grades are entirely
determined by the work that students do in weekly problem sets,
attendance and participation in the class and in the laboratory, and
some more extensive projects. In the evening laboratory we hang out
with the students, engage in discussions, and we try to help with the
weekly work. We encourage students to work together and help each
other learn the material, but each student must prepare an individual
report on the work done on the problem sets and projects. Each
student must report on the help that they gave to and received from
other students.
 
Textbook: 
 
Structure and Interpretation of Classical Mechanics, second edition,
MIT Press, 2014, ISBN: 978-0-262-02896-7
 
Structure and Interpretation of Classical Mechanics (HTML free!), second edition
 
Errata for the Mechanics Book, second edition . 
 
 
Class Organization: 
 
Red Tape Memo
Assignments
 
Other Resources: 
 
Structure and Interpretation of Computer Programs, second edition (HTML) 
 Don't Panic!: A guide for the perplexed (software setup).
Beginner notes
Edwin cheat sheet
Scmutils manual
Graphing notes
 Software:
If you want to install the software on your personal computers 
see  here. 
We also make our software available on Athena.
Because our laboratory will be online this year (UGH!) we are also developing
a special collaborative software system that we will use in the lab!
 
Plug for our other book, not needed for this class: 
 
Our MIT Press book on differential geometry!
Software for Differential Geometry:
This software is now automatically part of our mechanics system, available above.
Classical Mechanics: A Computational Approach
http://groups.csail.mit.edu/mac/users/gjs/6946/index.html