Location | Contact Info |
---|---|
π« Office: Not on campus Fall 2023 | π Phone: 301-613-9130 |
π Office Hours: By appointment | βοΈ Email: rharvey@loyno.edu |
This course provides students with a view into the job of a software engineer through hands-on interaction with course material. Topics covered include engineering processes and their application to the development of software; cost and effort estimation; software testing and test management; team structure, roles and composition; deployment and configuration management; and professional ethics.
This course is taught with a mandatory service learning component, during which students work on a real software development project in a team context for a real client and reflect upon that experience. It is not possible to pass this course without taking part in this hands-on learning experience.
This course describes engineering processes and their application to the development of software.
One of:
To be successful in this course, students are expected to have practical experience building software, and in particular, should be comfortable working with data structures, designing classes, and writing software modules.
Students will experience the job of a software engineer through hands-on interaction with course material. The course will provide students with opportunities to experience: engineering processes and their application to the development of software; cost and effort estimation; software testing and test management; team structure, roles and composition; deployment and configuration management; and professional ethics.
Upon completion of this course, students should be able to:
π Engineering Software as a Service: An Agile Approach Using Cloud Computing, 1st Edition (v1.2.1), by Armando Fox and David Patterson. Strawberry Canyon, 2016. ISBN 978-0-9848812-4-6.
π The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Ed.), by Frederick P. Brooks, Jr. Addison-Wesley Professional, 1995. ISBN 978-0-2018359-5-3.
In this course, you will build and deploy real software using the processes, practices, and ideas you're learning about. The course project is a large effort that will be completed as a team.
As a service learning project, and in the spirit of Loyola University New Orleansβ focus on social justice and the public good, we will be working with a client who focuses on an issue in this realm, helping them to complete their mission through the software we build.
The software project we work on will be a web application, and will likely be built (depending on the client needs and project requirements) with Ruby and JavaScript using the Rails web framework. Project, requirement, code and code review artifacts will be managed via GitHub using the git version control system. Your main textbook (see Required Textbooks) covers working with these languages and tools in some detail.
These tools are quite common in industry, and working with them in a collaborative, team-based software development scenario will provide you hands-on experience that you can include on a resume and use when applying for jobs in software development. All code you write for the course project will be open source, meaning that your work will be available for use in a code portfolio for prospective employers, should you choose.
As with any major software development effort, you will be expected to work independently and as a team outside the classroom in order to complete this project. You will be expected to coordinate with classmates on your own in order to facilitate team collaborative work outside of class.
To be abundantly clear, almost no time during class periods will be spent writing or reviewing code. Project work during class periods will be limited to client interactions such as meetings and demos, as well as stand-up check-ins. If you have questions your teammates cannot answer, it is your responsibility to reach out and ask the appropriate person as soon as possible, so as not to delay completion of project tasks.
You will be required to reflect on your experiences throughout the project duration and to write a reflection paper toward the end of the semester synthesizing these reflections (see Reflection Paper). In addition, you will be required to complete a service learning project evaluation on or before to the final day of class.
We will discuss the project beginning in Week 3, plan our first development iteration (or sprint) at the end of that week, and begin development immediately afterward. In total, the project will cover four (4) three-week sprints. Detailed project schedule will be presented at the project kick-off meeting during class, and may change as needed during the course of the project.
Each sprint will begin during the class period with a planning session. During this session, you will, as a team, estimate the development effort required for requirements and decide on a subset of requirements you will implement during the iteration. As a team, you will commit to completing these requirements entirely by the end of the iteration.
During the course of the sprint, we will begin each class period with a quick stand-up meeting. The purpose of this meeting is to identify (1) what's been done since the last stand-up; (2) what you're planning to do before the next stand-up; (3) what impediments are blocking progress on your work; and (4) what help you need from your teammates. No problem-solving will happen during this meeting β any identified impediments or needed help will be handled in a scheduled session with your teammates outside of class.
At the close of each sprint, you, as a team, will demonstrate the software increment you built during the iteration. This demonstration should focus on the value the software increment provides to the customer/client and users of the software. You should be prepared to answer questions about what you've built and how it works.
Following the demonstration, we will engage in a retrospective session, where we will evaluate how well the development practices and process used worked, and identify ways to improve these for the next iteration. At the close of the retrospective, we will add one or more process improvement tasks to our list of requirements that must be tackled within the next iteration.
In addition, during the course of the project, you will be required to keep a reflections journal, periodically turned in, with reflections on what you've learned, how you've adjusted your process and team interactions, and assumptions you've had that have been overturned. This journal will be invaluable when completing the reflection paper assignment at the end of the course, and may also help you complete the final (see Final Issue Paper and Presentation below).
The project kickoff meeting, where you will be introduced to the client and topic of the project, is scheduled for the class period on Thursday, January 17, 2019.
Sprints will run during the following dates:
Final project demo is scheduled for Tuesday, April 23, 2019.
As part of the service learning aspect of this course, in addition to university-required tracking of hours spent performing service work, you will also be keeping a journal with at least weekly reflections on your experiences, on software process and team interaction, on client interactions, and more.
Toward the end of the semester, you will be required to write a short (5-10 pages) reflection essay examining the following questions:
Professional software engineers encounter ethics issues frequently in the work they do. Many professional software engineers adopt a code of ethics that guides their approach to their work and helps them decide what kinds of work they are willing to do.
To experience some of this, as a final exam for this course, you will write an in-depth issue paper on a software ethics question or problem of your choice, and present your findings to the class.
You will have the entire semester to work on this paper and presentation. Thus, you will be expected to research the topic in detail, finding and presenting a detailed analysis of the various approaches, perspectives, and implications associated with the issue you have chosen. In particular, your paper must address in detail the following analysis questions:
While there is no page limit, your paper will be judged on the completeness of the ideas presented, and an extraordinarily concise treatment of an ethics issue will likely require well over 10 pages single-spaced.
During the final exam period, you will give a 15 to 20 minute presentation to the class on your findings. This presentation should describe and illustrate for your classmates the answers you found for all the analysis questions.
Your presentation must also address each of the above analysis questions in sufficient detail to give classmates a clear understanding of what you found while maintaining the interest of your audience and fitting within the allotted time period.
We will discuss the final paper assignment during the first class period. From that time, you will have two weeks in which to select and turn in a brief (3-5 sentences) paragraph on the topic you have chosen to research. All topics will be approved by the instructor during week three (3).
In order to assist you in your topic selection and research, several resources are available to you.
Your paper and presentation must present a complete and detailed analysis of the issue you've chosen, answering the above analysis questions at a minimum.
In addition to content, you will be graded on the correctness of your writing (spelling, grammar, punctuation, word choice, etc.), the readability and formatting of your submitted paper (font choice, margins, line length, spacing, etc.), and on your presentation skills (vocal projection, clarity of speech, appropriateness of movement, eye contact, visual aids, appropriate attire, etc.). Please be careful in your writing and practice your presentation prior to the final exam period.
The following activities will contribute to your final grade in this course:
The following calculation will be used to compute your final score in the course:
Grade | Value | Quantity | Total |
---|---|---|---|
π Participation | 25% | 630 points possible | |
Class Participation | 20 points | 29 | 580 points possible |
Final Participation | 50 points | 1 | 50 points possible |
π Quizzes | 4% | 100 points possible | |
Concepts Check | 10 points | 10 | 100 points possible |
π» Project | 48% | 1200 points possible | |
Weekly Contribution | 25 points | 12 | 300 points possible |
Sprint Interim Demo | 100 points | 3 | 300 points possible |
Retrospective | 100 points | 4 | 400 points possible |
Final Project Demo | 200 points | 1 | 200 points possible |
π Reflections | 9% | 220 points possible | |
Weekly Reflection Journal | 10 points | 12 | 120 points possible |
Reflection Paper | 100 points | 1 | 100 points possible |
π Final Issue Paper | 14% | 350 points possible | |
Paper | 250 points | 1 | 250 points possible |
Presentation | 100 points | 1 | 100 points possible |
Extra Credit: Poster | +100 points | 1 | +100 points possible |
TOTAL | 100% | 2500 points possible |
The grading scale is the standard 10-point scale.
Letter Grade | Percentage Range | Points Range |
---|---|---|
A | 93 β 100 | 2325 β 2500 |
A- | 90 β 92 | 2250 β 2324 |
B+ | 88 β 89 | 2200 β 2249 |
B | 83 β 87 | 2075 β 2199 |
B- | 80 β 82 | 2000 β 2074 |
C+ | 78 β 79 | 1950 β 1999 |
C | 73 β 77 | 1825 β 1949 |
C- | 70 β 72 | 1750 β 1824 |
D+ | 68 β 69 | 1700 β 1749 |
D | 60 β 67 | 1500 β 1699 |
F | 59 and below | 1499 and below |
The following schedule of topics and activities represents the best estimation of the semester schedule based on available information at the time of writing. Dates and activities are subject to change in response to needs that come up during the semester. You will be notified in class or via Blackboard about any adjustments to the schedule.
Week β’ Session | Date | Topics | Activities | Readings & Preparation |
---|---|---|---|---|
1 β’ 1 |
Tue 01/08 |
π Course Intro π Issue Paper Assignment π Service Learning & Reflections π» Languages & Tools Intro |
π Introductions π Syllabus Review π Lecture |
π Textbook & π» Project Prep
|
1 β’ 2 |
Thu 01/10 |
π What is Software Engineering?
π Software Processes:
|
π Lecture |
π ESaaS: Ch. 1 π MMM: pp.115-123 (Ch 11) π MMM: pp.264-271 (from Ch 19) |
2 β’ 3 |
Tue 01/15 |
π Ruby on Rails
|
π Lecture |
π ESaaS: Ch. 3 π ESaaS: Ch. 4 π ESaaS: Appx. A |
2 β’ 4 |
Thu 01/17 |
π» Customer Organization & Project Intro π Reflections Journal π Version Control, Git and GitHub |
π Lecture π» Course Project and Customer Intro |
π ESaaS: Ch. 5 π ESaaS: Ch. 7 |
3 β’ 5 |
Tue 01/22 |
π Front-end Development π Behavior-Driven Development (BDD) π Test-Driven Development (TDD) π Continuous Integration & Delivery (CI/CD) |
π Lecture (THW) |
π ESaaS: Ch. 6 |
3 β’ 6 |
Thu 01/24 |
π» Course Project Intro |
π Turn in Reflections Journal
π Lecture π» Project
(THW) |
π ESaaS: Ch. 10 |
4 β’ 7 |
Tue 01/29 |
π Concepts Check: Rails Development π Software Architecture
|
π Concepts Check π» Project: Stand-up π Lecture |
π ESaaS: Ch. 2 π MMM: pp.41-50 (Ch 4) π MMM: pp.254-257 (from Ch 19) π MMM: pp.141-150 (Ch 13) |
4 β’ 8 |
Thu 01/31 |
π Architecture Documentation
π Behavior-Driven Development (BDD) |
π Turn in Reflections Journal π» Project: Stand-up π Lecture |
π ESaaS: 7.1-7.5 π MMM: pp.13-26 (Ch 2) π MMM: pp.273-275 (from Ch 19) π MMM: pp.87-94 (Ch 8) |
5 β’ 9 |
Tue 02/05 |
π Concepts Check: Software Architecture π Behavior-Driven Development (BDD) π Requirements Estimation
|
π Concepts Check π» Project: Stand-up π Lecture |
π ESaaS: 7.6-7.14 π MMM: pp.153-160 (Ch 14) |
5 β’ 10 |
Thu 02/07 |
π Test-Driven Development (TDD)
|
π Turn in Reflections Journal π» Project: Stand-up π Lecture |
π ESaaS: Ch. 8 |
6 β’ 11 |
Tue 02/12 |
π» Course Project |
π» Project
|
None |
6 β’ 12 |
Thu 02/14 |
π Concepts Check: Estimation, BDD & TDD π Guest Lecture: Building SaaS Software |
π Turn in Reflections Journal π Concepts Check π» Project: Stand-up π Guest Lecture (SL17) |
None, unless provided by Guest Lecturer |
7 β’ 13 |
Tue 02/19 |
π Advanced SaaS Concepts |
π» Project: Stand-up π Lecture |
Selected Readings |
7 β’ 14 |
Thu 02/21 |
π Legacy Code & Refactoring |
π Turn in Reflections Journal π» Project: Stand-up π Lecture |
π ESaaS: Ch. 9 |
8 β’ 15 |
Tue 02/26 |
π Concepts Check: SaaS, Refactoring & Legacy Code π Tools & Complexity Management |
π Concepts Check π» Project: Stand-up π Guest Lecture (TSR) |
π ESaaS: 1.7-1.9 (review) π MMM: pp.127-137 (Ch 12) π MMM: pp.179-203 (Ch 16) π MMM: pp.207-227 (Ch 17) |
8 β’ 16 |
Thu 02/28 |
π» Course Project |
π Turn in Reflections Journal π» Project
|
None |
9 β’ — |
Tue 03/05 |
βοΈ Happy Mardi Gras! NO CLASS |
||
9 β’ — |
Thu 03/07 |
βοΈ Happy Mardi Gras! NO CLASS |
||
10 β’ 17 |
Tue 03/12 |
π Agile Teams & Team Communication |
π» Project: Stand-up π Lecture |
π ESaaS: Ch. 10 (review) π MMM: pp.78-83 (Ch 7) π MMM: pp.271-273 (from Ch 19) π MMM: pp.276-279 (from Ch 19) |
10 β’ 18 |
Thu 03/14 |
π Agile Team Roles & Pair Programming π Bugs & Debugging |
π Turn in Reflections Journal π» Project: Stand-up π Lecture |
π MMM: pp.29-37 (Ch 3) π MMM: pp.107-112 (Ch 10) |
11 β’ 19 |
Tue 03/19 |
π Concepts Check: Agile Teams π Bugs & Debugging |
π Concepts Check π» Project: Stand-up π Lecture |
None |
11 β’ 20 |
Thu 03/21 |
π Concepts Check: Debugging π Software Design |
π Turn in Reflections Journal π Concepts Check π» Project: Stand-up π Lecture (TW17) |
π ESaaS: Ch. 11 π MMM: pp.53-58 (Ch 5) π MMM: pp.257-260 (from Ch 19) |
12 β’ 21 |
Tue 03/26 |
π» Course Project |
π» Project
|
None |
12 β’ 22 |
Thu 03/28 |
π Software Design (cont.) |
π Turn in Reflections Journal π» Project: Stand-up π Lecture |
π ESaaS: Ch. 11 (review) |
13 β’ 23 |
Tue 04/02 |
π Concepts Check: Software Design π Running Software |
π Concepts Check π» Project: Stand-up π Lecture |
π ESaaS: Ch. 12 π ESaaS: Ch. 13 |
13 β’ 24 |
Thu 04/04 |
π Concepts Check: Running Software π Professionalism & Software Craftsmanship (RC17) |
π Turn in Reflections Journal π Concepts Check π» Project: Stand-up π Lecture |
π MMM: pp.3-9 (Ch 1) π MMM: pp.97-103 (Ch 9) |
14 β’ 25 |
Tue 04/09 |
π Professional Ethics & Conduct |
π» Project: Stand-up π Lecture |
ACM Code of Ethics IEEE Code of Ethics |
14 β’ 26 |
Thu 04/11 |
π Software & Technology Ethics |
π Turn in Reflections Journal π» Project: Stand-up π Lecture |
Selected Ethics Articles |
15 β’ — |
Tue 04/16 |
π¦ Happy Easter! NO CLASS |
||
15 β’ — |
Thu 04/18 |
π¦ Happy Easter! NO CLASS |
||
16 β’ 27 |
Tue 04/23 |
π» Course Project |
π» Project: Final Demo |
None |
16 β’ 28 |
Thu 04/25 |
π Concepts Check: Agile Metrics, Documentation π» Course Project (TS-Ch β¬ οΈ) |
π Turn in Reflections Journal π Concepts Check π» Project: Retrospective 4 |
None |
17 β’ 29 |
Tue 04/30 |
π Concepts Check: Professionalism & Ethics π Agile Metrics Analysis π Documentation |
π Turn in Reflection Paper π Concepts Check π Guest Lecture π» Project: Agile Metrics (TS-Ch) |
π ESaaS: Ch. 10 (review) π MMM: pp.163-175 (Ch 15) π MMM: pp.61-69 (Ch 6) π MMM: pp.260-264 (from Ch 19) |
18 β’ F |
Thu 05/09 |
π Final 4:30 PM - 6:30 PM |
π Turn in Issue Paper π Issue Paper Presentations |
None |
This is a course about being a professional. In order to do a professional job, you first have to be present. As such, attendance is required.
If there is a reason you must be absent, please arrange with the instructor in advance. Any absence not arranged with the instructor and approved in advance will result in a loss of the daily classtime participation grade. (See grading policy above.)
Please come to class on time and remain until class is dismissed.
Cell phones must be turned off during class.
Students must check their Loyola email daily.
As a professional, if you miss a deadline, there are consequences.
For major course projects, you should treat the instructor as your management. In many cases, with early notice of a delay in completion of work, project schedules can be adjusted to accomodate the delay. Managers who learn of a delay at or just before the deadline tend to perceive the employee as irresponsible, and may formally reprimand or even remove the employee from the project.
Notify the instructor as soon as you are aware of a delay in completion of project work, and you will have an opportunity to negotiate a new deadline, if possible. Please be aware that dependencies in subsquent deadlines in the project schedule may prevent such an accomodation.
For all other classroom activities, late work will not be accepted, subject to the exceptions below.
The only exceptions to this classroom policy are for absences which fall under the University Excused Absence policy.
Under that policy, excused absences require written documentation. Excused Absences due to illness have to be documented through the Office of Student Affairs or the Office of Disability Services.
Failure to appropriately document such absences will result in zero points received for the assignments due during that class period, and for the daily participation grade.
In a professional setting, there are significant consequences for dishonesty and lack of integrity, including legal consequences, market reaction, and employer discipline or termination of employment.
As your instructor for this course, I have gone out of my way to ensure that you have a great opportunity to learn the course material in both theoretical and concrete ways. Your part in this learning effort is to do your own original work and give appropriate credit for legitimate help you have received.
In keeping with this, students are expected to maintain the highest standards of academic and professional integrity. Behavior that violates these standards is not acceptable.
Some examples of unacceptable behavior in this course are:
Cheating on quizzes or examinations, plagiarism, improper acknowledgment of sources in essays, and the use of a single essay or paper in more than one course without permission are considered very serious offenses and shall be grounds for disciplinary action as outlined in the current bulletin. Agreement between the student and the faculty member that a violation has occurred, or no response from the student, will result in the assignment of a lower grade or an F to the test or assignment, or in the case of a serious violation, a lower grade or F for the course.
Dishonesty breaks trust, and will be taken very seriously.
In this course, if I suspect you are in violation of the University policy on Academic Honesty and Plagiarism in any way, whether on required assignments, exams, project work, extra credit assignments, or anything else related to this course, I will impose the highest penalty allowed.
For your benefit, the University policy on Academic Honesty and Plagiarism is available in the 2018 University Bulletin at http://2018bulletin.loyno.edu/academic-regulations/academic-honesty-and-plagiarism, including procedures associated with processing violations of the policy. Please read it and be familiar with it, as you will be responsible for ensuring your own compliance with it.
Please maintain an atmosphere of respect toward others.
https://lorafacsec.loyno.edu/fac-bin/Syllabus--Part%20II.pdf