This repository has been archived by the owner on Jan 17, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 74
/
links.shtml.htm
232 lines (193 loc) · 32 KB
/
links.shtml.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<!DOCTYPE html>
<html>
<head>
<!--
Copyright notice:
This file and all linked documents are, unless otherwise specified, authored by Marty Stepp and/or Stanford University, and may not be copied, redistributed, or modified without explicit permission of the course instructor.
-->
<title>CS 193A: Android Application Development - Links</title>
<meta charset="utf-8" />
<meta name="author" content="Marty Stepp" />
<meta name="description" content="Course web site for CS 193A, a course on Android app development." />
<meta name="keywords" content="Marty Stepp, CS 193A, Stanford University, computer science, Android, Java, app" />
<meta name="HandheldFriendly" content="true" />
<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no" />
<meta id="WEEK1_SUN" name="WEEK1_SUN" content="Jan 4 2015 12:00 AM" />
<!-- stop the web browser from ever caching this page or its images -->
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<link href="style.css" tppabs="http://web.stanford.edu/class/cs193a/style.css" type="text/css" rel="stylesheet" />
<link href="images/stanford-favicon.png" type="image/png" rel="shortcut icon" />
<link href="images/stanford-favicon.png" type="image/png" rel="icon" />
<script src="../../../ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js" tppabs="http://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js" type="text/javascript"></script>
<script src="../../../ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/scriptaculous.js" tppabs="http://ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/scriptaculous.js" type="text/javascript"></script>
<script src="sorttable.js" tppabs="http://web.stanford.edu/class/cs193a/sorttable.js" type="text/javascript"></script>
<script src="cs.js" tppabs="http://web.stanford.edu/class/cs193a/cs.js" type="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="header" class="contentsection">
<div class="titles">
<div class="logo">
<a href="javascript:if(confirm(%27http://www.cs.stanford.edu/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.cs.stanford.edu/%27" tppabs="http://www.cs.stanford.edu/"><img src="images/stanford-cs-logo.png.jpg" tppabs="http://web.stanford.edu/class/cs193a/images/stanford-cs-logo.png" alt="Stanford CS logo" /></a>
</div>
<h1>
CS 193A: Android App Development <br />
Winter 2015
</h1>
</div>
</div>
<hr class="stanfordhr1" />
<hr class="stanfordhr2" />
<div id="sidebar">
<ul>
<li><a href="index.shtml.htm" tppabs="http://web.stanford.edu/class/cs193a/index.shtml"><img src="images/home_icon.png" tppabs="http://web.stanford.edu/class/cs193a/images/home_icon.png" class="sidebaricon" alt="main" /> Home</a></li>
<li><a href="handouts/course-information.pdf" tppabs="http://web.stanford.edu/class/cs193a/handouts/course-information.pdf"><img src="images/syllabus_icon.png" tppabs="http://web.stanford.edu/class/cs193a/images/syllabus_icon.png" class="icon" alt="icon" /> Course Info</a></li>
<li><a href="lectures.shtml.htm" tppabs="http://web.stanford.edu/class/cs193a/lectures.shtml"><img src="images/lectures_icon.png" tppabs="http://web.stanford.edu/class/cs193a/images/lectures_icon.png" class="sidebaricon" alt="lectures" /> Lectures</a></li>
<li><a href="homework.shtml.htm" tppabs="http://web.stanford.edu/class/cs193a/homework.shtml"><img src="images/homework_icon.png" tppabs="http://web.stanford.edu/class/cs193a/images/homework_icon.png" class="sidebaricon" alt="homework" /> Homework</a></li>
<li><a class="popup" href="javascript:if(confirm(%27https://piazza.com/class/i43gbjj4o0w6as \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://piazza.com/class/i43gbjj4o0w6as%27" tppabs="https://piazza.com/class/i43gbjj4o0w6as"><img src="images/piazza-icon.png" tppabs="http://web.stanford.edu/class/cs193a/images/piazza-icon.png" class="sidebaricon" alt="message board" /> Piazza</a></li>
<li><a href="working-at-home.shtml.htm" tppabs="http://web.stanford.edu/class/cs193a/working-at-home.shtml"><img src="images/working_at_home_icon.png" tppabs="http://web.stanford.edu/class/cs193a/images/working_at_home_icon.png" class="sidebaricon" alt="working at home" /> Work@Home</a></li>
<li><a href="videos.shtml.htm" tppabs="http://web.stanford.edu/class/cs193a/videos.shtml"><img src="images/icon_yt.png" tppabs="http://web.stanford.edu/class/cs193a/images/icon_yt.png" class="sidebaricon" alt="icon" /> Videos</a></li>
<li><a href="links.shtml.htm" tppabs="http://web.stanford.edu/class/cs193a/links.shtml"><img src="images/links_icon.png" tppabs="http://web.stanford.edu/class/cs193a/images/links_icon.png" class="sidebaricon" alt="links" /> Links</a></li>
<li><a class="popup" href="javascript:if(confirm(%27https://developer.android.com/reference/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://developer.android.com/reference/%27" tppabs="https://developer.android.com/reference/"><img src="images/icon_android.gif" tppabs="http://web.stanford.edu/class/cs193a/images/icon_android.gif" class="sidebaricon" alt="api" /> API</a></li>
</ul>
<!--
<li><a class="popup" href="http://stanford.edu/~stepp/cppdoc/"><img src="images/stanford-favicon.png" class="icon" alt="icon" /> <strong>Stanford C++ Lib</strong></a></li>
<li><a class="popup" href="http://www.cppreference.com/"><img src="images/icon_cppreference.gif" class="icon" alt="icon" /> CppReference.com</a></li>
<li><a class="popup" href="http://www.cplusplus.com/reference/"><img src="images/icon_cplusplus.gif" class="icon" alt="icon" /> CPlusPlus.com</a></li>
<li><a href="styleguide.shtml"><img src="images/gradeit_icon.gif" class="icon" alt="icon" /> 193A Style Guide</a></li>
-->
</div>
</div>
<noscript>
<div class="error">
<p>
ERROR: This site requires JavaScript in order to function properly.
You seem to be using a web browser that does not support JavaScript, or you may have a JavaScript blocker such as NoScript installed in your browser.
In order to use this course web site, you must enable JavaScript in your browser for this site.
</p>
</div>
</noscript>
<div class="centerpane">
<h2>Links</h2>
<p>
This page has various useful links about our course material and about computer science.
Do you know a good link that is missing from our list? Email it to us!
</p>
<h3 id="android">Devices:</h3>
<p>
If you want a physical Android device to develop on, but don't currently own one, there are lots of inexpensive ones you can purchase.
I personally recommend buying a tablet rather than a phone, because Android phones tend to cost a LOT of money if you buy them without an actual cell phone contract.
Here are some links to Android devices that I have personally bought and verified that they work for installing your own developed Android apps:
</p>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://www.amazon.com/gp/product/B00N2QBMFQ/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.amazon.com/gp/product/B00N2QBMFQ/%27" tppabs="http://www.amazon.com/gp/product/B00N2QBMFQ/">Dragon Touch Y88X 7" tablet</a> (~$55 Amazon)</li>
<li><a class="popup" href="javascript:if(confirm(%27https://www.amazon.com/gp/product/B00JAIEAU4/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://www.amazon.com/gp/product/B00JAIEAU4/%27" tppabs="https://www.amazon.com/gp/product/B00JAIEAU4/">Lenovo IdeaTab A8-50 8-Inch 16 GB Tablet</a> (~$135 Amazon)</li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.amazon.com/Samsung-Galaxy-Tab-7-Inch-White/dp/B00J8DL78O/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.amazon.com/Samsung-Galaxy-Tab-7-Inch-White/dp/B00J8DL78O/%27" tppabs="http://www.amazon.com/Samsung-Galaxy-Tab-7-Inch-White/dp/B00J8DL78O/">Samsung Galaxy Tab 4 (7-Inch)</a> (~$157 Amazon)</li>
</ul>
<h3 id="android">Books:</h3>
<p>
This course doesn't have any textbook.
But if you feel like buying a physical book to learn more about Android, here are two that we recommend:
</p>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://www.amazon.com/Android-Programming-Ranch-Guide-Guides/dp/0321804333/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.amazon.com/Android-Programming-Ranch-Guide-Guides/dp/0321804333/%27" tppabs="http://www.amazon.com/Android-Programming-Ranch-Guide-Guides/dp/0321804333/">Android Programming: The Big Nerd Ranch Guide</a>, by Bill Phillips and Brian Hardy</li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.amazon.com/Professional-Android-Application-Development-Meier/dp/1502311135/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.amazon.com/Professional-Android-Application-Development-Meier/dp/1502311135/%27" tppabs="http://www.amazon.com/Professional-Android-Application-Development-Meier/dp/1502311135/">Professional Android Application Development</a>, by Reto Meier</li>
</ul>
<h3 id="android">Android:</h3>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27https://www.genymotion.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://www.genymotion.com/%27" tppabs="https://www.genymotion.com/">Genymotion</a>, a faster Android emulator</li>
<li><a class="popup" href="javascript:if(confirm(%27https://developer.android.com/training/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://developer.android.com/training/%27" tppabs="https://developer.android.com/training/">Google Android Developer Docs</a></li>
<li><a class="popup" href="javascript:if(confirm(%27https://developer.android.com/reference/packages.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://developer.android.com/reference/packages.html%27" tppabs="https://developer.android.com/reference/packages.html">Android API Reference</a></li>
<li><a class="popup" href="javascript:if(confirm(%27https://developer.android.com/sdk/installing/create-project.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://developer.android.com/sdk/installing/create-project.html%27" tppabs="https://developer.android.com/sdk/installing/create-project.html">Google Android Developer Docs: Installing Android Studio</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://developer.android.com/design/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://developer.android.com/design/%27" tppabs="http://developer.android.com/design/">Google Android Developer Docs: UI Design</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.anddev.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.anddev.org/%27" tppabs="http://www.anddev.org/">anddev.org - Android Development Forum</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://android-developers.blogspot.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://android-developers.blogspot.com/%27" tppabs="http://android-developers.blogspot.com/">Android Developers Blog - Blogspot</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://mobiforge.com/design-development/android \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://mobiforge.com/design-development/android%27" tppabs="http://mobiforge.com/design-development/android">Mobiforge - Android Design and Development</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.droiddraw.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.droiddraw.org/%27" tppabs="http://www.droiddraw.org/">DroidDraw</a> (draw an Android UI in your web browser)</li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.droiddraw.org/widgetguide.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.droiddraw.org/widgetguide.html%27" tppabs="http://www.droiddraw.org/widgetguide.html">DroidDraw - Visual Index to the Android Widgets</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://thinkandroid.wordpress.com/2010/01/14/how-to-position-views-properly-in-layouts/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://thinkandroid.wordpress.com/2010/01/14/how-to-position-views-properly-in-layouts/%27" tppabs="http://thinkandroid.wordpress.com/2010/01/14/how-to-position-views-properly-in-layouts/">ThinkAndroid - How to Position Views Properly in Layouts</a></li>
</ul>
<h3 id="java">Java Programming:</h3>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://docs.oracle.com/javase/7/docs/api/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://docs.oracle.com/javase/7/docs/api/%27" tppabs="http://docs.oracle.com/javase/7/docs/api/">Oracle's Java documentation</a></li>
<li><a href="javascript:if(confirm(%27http://web.stanford.edu/class/cs193a/styleguide.shtml \n\nThis file was not retrieved by Teleport Pro, because it is linked too far away from its Starting Address. If you increase the in-domain depth setting for the Starting Address, this file will be queued for retrieval. \n\nDo you want to open it from the server?%27))window.location=%27http://web.stanford.edu/class/cs193a/styleguide.shtml%27" tppabs="http://web.stanford.edu/class/cs193a/styleguide.shtml">CS 106A Style Guide</a> (guidelines for coding style and design that we want you to follow on your homework)</li>
<li><a class="popup" href="javascript:if(confirm(%27https://web.archive.org/web/20130722144814/http://www.oracle.com/technetwork/java/codeconvtoc-136057.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://web.archive.org/web/20130722144814/http://www.oracle.com/technetwork/java/codeconvtoc-136057.html%27" tppabs="https://web.archive.org/web/20130722144814/http://www.oracle.com/technetwork/java/codeconvtoc-136057.html">Official Oracle Java coding conventions</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://google-styleguide.googlecode.com/svn/trunk/javaguide.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://google-styleguide.googlecode.com/svn/trunk/javaguide.html%27" tppabs="http://google-styleguide.googlecode.com/svn/trunk/javaguide.html">Google's Java style guide</a></li>
<li><a href="javascript:if(confirm(%27http://web.stanford.edu/class/cs193a/styleguide.shtml \n\nThis file was not retrieved by Teleport Pro, because it is linked too far away from its Starting Address. If you increase the in-domain depth setting for the Starting Address, this file will be queued for retrieval. \n\nDo you want to open it from the server?%27))window.location=%27http://web.stanford.edu/class/cs193a/styleguide.shtml%27" tppabs="http://web.stanford.edu/class/cs193a/styleguide.shtml">CS 193A Style Guide</a> (guidelines for coding style and design that we want you to follow on your homework)</li>
</ul>
<h3 id="news">Current Events and News:</h3>
<ul>
<li>(2015-02-22) <a class="popup" href="javascript:if(confirm(%27http://droid-toolbox.com/news \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://droid-toolbox.com/news%27" tppabs="http://droid-toolbox.com/news">Android Development News</a> (a collection of links and current events about Android development)</li>
<li>(2015-02-09) <a class="popup" href="javascript:if(confirm(%27http://www.mscharhag.com/2015/02/creating-android-apps-with-groovy.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.mscharhag.com/2015/02/creating-android-apps-with-groovy.html%27" tppabs="http://www.mscharhag.com/2015/02/creating-android-apps-with-groovy.html">Creating Android Apps with Groovy</a> (a new programming language that is an offshoot of Java)</li>
<li>(2015-01-28) <a class="popup" href="javascript:if(confirm(%27http://arstechnica.com/gadgets/2015/01/signs-of-progress-one-month-with-android-wear-5-0/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://arstechnica.com/gadgets/2015/01/signs-of-progress-one-month-with-android-wear-5-0/%27" tppabs="http://arstechnica.com/gadgets/2015/01/signs-of-progress-one-month-with-android-wear-5-0/">Ars Technica: Signs of progress: One month with Android Wear 5.0</a> (a review of Android watches)</li>
<li>(2015-01-17) <a class="popup" href="javascript:if(confirm(%27http://arstechnica.com/security/2015/01/google-wont-fix-bug-hitting-60-percent-of-android-phones/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://arstechnica.com/security/2015/01/google-wont-fix-bug-hitting-60-percent-of-android-phones/%27" tppabs="http://arstechnica.com/security/2015/01/google-wont-fix-bug-hitting-60-percent-of-android-phones/">Ars Technica: Google won’t fix bug hitting 60 percent of Android phones</a></li>
<li>(2015-01-12) <a class="popup" href="javascript:if(confirm(%27http://blogs.wsj.com/digits/2015/01/12/google-not-fixing-some-old-android-bugs/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://blogs.wsj.com/digits/2015/01/12/google-not-fixing-some-old-android-bugs/%27" tppabs="http://blogs.wsj.com/digits/2015/01/12/google-not-fixing-some-old-android-bugs/">WSJ Blog: Google decides to stop fixing security bugs in Android 4.3 web browser</a></li>
<li>(2015-01-08) <a class="popup" href="javascript:if(confirm(%27http://www.zdnet.com/article/android-lollipop-is-out-but-almost-no-one-is-using-it/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.zdnet.com/article/android-lollipop-is-out-but-almost-no-one-is-using-it/%27" tppabs="http://www.zdnet.com/article/android-lollipop-is-out-but-almost-no-one-is-using-it/">ZDNet: Android Lollipop is out, but almost no one is using it</a></li>
<li>(2015-01-01) <a class="popup" href="javascript:if(confirm(%27http://www.reddit.com/r/android \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.reddit.com/r/android%27" tppabs="http://www.reddit.com/r/android">Reddit /r/android - links and news about Android</a></li>
</ul>
<h3 id="past193a">Past 193A web sites:</h3>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://web.stanford.edu/class/archive/cs/cs193a/cs193a.1122/ \n\nThis file was not retrieved by Teleport Pro, because it is linked too far away from its Starting Address. If you increase the in-domain depth setting for the Starting Address, this file will be queued for retrieval. \n\nDo you want to open it from the server?%27))window.location=%27http://web.stanford.edu/class/archive/cs/cs193a/cs193a.1122/%27" tppabs="http://web.stanford.edu/class/archive/cs/cs193a/cs193a.1122/">2011 Fall (Nick Parlante)</a></li>
</ul>
<h3 id="software">Software:</h3>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://get.adobe.com/reader/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://get.adobe.com/reader/%27" tppabs="http://get.adobe.com/reader/">Adobe Acrobat Reader</a> or <a class="popup" href="javascript:if(confirm(%27http://www.foxitsoftware.com/pdf/rd_intro.php \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.foxitsoftware.com/pdf/rd_intro.php%27" tppabs="http://www.foxitsoftware.com/pdf/rd_intro.php">Foxit Reader</a> (to view PDF documents)</li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.gimp.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.gimp.org/%27" tppabs="http://www.gimp.org/">GIMP</a> (free image editor)</li>
<li><a class="popup" href="javascript:if(confirm(%27http://rg3.github.io/youtube-dl/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://rg3.github.io/youtube-dl/%27" tppabs="http://rg3.github.io/youtube-dl/">youtube-dl</a> and <a class="popup" href="javascript:if(confirm(%27https://www.ffmpeg.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed using an unsupported protocol (e.g., gopher). \n\nDo you want to open it from the server?%27))window.location=%27https://www.ffmpeg.org/%27" tppabs="https://www.ffmpeg.org/">ffmpeg</a> (software for downloading/converting media)</li>
<!--
<li><a class="popup" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=428d5727-43ab-4f24-90b7-a94784af71a4&displaylang=en">Microsoft PowerPoint Viewer</a> (a free viewer so you can see the lecture slides)</li>
<li><a class="popup" href="http://www.openoffice.org/">OpenOffice.org</a> (free office software that is compatible with Microsoft Office)</li>
<li><a class="popup" href="http://www.grigsoft.com/download-windiff.htm">WinDiff</a> (compares text files on Windows)</li>
<li><a class="popup" href="http://www.google.com/chrome/">Chrome</a> web browser</li>
<li><a class="popup" href="http://www.getfirefox.com/">Firefox</a> web browser</li>
<li><a class="popup" href="http://www.sublimetext.com/">Sublime Text</a> text editor for Windows / Mac / Linux</li>
<li><a class="popup" href="http://notepad-plus-plus.org/">Notepad++</a> text editor for Windows</li>
-->
</ul>
<h3 id="csmajor">Computer Science Major:</h3>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://csmajor.stanford.edu/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://csmajor.stanford.edu/%27" tppabs="http://csmajor.stanford.edu/">Stanford Computer Science Major information</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.cs.colorado.edu/why/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.cs.colorado.edu/why/%27" tppabs="http://www.cs.colorado.edu/why/">University of Colorado - Why Computer Science?</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.stanford.edu/group/wics/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.stanford.edu/group/wics/%27" tppabs="http://www.stanford.edu/group/wics/">WICS: Women in Computer Science</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://sheplusplus.stanford.edu/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://sheplusplus.stanford.edu/%27" tppabs="http://sheplusplus.stanford.edu/">she++: Inspiring women to empower computer science</a></li>
<li>
<a class="popup" href="javascript:if(confirm(%27http://www.girlsteachinggirlstocode.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.girlsteachinggirlstocode.org/%27" tppabs="http://www.girlsteachinggirlstocode.org/">Girls Teaching Girls to Code</a>:
a program where Stanford Women in Computer Science & Engineering teach, mentor, and inspire Bay Area high school girls
</li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.girlgeeks.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.girlgeeks.org/%27" tppabs="http://www.girlgeeks.org/">GirlGeeks</a> (inspiring women in computing)</li>
</ul>
<h3 id="online">Further Learning Online:</h3>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://codecademy.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://codecademy.com/%27" tppabs="http://codecademy.com/">Codecademy</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.coursera.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.coursera.org/%27" tppabs="http://www.coursera.org/">Coursera</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.udacity.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.udacity.com/%27" tppabs="http://www.udacity.com/">Udacity</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://code.org/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://code.org/%27" tppabs="http://code.org/">Code.org</a></li>
</ul>
<h3 id="other">Other Miscellaneous Links (not directly course-related):</h3>
<ul>
<li><a class="popup" href="javascript:if(confirm(%27http://catb.org/~esr/jargon/html/frames.html \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://catb.org/~esr/jargon/html/frames.html%27" tppabs="http://catb.org/~esr/jargon/html/frames.html">Hacker's Dictionary</a></li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.buildingjavaprograms.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.buildingjavaprograms.com/%27" tppabs="http://www.buildingjavaprograms.com/"><em>Building Java Programs</em>, Marty Stepp's Java textbook</a> (shameless PageRank boost!)</li>
<li><a class="popup" href="javascript:if(confirm(%27http://www.webstepbook.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?%27))window.location=%27http://www.webstepbook.com/%27" tppabs="http://www.webstepbook.com/"><em>Web Programming Step by Step</em>, Marty Stepp's web programming textbook</a> (shameless PageRank boost!)</li>
</ul>
<div id="w3c">
<div class="copyrightnotice">
This document and its content are copyright © Marty Stepp, 2015.
All rights reserved.
Any redistribution, reproduction, transmission, or storage of part or all of the contents in any form is prohibited without the authors' expressed written permission.
</div>
</div>
</div>
</div>
<script>
// Google Analytics
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','../../../www.google-analytics.com/analytics.js'/*tpa=http://www.google-analytics.com/analytics.js*/,'ga');
ga('create', 'UA-2729135-9', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>