knowledge-kitchen / course-notes

Course Syllabus - Agile Software Development & DevOps

Agile Software Development & DevOps
New York University
Department of Computer Science

Course description

Agile software development has come to describe a specific approach and toolset that allow for the requirements of a software project to change as a project progresses without disrupting schedules, budgets, and responsibilities. The field of DevOps, a portmanteau of development and operations, has introduced further processes and infrastructure to automate many of the tasks required in such development. Together, an Agile methodology and DevOps automation have increased the speed, robustness, and scalability with which software is developed today and have reduced the uncertainty of outcomes inherent in complex software development. Upon completion of this course, students will understand the core methodologies, technologies, and tools used in the software industry today.

Credits

4 credits

Meeting pattern

Tuesdays/Thursdays 12:30-13:45

Prerequisites

Computer Systems Organization (CSCI-UA.0201) with a grade of C or better

Learning objectives

Upon completing this course, students will be familiar with some of the most important software development tools and practices, including:

To achieve mastery in these topics, students will take quizzes corresponding to the material covered in each lecture while also working with a single team on a single software project for the majority of the semester.

While significant class time is dedicated to hands-on student work, students are expected to collaborate with their teams for 10-15 hours each week reviewing instructional materials provided by the instructor and programming their software projects.

Instructor

Amos Bloomberg
amos at cs dot nyu dot edu
WWH 424

Department

This course is offered by the Computer Science Department. For department-related questions or concerns, please see the department’s contact information.

Getting help

Help resources available to you are listed in order of urgency of your problem:

Messaging

Our course will use a message board (link to be distributed in class) as its main communication channel for announcements and discussion. This is a good place to ask questions that anyone - other students, graders, tutors, or the professor - can answer. This is a resource best used when the answer is not required urgently.

Tutoring

Tutors for this course are waiting to answer your questions, either on our message board or during dedicated tutoring hours. Use tutoring for more involved questions and when you prefer a more immediate answer.

Tutoring hours (all times in Eastern Time):

Talk with the instructor

For any issues at all, contact the instructor:

Additional tutoring resources

Additional academic support is also available through the University Learning Center.

Attendance & participation

Attendance is mandatory and more than two absences may be penalized up to 10% of the total grade. In-class and online message board participation is encouraged. Anecdotally, students who do not attend class regularly and who do not participate in discussions tend to do poorly.

Student and instructor interaction during class

Class sessions are a mixture of lecture, discussion, and group project work. During any lecture or discussion, students are generally encouraged to participate with questions, comments, and constructive criticism of the material being covered. On days when students work on group projects, students work together in small groups of typically 4-6 people to complete specific software projects, with help and guidance provided by the instructor.

Required software and hardware

All students require access to a desktop or laptop computer on which they can write software using a specific set of applications.

Grading

You will receive a grade calculated mechanically on the following rubric.

More information about the requirements and assessment rubrics for each assignment and each part of the project are included in a document within the assignment and project code itself.

Attendance may be taken into account in the final grade.

Letter grades

The final class grade will be assigned as follows:

Grade Range Letter Grade
93-100% A
90-92% A-
87-89% B+
83-86% B
80-82% B-
77-79% C+
70-76% C
60-69% D
0-59% F

Notification of grades

Students will be sent their complete individual grades via email approximately once per week.

Quizzes

Quizzes are completed outside of class. You must be logged into Google with your NYU Net ID account in Google in order to view the Quizzes. If you see an error message indicating you do not have permission to view a Quiz, it is because you are not logged into the correct NYU Net ID account.

Quizzes are submitted by submitting a Google Form.

Team projects

The main project is to design and build a mobile web application using an industry-standard Javascript-based technology stack. While some class sessions are dedicated to working on projects, the majority of the development time will occur outside of class.

Projects are submitted by using git to upload code to GitHub.

Team projects are broken up into 5 “sprints” - iterations of work - each of which is approximately 2 weeks long. Students will receive a grade for each sprint based on the following:

Late policy

All assigned work is due before class on the due date indicated on the schedule

Extensions

Students are automatically granted 2 late assignment extensions of up to 72 hours late each, with the exception that all assignments must be submitted before the last day of regular classes before the final exam period.

Regrade requests

If a student requests a regrade of any work, we will regrade the work in full, not just the part that the student believes has been mis-graded.

Disability disclosure statement

Academic accommodations are available for students with disabilities. Please contact the Moses Center for Student Accessibility (212-998-4980 or mosescsd@nyu.edu) for further information. Students who are requesting academic accommodations are advised to reach out to the Moses Center as early as possible in the semester for assistance.

Student wellness

In a large, complex community like NYU, it’s vital to reach out to others, particularly those who are isolated or engaged in self-destructive activities. Student wellness is the responsibility of all of us.

The NYU Wellness Exchange is the constellation of NYU’s programs and services designed to address the overall health and mental health needs of its students. Students can access this service 24 hours a day, seven days a week - wellness.exchange@nyu.edu; (212) 443-9999. Students can call the Wellness Exchange hotline (212-443-9999) or the NYU Counseling Service (212-998-4780) to make an appointment for Single Session, Short-term, or Group counseling sessions.

Academic integrity

Working with others and leveraging all resources available to you is a prerequisite for success. This is different from copying, cheating, plagiarism, and mental laziness. All submitted work must be your own. There are very reliable systems we use to detect plagiarism in computer code, such as moss and compare50. If you submit any work that is not your own, you risk failure or worse.

Please read the Computer Science department’s policy on academic integrity and the University-wide policy which supercedes it.