-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathsyllabus-2016-2017.html
More file actions
157 lines (157 loc) · 8.25 KB
/
Copy pathsyllabus-2016-2017.html
File metadata and controls
157 lines (157 loc) · 8.25 KB
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
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>CS 4970 & CS 4971: Service Learning Practicum (SLP)</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
<link rel="stylesheet" href="../../markdown.css" />
</head>
<body>
<main>
<h1 id="cs-4970-cs-4971-service-learning-practicum-slp">CS 4970 & CS
4971: Service Learning Practicum (SLP)</h1>
<p><a href="index.html">Go up to the main UVa page</a> (<a
href="index.md">md</a>)</p>
<p>This syllabus applies two two courses: CS 4970 in the fall of 2016
(called “Capstone Practicum I”) and CS 4971 in the spring of 2017
(called “Capstone Practicum II”).</p>
<h3
id="fall-2016-and-spring-2017-httpsgithub.comaaronbloomfieldslp">Fall
2016 and Spring 2017, <a
href="https://github.com/aaronbloomfield/slp/">https://github.com/aaronbloomfield/slp/</a></h3>
<h3 id="fall-2016-mwf-1200-1250-rice-130">Fall 2016: M/W/F 12:00-12:50,
Rice 130</h3>
<h3 id="spring-2017-mwf-1000-1050-rice-130">Spring 2017: M/W/F
10:00-10:50, Rice 130</h3>
<p><strong>Instructor:</strong> <a
href="http://www.cs.virginia.edu/~asb">Aaron Bloomfield</a> / <a
href="mailto:aaron@virginia.edu">aaron@virginia.edu</a> / <a
href="http://twitter.com/bloomfieldaaron">@bloomfieldaaron</a>. Office
is Rice Hall, room 403. Office hours TBA.</p>
<p><strong>Course Description:</strong> The Service Learning Practicum
course involves the application of software engineering and computing
principles to the development of a complete software system for
non-profit organizations in our community. Students will be expected to
work through the entire software system development process, including
customer interfacing for requirements, detailed design, and a
comprehensive maintenance plan.</p>
<p><strong>Pre-requisites:</strong> CS 4970 requires CS 2150 with a
grade of C- or above. Ideally you have taken (or are taking) 3240
(Advanced Software Development) or CS 4240 (Object Oriented Design), but
those are not required. Instructor permission is required to enroll in
the course, however. CS 4971 requires CS 4970 as a pre-requisite.</p>
<p><strong>Course objectives:</strong> Students who complete the course
sequence will:</p>
<ul>
<li>Have gained experience with the development of large software
projects through all phases from inception through development, testing,
deployment, and maintenance</li>
<li>Be able to design a customized development methodology for a
particular project with given specifications</li>
<li>Understand customer interaction for a software development
project</li>
<li>Understand proper documentation generation for a software
development project</li>
<li>Be able to properly generate, use, and understand the importance of
various artifacts: use cases, requirements documents, etc.</li>
</ul>
<p><strong>Meetings:</strong> This course is a practicum, and not a
primarily lecture-based course. Thus, the course meetings will be quite
different. On a typical week, there will be a group meeting day in class
on Monday, a lecture on Wednesday, and no class on Friday. Note that
there will be some weeks where we will have classes on Wednesdays and/or
Fridays, such as the first few weeks of the fall semester. In addition,
once groups are assigned (late September), each group will have to meet
with the customer once every 2 weeks (for about 1 hour), and will have a
SEPARATE meeting with the course instructor or graduate teaching
assistant once every 2 weeks (for about 30 minutes).</p>
<p><strong>Connectivity:</strong> While using electronic devices during
class that are not directly course related (i.e., social media) is
strongly discouraged, you will need to have <em>some</em> means of
connecting to the Internet during lecture. This can be a laptop, smart
phone, or anything else that can log into a website.</p>
<p><strong>Participation:</strong> Participation is vital to this
course. You must participate in the lecture (i.e., by attending) and in
your project and group meetings. You must participate in the work of the
group – this means that <strong>everybody</strong> must contribute to
the <em>code base</em>. Furthermore, you will be required to fill out
occassional surveys (4-5 a semester) and complete your time
tracking.</p>
<p><strong>Grades:</strong> See the <a
href="course-introduction-fall.html#/">first slide set</a> for details
(specifically <a href="course-introduction-fall.html#/grades">here</a>).
This course is not being graded on a bell curve, which means that
everybody could receive an A. Likewise, everybody could receive a D. Any
disagreement with any of the returned grades, including iteration
evaluations, must be brought up within two weeks of when the grade was
returned. Failure to produce a viable and working software system – in
either December (for CS 4970) or May (for CS 4971) – will result in
either an <strong>incomplete or failure for the entire group</strong>.
Note that for the 4th year BS CS majors, this will prevent May
graduation. Lastly, note that the grades for CS 4970 in the fall, and CS
4971 in the spring, are completely independent.</p>
<p><strong>Special Circumstances:</strong> Students with special
circumstances (athletics, extra time required on exams, LNEC
considerations, etc.) need to let me know during the <strong>first week
of class</strong>.</p>
<p><strong>Textbooks:</strong> None; however, you may still have to
purchase something (see the Github section, below).</p>
<p><strong>Assignments:</strong> For the first few weeks, there will be
individual homeworks, about 1 per week. Once the projects are assigned
in late September, the rest of the assignments will effectively be
project milestones.</p>
<p><strong>Exams:</strong> None planned. I reserve the write to add one
if I feel like I want to spend some time grading. There may be an
individual project in lieu of the final exam.</p>
<p><strong>Github:</strong> We will be using <a
href="https://github.com">github</a> for source code management. The
projects will be kept in private repositories, which will be provided to
you at no cost. However, for your individual homeworks, you will need to
acquire 2 private repositories. Students can get those for free,
although you must give them a week or so to process your request. If you
have used all of yours, or if you wait until the last minute to request
your free private repos, then you will have to purchase some. The
private repos will need to be kept intact until the assignment is graded
and returned.</p>
<p><strong>Time Tracking:</strong> Each student must keep very careful
track of the number of hours s/he works on the project. This must be
totaled by week. This is not expect to take very long to do (say, 2
minutes each week), but must be done carefully from the beginning of the
course. More information on this in the first lecture.</p>
<p><strong>Miscellaneous:</strong> There are a few miscellaneous
topics:</p>
<ul>
<li>There will be a Collab workspace for this course, although it will
not be used much. Primarily it will be used to provide a download
location for various files, such as lecture recordings.</li>
<li>Much of the course administration will be handled through a custom
website at <a
href="https://slp.cs.virginia.edu/admin">https://slp.cs.virginia.edu/admin</a>.
Project leads will be required to submit their reports through this
system, secretaries will be required to take notes through this system,
and this will be the how grades are returned.</li>
</ul>
<p><strong>Honor Policy:</strong> Standard UVa honor policy. For this
course, that means not using other code without appropriate
attribution.</p>
</main>
</body>
</html>