CS 350 Introduction to Software Engineering (Summer 2021)
Thomas J. Kennedy
Website: https://www.cs.odu.edu/~tkennedy/cs350/sum21/
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 Instructor
Instructor | Office | Phone # | Home Page & Office Hours | |
---|---|---|---|---|
Thomas J. Kennedy | Dragas 1100D | 757.683.7725 | tkennedy@cs.odu.edu | http://www.cs.odu.edu/~tkennedy |
All email related to this course must have the phrase CS 350 somewhere in the subject line.
I try to respond to all (properly marked) messages before I leave my office each day (Monday through Friday). On weekends and holidays replies may take a little longer (around 48 hours).
1.1.1 Office Hours
My general office hours are available at https://www.cs.odu.edu/~tkennedy/. Instructions for scheduling a formal appointment are listed here. Note that my office hours are exclusively web-conference based appointments.
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 tkennedy@cs.odu.edu.
For more discussion on course communications, please refer to the Communications policy.
1.2 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 the CS 382 course website during the first few weeks of the semester.
1.2.1 Additional Consideration for Spring 2020
During Spring 2020 everyone was impacted by the COVID-19 Situation. Spring Break was extended by one week and all on-campus lectures courses were transitioned to online delivery.
If you completed one or more of the Course Pre-requisites during Spring 2020, take a few minutes to look back through your notes, exercises, and grades. The pre-requisite expectations for this course have not changed. If you feel you need to review material from prior courses (e.g., CS 330 or CS 361) email the instructor during the first week of classes.
1.3 Meeting Times and Delivery Method
Students must register for both a lecture section and a recitation section.
-
Lectures: No regularly scheduled meetings
Lecture materials for this course will be available on-line, primarily in printed/text form.
-
Recitations: Tues 3:50pm-5:50pm and Thurs 3:50pm-5:50pm (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.
-
1.4 Review Recordings
I provide recorded Reviews on the course site. These are, in general, condensed versions of what would traditionally be live lectures. My recorded Reviews are available here.
I expect you to view these Review Recordings
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.edu
email. 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
Attendance at all scheduled recitation sessions, as announced in the course outline, is mandatory. Failure to attend may result in grade penalties.
During weeks without scheduled recitation activities, students are encouraged to make use of the time to meet with their groups. If the instructor has set up appointment slots for informal meetings, recitations are an ideal time to ask questions.
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.
Extensions to due dates will not be granted simply to allow “porting” from one system to another. “But I had it working on my home PC!” is not an acceptable excuse.
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.
3.5 Grading
Assignments | 15% |
Semester Project | 50% |
Midterm Exam | 15% |
Final Exam | 20% |
Grading is normalized.
If a student recives a higher letter (4pt) grade on the Final Exam than on the Midterm Exam, the Midterm Exam grade will be dropped. The computation for dropping the Midterm Exam is
0.15 * (Final Exam grade) + 0.20 * (Final Exam grade)
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.
5 Exams
The Midterm Exam and Final Exam will be administered online via Blackboard.
6 Topics
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
- Continuous Integration, including testing in the cloud (AWS)
- Analysis tools, including CheckStyle, SpotBugs, & PMD
- Build Management, including Ant, Maven, and Gradle
- Unit & Integration Testing: coverage, JUnit-style frameworks, mocking, designing for testability
- Test-driven development
- Issue tracking
- Software Forges & Repositories
6.1 Objectives
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.
-
6.2 Expectations
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 Semester Project - Civility among Team Members
You will be working with your team for many weeks, and there will be a lot of communication expected among team members.
In accordance with the Monarch Creed and Code of Ethics, I expect all students to maintain civility in their dealings with one another.
Language that is abusive, harassing, or threatening to members of the class or that fosters high levels of personal and emotional anxiety may, at the instructor’s discretion, result in expulsion from the team. Given the importance of the team project to this course, that is likely to result in a failing grade. Egregious or repeated violations will be referred to appropriate authorities for possible disciplinary action.
8 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/