Loyola Marymount University

Instructor: Tainã Coleman
Email: taina.coleman@lmu.edu
Office:
Office Hours: Tuesdays (In Person): 10:30am-11:30am / Thursdays (Exclusevely on Zoom):1pm-2pm
Zoom:

Warning

Please let me know if you are attending the Zoom office hours by sending me a message on Slack or an email.

Lecture Time:

  • Tu/Th 3:40-5:20 PM

Lecture Location:

Semester: Fall 2026

Course Description

As a group, you will pick your own software application to implement, propose, specify, document, develop, present, and manage a software project. You will also capture and manage the project configuration in a team github repository describing all the many different tools you are using. Next, you will write up and present a project proposal, where the group will present in front of the class. In addition, what is NOT EXPLICITLY stated in the bulletin paragraph is that there is A GREAT DEAL MORE to software engineering/development than just writing code and making it work:

What this course is REALLY about is the discipline of producing software applications as a mindful, creative, deliberate, thoughtful act of creating a software application from scratch. Therefore, you will write up several deliverable documents that will be submitted and evaluated as part of your project (all the details about the documents are further down this page in Assignments and Grading).

As a group, you will give informal oral bi-weekly status reports [bi-weekly stand-up] and you will give several presentations during the semester. The last activity of the semester is a group presentation of your project to an invited group of alumni, family members, and [most importantly] industry professionals

Learning Outcomes

  • Software Engineering Principles & Process: Understand the principles that guide the design, development, implementation, and management of modern software projects, and why disciplined process is what separates projects that succeed from those that fail.
  • Requirements & Customer Engagement: Develop the ability to elicit, negotiate, and document the real needs of an outside customer, delivering regular progress updates and a verified product while reflecting on your responsibility to the people who depend on the software.
  • Design & Architecture: Reason about design and architectural trade-offs, and cultivate an awareness of how those choices affect maintainability, accessibility, and the common good.
  • Documentation & Technical Communication: Explain a system’s operation, its errors, and its design to both technical and non-technical audiences through clear writing and presentations, a skill the software industry expects and rewards.
  • Teamwork & Project Management: Collaborate effectively on a semester-long team project, coordinating work, managing scope, and sharing accountability the way professional software teams do.
  • Ethical & Civic Reasoning: Examine the ethical and civic dimensions of the software you build, weighing the societal implications of technical decisions rather than treating them as purely technical.
  • Interdisciplinary & Applied Practice: Integrate knowledge across disciplines by collaborating with partners from engineering, psychology, the sciences, animation, and entrepreneurship, seeing how core software engineering concepts apply in varied real-world contexts.

This course carries the Engaged Learning flag, one of the requirements you must meet to graduate from the University, so it addresses specific learning outcomes that go beyond writing code. It devotes significant time to connecting course content with engaged learning activities, pairing the development of a substantial software application with the documentation, writing, and presentation work expected in the software industry. Together these activities provide well over the required 15 hours of engaged learning experience, and the assignments that develop these outcomes account for at least 20% of the total course grade. Through out-of-class reading and writing, along with opportunities for interdepartmental collaboration, you will strengthen your ability to integrate knowledge across contexts, disciplines, and sub-disciplines while reasoning about the civic and ethical implications of your work.

By the end of this course, students will be able to diagnose why software projects fail and recognize why they succeed; apply core software engineering principles to the design, development, implementation, and management of a non-trivial application; explain a system’s operation, its errors, and the reasoning behind its design; collaborate effectively on a year-long team project; elicit requirements from a real customer and deliver, test, and verify a working product that meets their needs; communicate progress through written documentation and presentations to technical and non-technical audiences; reason about the ethical and civic dimensions of software they build; and integrate knowledge across disciplines by evaluating software systems in varied contexts.

Textbooks and Materials

  • Head First Software Develoment by Dan Pilone & Russ Miles (ISBN-13: 978-0-596-52735-8 ISBN-10: 0-596-52735-7). The Head First book provides you with an in-depth look at the Agile Software Development Process, better known as simply Agile. It is also a fun read, lots of pictures, easily understandable but well-written text, and a bit of silliness to keep you engaged. You can probably read the entire book in about 4 hours. There will be ONE written assignment from this book, and you will be expected to know and understand the material it contains, and you may want to use the Agile method during the course of the semester to develop your projects.

  • UML Distilled Third Edition by Martin Fowler (ISBN-13: 978-0-32-119368-1 ISBN-10: 0-32-119368-7). The UML book provides you with a very concise reference for using the Unified Modeling Language to document and communicate your project design. This is a somewhat controversial topic, both within the LMU computer science department, and in the industry at large. Many people thin, that UML is completely obsolete. Just as many people do not agree. For this reason, I will acquaint you with the basics of this language, so that you will know it when you see it in the wild, and so that if you are called upon in your job to use it for documentation pyurposes you will have an understanding of how to do it properly. I recommend this book for your desk reference set.

Neither are available at the LMU library however

Assignments and Projects

Upkeep details

All group project information will be neatly organized in a private GitHub repository, so that your professor can see your groups’ work and provide you with evaluations. These evaluations will consist of feedback on your various work products, and will be uploaded back to your group’s project repository for your group members to see. NO ONE ELSE SHOULD HAVE ACCESS TO YOUR REPOSITORY FOR THE DURATION OF THE COURSE — since the evaluations are considered grades, this is a FERPA issue. In the industry, this kind of repository is known as a Software Development Library (SDL).

In addition, starting with a Git repository from the beginning will help you maintain your work and will be what you must do in your jobs after school on project teams in the industry. You may as well ge used to it now, if you aren’t already.

Warning

Your repository should be complete and up to date for every class, and might be spot-checked at any time. If there are corrections in process they should be so indicated. In addition, all documentation that is created must also be committed, as must your homework assignments.

About Exams

There is neither a mid-term exam nor a final exam for this course. Instead, the final project presentation and demonstration serves the purpose of the exams, and the deliverables replace tests and/or quizzes during the semester.

The final presentation will be done in front of as many faculty, alumni, and selected invitees from industry as can attend, as well as family and friends of the students.

Grades for the course are assigned according to the weighting factors shown in the tables below (see Assignments and Grading). Finally, other professors may be invited to all of the presentations, not just the final one, and will be asked to provide the students with questions about their project designs, and to make suggestions.

There will be two written assignments during the course of the semester. One is an essay, and the other is a set of questions from the Peloni textbook [see next section].

Warning

All written assignments are expected to be submitted by the start of class on the date the assignment is due. Deviation from this process requires prior consent of the instructor.

The final words on assignments: treat assignments seriously, just like they would be treated in any real-world job in the industry. Spelling and grammar, proper punctuation, and so forth all count for every assignment.

There will also be some fun in-class quizzes during the semester, usually at the end of class on the Monday session, or sometimes on Wednesdays. These quizzes will be done using Kahoot. They are primarily to give you a chance to check your knowledge of the material for the week, and to reiterate some of the important points of the class.

Lecture Attendance

  • Not mandatory to attend: This is a course that is majority guided by a group activity, therefore is strongly advised that all group members attend instruction. Some lecture content may not be summarized in the course notes, like questions asked by peers, classwork exercises, and hints for homeworks.
  • No need to inform me of missed lecture: I’ll just assume you’ll be making things up by reading online / asking friends / working things out with your group members.
  • Lectures are participatory: come prepared to ask and answer questions to make the most out of your education!
  • Laptops discouraged: take notes by hand and summarize the important points — don’t copy verbatim.

Work Load Expectations

At LMU, every unit you are enrolled in is considered 3 hours of weekly effort.

Warning

Since this is a 4-unit class, you should expect to spend 12 hours per week on this course.

This includes time spent in lecture, time spent on homework and your project. Thus, you should expect to spend an average of 9 hours per week outside of lecture on this course. I recommend keeping track of how much time you spend on this course each week to ensure you are meeting this expectation!

Finding Help for the Course

LMU CMSI has a ton of resources and people who are thrilled to help you succeed! See the following opportunities and avenues for getting help in this class’ material.

  • Slack Messaging: Download Slack (slack.com) and join the LMU CS workspace (lmucs.slack.com). Feel free to send questions any time of day and I will respond when I can. If I don't respond within 24 hours, please follow up with a reminder message!

  • Office Hours: I have both in-person and Zoom office hours each week (see top of syllabus for details).

Warning

Remember that the TAs are students too and have busy schedules. Please refrain from messaging them outside of their scheduled hours. Do not ask TAs to do your work or debugging for you — they’ve been explicitly told not to do so.

I recommend going to the Keck Lab to work on assignments during TA office hours. Try to do so well in advance of deadlines!

Tentative Schedule of Topics

The following is a tentative schedule for topics to be covered in the course and is subject to change. For each topic, the relevant notes are also given. I also recommend that you check Brightspace regularly for information on the course.

DateLecture TopicOptional ReadingHomework
Tue Sep 1
Thu Sep 3
Tue Sep 8
Thu Sep 10
Tue Sep 15
Thu Sep 17
Tue Sep 22
Thu Sep 24
Tue Sep 29
Thu Oct 1
Tue Oct 6
Thu Oct 8
Tue Oct 13
Thu Oct 15
Tue Oct 20
Thu Oct 22
Tue Oct 27
Thu Oct 29
Tue Nov 3
Thu Nov 5
Tue Nov 10
Thu Nov 12
Tue Nov 17
Thu Nov 19
Tue Nov 24
Thu Nov 26No class — Thanksgiving Holiday
Tue Dec 1
Thu Dec 3
Tue Dec 8
Thu Dec 10

Assignments and Grading

  • Project Grade [75%]: Your final grade for the project will be weighted by deliverable sections. The project grade is worth 75% of the total grade. The sections below will add up to 100% or ALL of the 75%:
DeliverableWeight
Project Proposal Document/Presentation5%
Requirements Specification Document8%
Development Schedule [in SDP; 2 deliveries]2%
Software Development Plan [SDP]5%
Software/Database Design Description [arch. view]10%
Software/Database Design Description [detail view]10%
Critical Design Review [CDR] Presentation5%
ALPHA/BETA Presentation and Demonstration10%
Unit/Integration/Acceptance Test Plan5%
Final Product Delivery [SDL] and Presentation30%
Users Manual [2 – 3 deliveries]6%
Oral and Written Status Reports4%
  • Homework [15%]: Smaller coding/open questions/ paper synopsis assignments.

  • Excredit paper assignment [10%]: A paper/article synopsis with some open questions.

Note

All work is evaluated for both technical merit and quality of written and/or oral presentation. Find yourself a good spelling and grammar checker, or a trusted human editor, if you are having any difficulty with the rules of standard English language usage. Another excellent resource is the Academic Resource Center ARC, located on the south side of Daum Hall. The center takes appointments, and also allows drop-in consultation sessions, and they have a number of good benefits. Call (310) 338-2847 to schedule an appointment.

Another thing to remember is, your coding style is just as important a part of your assignment evaluations as correctly running code. I WILL NOT HESITATE to take points off for code that has hard-coded numbers, lack of proper comments, poorly aligned indenting, etc. EVEN IF THE CODE RUNS CORRECTLY!

Further, let me re-state that if you are using compiled code like C++ or C-sharp, code that does not compile will be not be evaluated and you will have to do it over to get any credit for the assignment.

Warning

Remember: I won’t have any idea how to build and run your project code unless you give me explicit instructions on how to do so somewhere on the project pages! The best place to do this is in the README.md file in your GitHub repository, which is also a great place to put a very brief general project description. At the end of the semester, when I get ready to do the final evaluation of your project, if I can’t easily make it build and run, there will be points taken off. Coming to me after the fact and demonstrating on YOUR machine that your project runs will not earn back any points. Forewarned is forearmed, as the saying goes.

Grading Scale

You are guaranteed the following grade based on your percentage score in the course:

PercentageGrade
[93, 100]A
[90, 93)A−
[87, 90)B+
[83, 87)B
[80, 83)B−
[77, 80)C+
[73, 77)C
[70, 73)C−
[65, 70)D
[0, 65)F

I will round up your final grade to the nearest half-point. For example, an 89.5 will be rounded up to a 90.0 (A-) but an 89.49 will be rounded down to an 89.0 (B+). Take advantage of every assignment and extra credit opportunity to maximize your grade!

Late Work Policy

Warning

All assignments are due at exactly the time indicated by the method specified.

Assignments not turned in by the deadline will receive a 0. Extensions may be granted only under exceptional circumstances and on a case-by-case basis. Start assignments early and ask for help when you need it to avoid late submissions!

Academic Integrity

Students are encouraged to talk and think about problems in groups, but each submission should be their own, containing no code that has been copy-pasted from another student. No matter who you got help from, by the time you submit your assignment you should be able to explain every line of code in your submission! We take plagiarism very seriously, and each submission will be run through a similarity-checking tool. We are very methodical about reporting academic honesty violations and do not hesitate to escalate any suspected cases through official university channels.

Danger

All forms of plagiarism will result in severe disciplinary action.

The following are examples (not a comprehensive list!) of unacceptable behavior in this course:

  • Copying non-trivial amounts of code from ANY other source into an assignment (excluding small things from StackOverflow like how to use Python list comprehension to simplify some code). This includes code found on the internet or through the use of a generative AI model like ChatGPT.
  • Copying code from another student’s submission.
  • Copying another group’s solutions on a classwork exercise.
  • Re-using or copying work or solution sets from a previous semester, even if it is your own work from when you previously took the course.

If you plan to copy anything from the internet, ask first!

On Responsible AI usage

Academic honesty includes the appropriate use of technology as an aid for learning and productivity. This includes but is not limited to LLM-based generative artificial intelligence tools such as Claude, ChatGPT, Gemini, and Copilot.

Modern GenAI provides fast solutions to a variety of computing problems but must be used responsibly to get the most out of your education. GenAI will not always be helpful, especially when asked to write code for scenarios it cannot recognize. It cannot independently validate the code that it produces, and will frequently produce bugs and security vulnerabilities, making things worse for you. It will not be available for job interviews. As a student and future software professional, you have a moral and ethical responsibility to deeply understand every line of the software you author and should therefore employ GenAI in your coursework sparingly, especially when its use might rob you of the stretch-zone learning that comes from crafting programs on your own.

That said, there are several acceptable use cases of GenAI in programmatic assignments, including:

Generating short documentation strings and type hints. Finding examples and explanations for syntactic forms [e.g., how to use the spread operator; how to assign variables directly from an array or object; how to construct a dictionary comprehension; how to unwrap an optional, and so on]. Prompt the AI for the how-to’s, not your final code. Interpreting error messages, as these might be pretty cryptic! Sometimes the AI can be a useful tutor when explaining things it is familiar with. Generating unit tests for edge cases. When it finds something you overlooked, make a mental or written note so you can find these cases on your own next time. Brainstorming new ideas for applications.

Warning

Remember your four As: you MAY use technologies such as GenAI to Augment ✅, Amplify ✅ and Accelerate ✅ your learning; NEVER use technology to Avoid ❌ learning.

Danger

If you DO use GenAI for any of your work, that must be indicated somewhere in your documentation with an AI use disclosure: “This portion of the work was developed with assistance from [tool and version, e.g., Claude Opus 4.5]. I used it to [briefly describe the task: e.g., generate an initial implementation of the sorting module, draft this section of the design document, debug the authentication flow]. I have reviewed, tested, and understand all AI-generated content included here, and I take full responsibility for its correctness and its fit with the rest of the project.”

University Policy Statement on Academic Honesty

Loyola Marymount University is a community dedicated to academic excellence, student-centered education, and the Jesuit and Marymount traditions. As such, the University expects all members of its community to act with honesty and integrity at all times, especially in their academic work. Academic honesty requires that all members of the LMU community act with integrity, respect their own intellectual and creative work as well as that of others, acknowledge sources consistently and completely, act honestly during exams and on assignments, and report results accurately. As an LMU Lion, by the Lion’s Code, you are pledged to join the discourse of the academy with honesty of voice and integrity of scholarship.

Academic dishonesty will be treated as an extremely serious matter, with serious consequences that can range from receiving no credit for assignments/tests to expulsion. It is never permissible to turn in any work that has been copied from another student or copied from a source (including Internet) without properly acknowledging/citing the source. It is never permissible to work on an assignment, exam, quiz or any project with another person unless your instructor has indicated so in the written instructions/guidelines. It is your responsibility to make sure that your work meets the standard of academic honesty set forth in the “Academic Honesty Policy” found at: https://academics.lmu.edu/honesty/.

Tentative Nature of the Syllabus

This syllabus and its contents are subject to revision; students are responsible for any changes or modifications announced or distributed in class or posted here and/or on Brightspace.

University Resources

Expectations for Classroom Behavior

Students are encouraged to engage respectfully with each other. There are several documents describing expectations for student conduct and behavior at LMU. Please review the documents listed below.

Respect for self and others: As an LMU Lion, by the Lion’s Code, you are pledged to join the discourse of the academy with honesty of voice and integrity of scholarship and to show respect for staff, professors, and other students.

Computer Science Department - Student Guide

Visit https://sites.google.com/view/lmucs for resources and guides to help you succeed in your computer science courses.

Academic Degree Requirements and Policies

Visit https://bulletin.lmu.edu/academic-degree-requirements-policies/ page for more detailed information on academic policies and requirements.

Disability Support Services (DSS) Accommodations

The DSS Office offers resources to enable students with physical, learning, ADD/ADHD, psychiatric disabilities and those on the autism spectrum to achieve maximum independence while pursuing their educational goals. Staff specialists interact with all areas of the University to eliminate physical and attitudinal barriers. Students must provide documentation for their disability from an appropriate licensed professional. Services are offered to students who have established disabilities under state and federal laws. We also advise students, faculty and staff regarding disability issues.

Students who need reasonable modifications, special assistance, academic accommodations or housing accommodations should direct their request to the DSS Office as soon as possible. All discussions will remain confidential. The DSS Office is located on the 2nd floor of Daum Hall and may be reached by email at dsslmu@lmu.edu or phone at (310) 338-4216. Please visit http://www.lmu.edu/dss for additional information.

Academic Resource Center

The Academic Resource Center provides writing support and peer tutoring in a variety of subjects. Be sure to make tutoring a part of your academic experience when you want feedback on a writing project or help understanding course concepts and preparing for exams. To make an appointment with a tutor, follow the “Writing & Course Tutoring” link in myLMU. Visit https://academics.lmu.edu/arc/ for more information.

Emergency Preparedness Information

To report an emergency or suspicious activity, contact the LMU Department of Public Safety by phone (x222 or 310-338-2893) or at the nearest emergency call box. In the event of an evacuation, follow the evacuation signage throughout the building to the designated safe refuge area where you will receive further instruction from Public Safety or a Building Captain. For more safety information and preparedness tips, visit http://www.lmu.edu/emergency

Public Safety can be reached 24 hours a day/7 days a week/365 days a year at 310.338.2893 (or x222 from a campus phone). In a life-threatening emergency, call 9-1-1 first and then call Public Safety if possible. To report an incident, call Public Safety, submit an e-report on the Public Safety website or via the Rave Guardian mobile app, or visit Public Safety in Foley Annex. Review evacuation information and other safety tips posted in each learning space. Make sure you are registered to receive emergency alerts — confirm your contact info at lmu.edu/alert, and download Rave Guardian in the Apple or Google Play store. For more information and emergency preparedness tips, visit https://publicsafety.lmu.edu. For information and updates on COVID please see: https://www.lmu.edu/together/.

Community of Care

LMU provides a collaborative case-management program to enhance community safety and support student well-being. This program provides support for prevention, assessment, and intervention as needed to assist students with navigating personal and academic challenges. Faculty can make a community of care referral for students. To learn more about their services, visit: https://studentaffairs.lmu.edu/wellness/coc/learnmoreaboutus/.