CS 350 Introduction to Software Engineering (Fall 2020)
Steven J. Zeil
You will find the links to each upcoming Zoom session in Blackboard, under “Zoom”. You will need to log in with your
Recordings will be available in Blackboard, under “Recordings”. There may be a delay of up to a day after each session before recordings become available.
1 Course Description
This course explores the software development process. It will discuss the major activities common to software development processes, and some of the ways in which those activities are organized and managed.
Heavy emphasis will be placed on the day-to-day skills required during software construction. The course will explore lessons and tools offered by the major successful open-source software efforts.
The course requires each student to participate as a member of a team in a significant team project. Each student will be required to demonstrate proficiency in several software development tools.
1.1 Meeting Times and Delivery Method
Students must register for both a lecture section and a recitation section.
Lectures: M,W,F 2:00-2:50
You will have registered for one of two different lecture sections:
14084, CONST 1038
This is a face-to-face section in a traditional classroom.
Attendance is optional. Recordings will be available.
Social distancing measures will be practiced. Students who are uncomfortable with participating in the classroom are encouraged to switch to the WEB2 section so as to enable other students who might prefer the face-to-face environment to have a seat.
If possible, these sessions will be streamed live via Zoom.
Attendance is optional. Recordings will be available.
Recitations: Tu 3:00-5:00PM, Tu 7:10-9:10PM (selected weeks)
Recitations will be conducted by network conferencing.
Attendance is mandatory.
Recordings will not be available.
The primary purpose of the recitation is to allow project teams to meet with the instructor for periodic evaluation of their progress.
For the purpose of these meetings, it will be important that students be seated at or connected to their chosen development machine and prepared to demonstrate aspects of the project under review.
There will also be a small number of earlier recitations devoted to learning the conferencing tools that will be used in the later meetings.
Recitation sections will not meet every week, but the scheduled meetings listed in the course outline are mandatory. During weeks when recitations are not scheduled, project teams may wish to use that time for their own meetings.
As necessary, the instructor may announce open “help” sessions during the recitation time periods to provide aid on assignments and labs. Attendance at these sessions will be optional.
The provision of face-to-face lectures and live Zoom streams are contingent on the setup of the classroom and supporting equipment, and the general level of Covid-19 activity in the Norfolk/Virginia Beach area. If I become uncomfortable with the safety precautions being taken, or feel that the classroom environment and equipment detract from the quality of the course, then I reserve the right to change to a pure web conferencing delivery mode.
|Steven Zeil||E&CS 3208|
Please make sure to include the course name “CS350” in the subject line of any email related to this course.
1.2.1 Office Hours
Office hours are posted online at http://www.cs.odu.edu/~zeil/officehours/
General questions about course content and reports of website problems should normally be asked in the Forums on Blackboard or via email.
Questions about grades, how to solve assignments and other graded activities must be sent to email@example.com, not posted in Forums.
For more discussion on course communications, please refer to the Communications policy.
1.3 Course Pre-requisites
- CS 252 (Introduction to Unix for Programmers)
- CS 330 (Object-Oriented Programming and Design), or
- CS 361 (Advanced Data Structures and Algorithms)
- Students who have not taken CS 330 are encouraged to take CS 382 (Introduction to Java) as a pre-requisite or, at the very least, to work through that courses’s website during the first few weeks of the semester.
2 Basic Course Information
2.1 Required Text
Readings from the Internet will be assigned from the course website.
2.2 Resources for Getting Started
2.3 Computer Accounts
Students will need two network accounts to participate in this class:
An ODU ITS account. This is the account associated with your
@odu.eduemail. It will allow you to log into the course’s Blackboard site. All ODU students automatically receive this account, though you may need to activate yours, if you are new to ODU.
An account on the CS Dept. network. This will be used for access to the CS dept computing resources, and for accessing and submitting assignments. You may have a CS account already if you were registered for a CS class last semester. If not, the account setup can be initiated at http://www.cs.odu.edu/ by clicking on “Account Creation” under “Online Services”.
2.4 Hardware & Software Requirements
Students will need frequent access to a PC capable of hosting software development activities or of connecting remotely to CS Dept servers where such activities can be performed.
Students will be attending network conferences requiring the use of a microphone. Webcams are optional.
For both remote access to CS Dept servers and for network conferencing, a good-quality internet connection is important.
The course will introduce students to a wide variety of software packages. All of these are open-source, free software, but students will need to install some of these on their chosen development machine (whether their own PC or in their account on the CS network).
3 Course Policies
3.1 Recitation Attendance
Project review sessions will be scheduled for selected weeks during the recitation periods. Attendance at these is mandatory. Failure to attend will result in substantial grade penalties for that portion of the project.
Attendance at other scheduled recitation sessions, as announced in the course outline, is also mandatory. Failure to attend may result in grade penalties.
3.2 Due Dates and Late Submissions
Late assignments and make-up exams will not normally be permitted.
Exceptions to this and other grading policies will be made only in situations of unusual and unforeseeable circumstances beyond the student’s control. Arrangements must be made prior to the due date in any situations where the conflict is foreseeable.
“I’ve fallen behind and can’t catch up”, “I’m having a busier semester than I expected”, or “I registered for too many classes this semester” are not grounds for an extension.
3.3 Academic Honesty
Everything turned in for grading in this course must be your own work, or, for team projects, the work of your own team. Opportunities for teamwork will be clearly identified as such.
Students are expected to conform to academic standards in avoiding plagiarism.
- Among other things, this means that if you use ideas found on the internet (outside of the course website) in your answers to an assignment or exam question (including when coding!), you must cite your sources appropriately.
If you use text directly taken from such sources you must appropriately designate the quoted material as such.
The instructor reserves the right to question a student orally or in writing and to use his evaluation of the student’s understanding of the assignment and of the submitted solution as evidence of cheating.
Students who contribute to violations by sharing their code/designs with others may be subject to the same penalties. Students are expected to use standard Unix protection mechanisms (
chmod) to keep their assignments from being read by their classmates. Failure to do so will result in grade penalties, at the very least.
This policy is not intended to prevent students from providing legitimate assistance to one another. Students are encouraged to seek/provide one another aid in learning to use the operating system, in issues pertaining to the programming language, or to general issues relating to the course subject matter.
Student discussions should avoid, however, explicit discussion of approaches to solving a particular programming assignment, and under no circumstances should students show one another their code for an ongoing assignment, nor discuss such code in detail.
Violations of this policy will be reported to the Office of Student Conduct and Academic Integrity for consideration for punitive action.
3.4 General University Policies
The ODU Catalog lays out a wide variety of University policies that are binding upon both students and faculty. All students are required to abide by these.
Individual Assignments (15% in total) and individual Semester Project Phases (50% in total) will not necessarily be equally weighted.
Grading is normalized.
4 Assignment Grading
Individual assignments will be turned in through the CS submission system, rather than through Blackboard–more information is available here. Most of the assignments will be graded by an automatic grader. The results will be sent to your email account. Unless the assignment explicitly states otherwise, you may submit a total of three times; the instructor will take the last of the marks, although you may request that your score be “rolled back” to an earlier one. You may NOT submit after viewing the sample solution.
The Midterm Exam and Final Exam will be administered online via Blackboard.
Topics will include:
- Software development processes, including the waterfall, unified OO, and extreme programming models
- Revision management: local, centralized, & distributed approaches
- Configuration Management: project configuration, managing external libraries
- Documentation tools
- Build Management
- Test-driven development
- Unit & Integration Testing: coverage, self-checking, mocking, designing for testability
- Debugging: local & remote, monitors, reverse debugging
- Regression Testing
- Issue tracking
- Software Forges & Repositories
Students completing this course should be able to:
Demonstrate an understanding of the overall strategy of software development:
Discuss the phases and component activities of software development
Assess the likely impact of popular software process development models on a project.
Discuss common team organizations and roles in software development.
Work with software requirements documents
Read common forms of requirements documents
Write at least one standard form of requirements document
Apply requirements to guide the subsequent construction of software
Apply best practices in collaborative software construction
Discuss the issues and problems involved in collaborative development of software.
Evaluate the suitability of alternative best practices for a software construction project.
Support common best practices of via a modern IDE and associated tools
Apply a variety of software measurement and estimation techniques.
Students will engage in team projects in this course. Students are expected to actively participate in and contribute to their teams, and this engagement with the team will be part of the grade.
7 Educational Accessibility
Old Dominion University is committed to ensuring equal access to all qualified students with disabilities in accordance with the Americans with Disabilities Act. The Office of Educational Accessibility (OEA) is the campus office that works with students who have disabilities to provide and/or arrange reasonable accommodations.
If you experience a disability which will impact your ability to access any aspect of my class, please present me with an accommodation letter from OEA so that we can work together to ensure that appropriate accommodations are available to you.
If you feel that you will experience barriers to your ability to learn and/or testing in my class but do not have an accommodation letter, please consider scheduling an appointment with OEA to determine if academic accommodations are necessary.
The Office of Educational Accessibility is located at 1021 Student Success Center and their phone number is (757) 683-4655. Additional information is available at the OEA website http://www.odu.edu/educationalaccessibility/