CS 4500 Software Development (Sections 1 & 3)

Fall 2019

Time and Place

Section 1

We meet on Tuesdays and Fridays, 9:50-11:30am in Robinson Hall 109. The first class is on Fri 9/6.

Section 3

We meet on Tuesdays and Fridays, 1:35-3:15pm in Shillman Hall 105. The first class is on Fri 9/6.

People

Role Name Email Office hours Location
Instructor Ferdinand Vesely f.vesely@northeastern Wed 2-6pm Nightingale 132A
TAs Ivan Chen chen.if@husky Mon 1:15-2:30pm WVH, 3rd floor (by 366)
Thu 1-2:30pm WVH, 3rd floor
Sai Sankar Gochhayat gochhayat.s@husky Tue 4:30-6:30pm WVH, 3rd floor
Thu 5-6pm WVH, 3rd floor
Divya Payyadi Venkatesh payyadivenkatesh.d@husky 5-7pm Hastings 100
Wed 5-6pm Snell Library 002

Campus map

Course Description

The technical goal of the course is to expose students to the practice of programming at a reasonably large scale. This version of the course teaches how the program design principles of the three major prerequisite courses scale to a large code base, in any programming language. Indeed, without relying on such fundamental design principles, a large code base may quickly become prohibitively complex and incomprehensible.

The social goal of the courses is to continue the development of collaboration and communication skills from the prerequisite programming courses. Going beyond pair programming, the course introduces code reviews, where students present their solutions to their peers. Both presenting code and understanding such presentations are critical skills for the modern software developer.

Registrar’s description: Considers software development as a systematic process involving specification, design, documentation, implementation, testing, and maintenance. Examines software process models; methods for software specification; modularity, abstraction, and software reuse; and issues of software quality. Students, possibly working in groups, design, document, implement, test, and modify software projects.

Prerequisities

This course is the end of the programming sequence:x Fundamentals I, Fundamentals II, Object-Oriented Design. In addition, it assumes you have been out to one co-op.

Lectures

09/06 1. Introduction, Overview of Software development Slides Matthias’ notes
09/10 2. Software Development Process Slides Matthias’ notes
09/13 3. Quick Overview of UML Slides
09/17 4. Good Code. Naming Principles Slides
09/20 5. Code, pt. 2 Slides
09/24 6. Objects, Structures, Interfaces Slides
09/27 7. Software Architectures / netcat & telnet, protocol diagrams Slides
10/01 No lecture. Group work opportunity
10/04 8. Unit Testing Slides
10/08 9. Project: Tsuro’ Slides
10/11 10. Design Patterns Slides
10/15 11. Integration Testing Slides
10/18 No lecture. Group work opportunity
10/22 12. Design by Contract Slides
10/25 13. Code Reviews Slides
11/01 14. Group Presentations Slides
11/05 Presentations Schedule
11/08 Presentations Schedule
11/12 Presentations Schedule
11/15 Presentations Schedule
11/19 Presentations Schedule
11/22 Presentations Schedule

Assignments

Project Assignments

Group Presentations

You can find the in-class group presentation schedule here.

Final Code Reviews

In lieu of a final, we will conduct an extensive code walk of your projects. If the course progresses on schedule, the final code walks will be held during the finals examination period. If the course progresses faster than anticipated, all final code walks will take place during the final week of classes.

Forum

The primary forum for this class is on Piazza, which you can use to ask questions and exchange wisdom while completing assignments. I will also use Piazza to broadcast announcements to the class, so you will be expected to check it at least every few days. Participate actively and use it as a first place to post questions related to assignments, programming, debugging, exams, etc. Please use the forum to post questions and answers that may be useful to others. Bottom line: unless you have a private problem, post to Piazza before writing me/the TA an email.

Please register for Piazza by going to http://piazza.com/northeastern/fall2019/cs4500fv and registering as a student.

Grades

The final grades are based on these factors:

The mapping of percentages to letter grades is as follows:

Cutoff

  

93%

  

90%

  

86%

  

83%

  

80%

  

76%

  

73%

  

70%

  

66%

  

63%

  

60%

  

else

Letter grade

  

A

  

A-

  

B+

  

B

  

B-

  

C+

  

C

  

C-

  

D+

  

D

  

D-

  

F

Late Policy

For the homework assignments, we will use flexible slip dates. Each student is given an automatic extension of 4 calendar days for the semester. You can use the extension on any assignment during the semester in increments of a day1. For instance, you can hand in one assignment 4 days late, or one assignment 2 days late and two assignments 1 day late. The slip time will be deducted from each group member’s remaining slip time.2 This should let you schedule due dates around the due dates for other courses. After you have used up your slip time, any assignment handed in late will be marked off 20% per day. Assignments more than 2 days late (beyond the use of slip days) will not be accepted. Extensions will not be granted.

Cheating Policy

It’s ok to ask your peers about the concepts, algorithms, or approaches needed to do the assignments. We encourage you to do so; both giving and taking advice will help you to learn. However, what you turn in must be your own, or for projects, your group’s own work. Looking at or copying code or homework solutions from other people or the Web is strictly prohibited. In particular, looking at other solutions (e.g., from other groups or students who previously took the course) is a direct violation. Projects must be entirely the work of the students turning them in, i.e. you and your group members. If you have any questions about using a particular resource, ask the course staff or post a question to the class forum.

All students are subject to the Northeastern University’s Academic Integrity Policy. Per Khoury College policy, all cases of suspected plagiarism or other academic dishonesty must be referred to the Office of Student Conduct and Conflict Resolution (OSCCR). This may result is deferred suspension, suspension, or expulsion from the university.

Accommodations for Students with Disabilities

If you have a disability-related need for reasonable academic accommodations in this course and have not yet met with a Disability Specialist, please visit www.northeastern.edu/drc and follow the outlined procedure to request services. If the Disability Resource Center has formally approved you for an academic accommodation in this class, please present the instructor with your “Professor Notification Letter” at your earliest convenience, so that we can address your specific needs as early as possible.


  1. A “day” refers to 24 hours. Thus, a project turned in 28 hours late will count as two days late.↩︎

  2. Note on slip days: Slip days can only be used if all group members have at least one remaining slip day. If not, the 20% off per day policy stated above will be used for all group members.↩︎