PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/syllabus.tex

https://bitbucket.org/seshness/open-source-decal-fall-2011/
LaTeX | 238 lines | 177 code | 53 blank | 8 comment | 0 complexity | 5967f8981dd0b9cf8897c304f225cd2b MD5 | raw file
  1. %% LyX 1.6.8 created this file. For more info, see http://www.lyx.org/.
  2. %% Do not edit unless you really know what you are doing.
  3. \documentclass[english]{article}
  4. \usepackage[T1]{fontenc}
  5. \usepackage[latin9]{inputenc}
  6. \usepackage{babel}
  7. \usepackage{array}
  8. \usepackage{url}
  9. \usepackage[unicode=true, pdfusetitle,
  10. bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
  11. breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
  12. {hyperref}
  13. \makeatletter
  14. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
  15. %% Because html converters don't know tabularnewline
  16. \providecommand{\tabularnewline}{\\}
  17. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
  18. \usepackage{layout}
  19. \usepackage[parfill]{parskip}
  20. \usepackage[margin=1in]{geometry}
  21. \geometry{letterpaper}
  22. \usepackage{fancyhdr}
  23. \setlength{\headheight}{15.2pt}
  24. \pagestyle{fancy}
  25. \rhead{opensourcedecal-fa11@googlegroups.com}
  26. \lhead{Course Syllabus}
  27. % \rhead{Monday 6-8pm}
  28. \cfoot{https://bitbucket.org/seshness/open-source-decal-fall-2011}
  29. \usepackage{graphicx} %loads the graphicx.sty package
  30. \usepackage{epstopdf} %loads the epstopdf.sty package
  31. % to automatically convert eps files to pdf format
  32. % the next line converts tif files to png
  33. \DeclareGraphicsRule{.tif}{png}{.png}{%
  34. `convert #1 `dirname #1`/`basename #1 .tif`.png}
  35. \usepackage{array}
  36. \setlength{\extrarowheight}{5pt}
  37. \makeatother
  38. \begin{document}
  39. \title{Introduction to Open Source Software}
  40. \author{\textbf{Facilitators:} Seshadri Mahalingam, Kevin Porter, Anirudh
  41. Todi\textbf{, }Karan Malik\textbf{}\\
  42. \textbf{Intructor of Record: }David Wagner}
  43. \date{Fall 2011}
  44. \maketitle
  45. \part*{Course Syllabus}
  46. \section{Course Goals}
  47. This course aims to provide a community and a lecture series for students
  48. to learn the skills they will need to contribute to open-source projects,
  49. and large scale software engineering projects in general. If you have
  50. ever been interested in joining an open source project but felt that
  51. the barrier to entry was too high, this DeCal is for you!\\
  52. \\
  53. Projects will be worked on in groups of two or more people. This
  54. being the second iteration of the Open Source DeCal, we welcome suggestions,
  55. input and feedback on the structure and content of the course. Email
  56. us at \url{opensourcedecal-facilitators@googlegroups.com} if you
  57. have any queries/questions about the course.
  58. \section{Suggested Prerequisites}
  59. You\textquoteright{}ll get the most of out of this class if you\textquoteright{}re
  60. familiar with at least one language used for open source development
  61. (Python, Perl, PHP, Java, C++, C, Ruby and many more) to a \href{http://inst.eecs.berkeley.edu/~cs61b}{CS 61B(L)}
  62. level. This course will tend towards technical contribution, but those
  63. interested in contributing in design or user experience areas are
  64. welcome too.
  65. \section{Application}
  66. To apply for enrollment into the decal, visit the course website
  67. \url{https://bitbucket.org/seshness/open-source-decal-fall-2011}
  68. and click on \textquotedblleft{}Application to join\textquotedblright{}
  69. in the wiki page. Fill out and submit the application by the stated
  70. deadline to be considered for enrollment. The course website may also
  71. be found in the footer of this document.
  72. \section{Grading Policy}
  73. The course will be offered only on a \emph{P/NP} basis, for 2 units.
  74. Passing the course is simple - attend the class regularly, contribute
  75. to an open source project and present your contribution(s) to the
  76. class. The grading policy is binary in that a Pass grade is given
  77. for all of satisfactory attendence, open source contribution and a
  78. group presentation. The subsections below clarify what we mean by
  79. each of these points. Should any aspect of this grading policy be
  80. unclear to you, please email us at \url{opensourcedecal-facilitators@googlegroups.com}
  81. so that we may address your concerns and/or queries.
  82. \subsection{Attendance}
  83. The weekly DeCal meetings are mandatory. Up to two absences will be
  84. permitted for a passing grade. Please email or otherwise notify us
  85. ahead of time if you need to miss a class, and we\textquoteright{}ll
  86. let you know how you can make it up.
  87. \subsection{Contribution}
  88. Contribute to your chosen project through patch submission, UX improvement,
  89. or improving code documentation. One of the primary objectives of
  90. the class is to help you attain a familiarity with open source projects
  91. that prompts contribution to the community. As a part of this task
  92. post a note on your project page on the class wiki with your name,
  93. a link to your commit and a description of what you did. Each member
  94. of a project group will be required to have a contribution of their
  95. own.
  96. \subsection{Group Presentation}
  97. Make a presentation to the class summarizing your work on an open
  98. source project. Each project group will be expected to present for
  99. approximately 15 minutes, followed by an up to 5 minute question-and-answer
  100. session. Your presentation should contain or address the following
  101. points:
  102. \begin{itemize}
  103. \item A description of the open source project, detailing its function and
  104. licencing%
  105. \footnote{American English uses {}``licensing'' instead.%
  106. } structure.
  107. \item The version control, bug tracking, wiki and documentation systems
  108. used in the project.
  109. \item The bug or feature each project group member contributed to resolving/implementing.
  110. \end{itemize}
  111. \subsection{Assignments}
  112. Assignments may be handed out on certain weeks to help progress, and
  113. facilitate informed and worthwhile class discussion. These will \emph{not}
  114. be graded. The assignments will tend to be either technical tasks
  115. such as downloading and compiling source code, or short readings from
  116. online materials especially when related to the topics being discussed
  117. in class the following week. Their intention is to keep you on track
  118. towards conributing to your project and making the group presentation.
  119. \section{Academic Honesty}
  120. While the class is inherently collaborative, the course will require
  121. individual contributions. Any submission for this class to which you
  122. have added your name must be your original work. The open source community
  123. is built on mutual trust between developers, and considers plagiarism
  124. and stealing credit to be highly offensive. Observe restrictions imposed
  125. by the licence of all software projects encountered in this course.
  126. \section{Learning Goals}
  127. Students will learn skills for working with large scale projects.
  128. These will include:
  129. \begin{itemize}
  130. \item source control systems, bug trackers and software development wikis
  131. \item code review systems and how to write readable code
  132. \item how to write and submit a clearly documented patch
  133. \item code design, using automated tools, tricks of the trade
  134. \end{itemize}
  135. \section{Class Format}
  136. Meetings will be held weekly and will consist of the following format:
  137. \begin{itemize}
  138. \item Lecture -- We\textquoteright{}ll present material relating to the
  139. class themes for that week or frame case studies for class discussion
  140. \item Group Activity -- We\textquoteright{}ll frame specific activities
  141. relating to current course themes: for example, during discussion
  142. of code review approaches, a group activity could involve students
  143. reviewing each other\textquoteright{}s code
  144. \item Collaborative hacking -- Students will work on their projects, asking
  145. each other or the facilitators for assistance as needed.
  146. \end{itemize}
  147. Discussion between students is highly encouraged, and will be facilitated
  148. by the mailing list in the top right corner of this syllabus.
  149. \section{Draft Lecture Schedule}
  150. \begin{tabular}{|c|c|>{\centering}m{7cm}|}
  151. \hline
  152. \textbf{Week} & \textbf{Topic(s)} & \textbf{Description}\tabularnewline
  153. \hline
  154. \hline
  155. 1 & Introduction & Setting the goals, aims and expectations of the class\tabularnewline
  156. \hline
  157. 2 & Where can I find open source projects? & Introduction to the open source community through project listings,
  158. social coding web sites and specific projects.\tabularnewline
  159. \hline
  160. 3 & Version Control, Project \& Team Formation & Using version control systems in the context of an open source project,
  161. Project selections\tabularnewline
  162. \hline
  163. 4 & Guest Lecture - Licencing & A discussion of open source licences and the etymology of free and
  164. open source software.\tabularnewline
  165. \hline
  166. 5 & Bug tracking, Wikis, Mailing lists, IRC & How open source projects are typically managed across multiple contributors.\tabularnewline
  167. \hline
  168. 6 & Guest Lecture - Talking about code & An overview of good coding style and standards, and best practices
  169. when dealing with a large codebase.\tabularnewline
  170. \hline
  171. 7 & Diff tools/Patches, Code reviews, Hacking & Making the contribution back to the community after the coding part.\tabularnewline
  172. \hline
  173. 8 & Guest Lecture - Open Source Project & The experiences, trials, tribulations and successes of a contributing
  174. developer.\tabularnewline
  175. \hline
  176. 9 & Presentations & Group presentations summarizing open source project work.\tabularnewline
  177. \hline
  178. 10 & Presentations & See above.\tabularnewline
  179. \hline
  180. 11 & Presentations & See above.\tabularnewline
  181. \hline
  182. 12 & Presentations, Closing Remarks & See above, Summarizing the core concepts of open source software development.\tabularnewline
  183. \hline
  184. \end{tabular}
  185. \end{document}