/syllabus.tex
LaTeX | 238 lines | 177 code | 53 blank | 8 comment | 0 complexity | 5967f8981dd0b9cf8897c304f225cd2b MD5 | raw file
- %% LyX 1.6.8 created this file. For more info, see http://www.lyx.org/.
- %% Do not edit unless you really know what you are doing.
- \documentclass[english]{article}
- \usepackage[T1]{fontenc}
- \usepackage[latin9]{inputenc}
- \usepackage{babel}
- \usepackage{array}
- \usepackage{url}
- \usepackage[unicode=true, pdfusetitle,
- bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
- breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
- {hyperref}
- \makeatletter
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
- %% Because html converters don't know tabularnewline
- \providecommand{\tabularnewline}{\\}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
- \usepackage{layout}
- \usepackage[parfill]{parskip}
- \usepackage[margin=1in]{geometry}
- \geometry{letterpaper}
- \usepackage{fancyhdr}
- \setlength{\headheight}{15.2pt}
- \pagestyle{fancy}
- \rhead{opensourcedecal-fa11@googlegroups.com}
- \lhead{Course Syllabus}
- % \rhead{Monday 6-8pm}
- \cfoot{https://bitbucket.org/seshness/open-source-decal-fall-2011}
- \usepackage{graphicx} %loads the graphicx.sty package
- \usepackage{epstopdf} %loads the epstopdf.sty package
- % to automatically convert eps files to pdf format
- % the next line converts tif files to png
- \DeclareGraphicsRule{.tif}{png}{.png}{%
- `convert #1 `dirname #1`/`basename #1 .tif`.png}
- \usepackage{array}
- \setlength{\extrarowheight}{5pt}
- \makeatother
- \begin{document}
- \title{Introduction to Open Source Software}
- \author{\textbf{Facilitators:} Seshadri Mahalingam, Kevin Porter, Anirudh
- Todi\textbf{, }Karan Malik\textbf{}\\
- \textbf{Intructor of Record: }David Wagner}
- \date{Fall 2011}
- \maketitle
- \part*{Course Syllabus}
- \section{Course Goals}
- This course aims to provide a community and a lecture series for students
- to learn the skills they will need to contribute to open-source projects,
- and large scale software engineering projects in general. If you have
- ever been interested in joining an open source project but felt that
- the barrier to entry was too high, this DeCal is for you!\\
- \\
- Projects will be worked on in groups of two or more people. This
- being the second iteration of the Open Source DeCal, we welcome suggestions,
- input and feedback on the structure and content of the course. Email
- us at \url{opensourcedecal-facilitators@googlegroups.com} if you
- have any queries/questions about the course.
- \section{Suggested Prerequisites}
- You\textquoteright{}ll get the most of out of this class if you\textquoteright{}re
- familiar with at least one language used for open source development
- (Python, Perl, PHP, Java, C++, C, Ruby and many more) to a \href{http://inst.eecs.berkeley.edu/~cs61b}{CS 61B(L)}
- level. This course will tend towards technical contribution, but those
- interested in contributing in design or user experience areas are
- welcome too.
- \section{Application}
- To apply for enrollment into the decal, visit the course website
- \url{https://bitbucket.org/seshness/open-source-decal-fall-2011}
- and click on \textquotedblleft{}Application to join\textquotedblright{}
- in the wiki page. Fill out and submit the application by the stated
- deadline to be considered for enrollment. The course website may also
- be found in the footer of this document.
- \section{Grading Policy}
- The course will be offered only on a \emph{P/NP} basis, for 2 units.
- Passing the course is simple - attend the class regularly, contribute
- to an open source project and present your contribution(s) to the
- class. The grading policy is binary in that a Pass grade is given
- for all of satisfactory attendence, open source contribution and a
- group presentation. The subsections below clarify what we mean by
- each of these points. Should any aspect of this grading policy be
- unclear to you, please email us at \url{opensourcedecal-facilitators@googlegroups.com}
- so that we may address your concerns and/or queries.
- \subsection{Attendance}
- The weekly DeCal meetings are mandatory. Up to two absences will be
- permitted for a passing grade. Please email or otherwise notify us
- ahead of time if you need to miss a class, and we\textquoteright{}ll
- let you know how you can make it up.
- \subsection{Contribution}
- Contribute to your chosen project through patch submission, UX improvement,
- or improving code documentation. One of the primary objectives of
- the class is to help you attain a familiarity with open source projects
- that prompts contribution to the community. As a part of this task
- post a note on your project page on the class wiki with your name,
- a link to your commit and a description of what you did. Each member
- of a project group will be required to have a contribution of their
- own.
- \subsection{Group Presentation}
- Make a presentation to the class summarizing your work on an open
- source project. Each project group will be expected to present for
- approximately 15 minutes, followed by an up to 5 minute question-and-answer
- session. Your presentation should contain or address the following
- points:
- \begin{itemize}
- \item A description of the open source project, detailing its function and
- licencing%
- \footnote{American English uses {}``licensing'' instead.%
- } structure.
- \item The version control, bug tracking, wiki and documentation systems
- used in the project.
- \item The bug or feature each project group member contributed to resolving/implementing.
- \end{itemize}
- \subsection{Assignments}
- Assignments may be handed out on certain weeks to help progress, and
- facilitate informed and worthwhile class discussion. These will \emph{not}
- be graded. The assignments will tend to be either technical tasks
- such as downloading and compiling source code, or short readings from
- online materials especially when related to the topics being discussed
- in class the following week. Their intention is to keep you on track
- towards conributing to your project and making the group presentation.
- \section{Academic Honesty}
- While the class is inherently collaborative, the course will require
- individual contributions. Any submission for this class to which you
- have added your name must be your original work. The open source community
- is built on mutual trust between developers, and considers plagiarism
- and stealing credit to be highly offensive. Observe restrictions imposed
- by the licence of all software projects encountered in this course.
- \section{Learning Goals}
- Students will learn skills for working with large scale projects.
- These will include:
- \begin{itemize}
- \item source control systems, bug trackers and software development wikis
- \item code review systems and how to write readable code
- \item how to write and submit a clearly documented patch
- \item code design, using automated tools, tricks of the trade
- \end{itemize}
- \section{Class Format}
- Meetings will be held weekly and will consist of the following format:
- \begin{itemize}
- \item Lecture -- We\textquoteright{}ll present material relating to the
- class themes for that week or frame case studies for class discussion
- \item Group Activity -- We\textquoteright{}ll frame specific activities
- relating to current course themes: for example, during discussion
- of code review approaches, a group activity could involve students
- reviewing each other\textquoteright{}s code
- \item Collaborative hacking -- Students will work on their projects, asking
- each other or the facilitators for assistance as needed.
- \end{itemize}
- Discussion between students is highly encouraged, and will be facilitated
- by the mailing list in the top right corner of this syllabus.
- \section{Draft Lecture Schedule}
- \begin{tabular}{|c|c|>{\centering}m{7cm}|}
- \hline
- \textbf{Week} & \textbf{Topic(s)} & \textbf{Description}\tabularnewline
- \hline
- \hline
- 1 & Introduction & Setting the goals, aims and expectations of the class\tabularnewline
- \hline
- 2 & Where can I find open source projects? & Introduction to the open source community through project listings,
- social coding web sites and specific projects.\tabularnewline
- \hline
- 3 & Version Control, Project \& Team Formation & Using version control systems in the context of an open source project,
- Project selections\tabularnewline
- \hline
- 4 & Guest Lecture - Licencing & A discussion of open source licences and the etymology of free and
- open source software.\tabularnewline
- \hline
- 5 & Bug tracking, Wikis, Mailing lists, IRC & How open source projects are typically managed across multiple contributors.\tabularnewline
- \hline
- 6 & Guest Lecture - Talking about code & An overview of good coding style and standards, and best practices
- when dealing with a large codebase.\tabularnewline
- \hline
- 7 & Diff tools/Patches, Code reviews, Hacking & Making the contribution back to the community after the coding part.\tabularnewline
- \hline
- 8 & Guest Lecture - Open Source Project & The experiences, trials, tribulations and successes of a contributing
- developer.\tabularnewline
- \hline
- 9 & Presentations & Group presentations summarizing open source project work.\tabularnewline
- \hline
- 10 & Presentations & See above.\tabularnewline
- \hline
- 11 & Presentations & See above.\tabularnewline
- \hline
- 12 & Presentations, Closing Remarks & See above, Summarizing the core concepts of open source software development.\tabularnewline
- \hline
- \end{tabular}
- \end{document}