Skip to content

Syllabus

Course Overview

Instructor

Faculty

Graduate Teaching Assistant

     

Course Meetings & Virtual Spaces

Course Meeting Times


Virtual Course Spaces


Course Description

Overview

Application of formal software processes, engineering methods, and documentation standards to the development of large-scale software systems. Students will work to collaboratively develop software, and will explore cutting edge software engineering research.

Student Learning Outcomes

  • Knowledge of software engineering principles for building software at scale
  • Understanding how to work in a team to collaboratively develop software
  • Effective Strategies for designing software
  • How to measure software development progress along several different dimensions
  • Knowledge of tools and techniques to assist in the construction of large-scale software systems.
  • Knowledge of cutting-edge research related to software engineering

Enrollment Requirements

Prerequisites: Students should have successfully completed the course COP 4331C Processes for Object Oriented Software Development with a grade of ‘C’ or better.

Required Textbooks & Other Course Materials

There is no required textbook for this course, however, useful reading materials will be posted to the course schedule page that supplement the class lectures and will serve as appropriate reference material.

I will occasionally reference information from the book "Software Engineering at Google" which is available as a (legal) free download here.

All course materials will either be freely available online, or available as a PDF on Webcourses.



Course Structure

Course Modality

This is an in-person course that will combine synchronous and asynchronous elements, meaning that we will meet together in person at designated a time each week, and the rest of the week’s activities and discussions will be completed according to your own schedule via Webcourses. All important due dates will be listed on the Course Schedule. All work will be submitted via Webcourses (for discussions/quizzes) unless otherwise noted by the instructor.

Lecture Format

Lectures in this course will be dynamic in nature. For most classes we will have one topic to cover. Lectures on course concepts will often be followed up with in-class activities/demonstrations. Please bring a laptop or other personal computing device to class so that you can participate in the interactive quizzes and in-class activities (See the course technology requirements).

Class Etiquette

I aim to create a fun but safe and conducive learning environment for everyone. To foster this environment, I ask the following:

  • Certain lectures will have in-class activities to help demonstrate concepts This is a time to work with your classmates and prove out ideas that are taught in the course.
  • If you have a question during lecture, please raise your hand I am happy to answer questions, but please keep it cordial and respectful.
  • Please silence an cellular phones or other devices in class This will help to ensure a respectful environment for all.

Attendance/Participation

Attendance will not be recorded in the lecture. That being the case, students are still expected to attend all lectures. Lectures provide valuable opportunities for students to ask questions and receive clarification regarding any presented material. If a student misses a lecture, it is their responsibility to independently study and learn the presented material. The presentation of topics follows a carefully planned sequence, as the comprehension of new material requires the mastery of topics previously presented. It is critical that students remain current in their study of topics, so as not to fall behind. Please reach out for assistance if something is not clear regarding the covered topics! Do not procrastinate and simply move on, as a thorough understanding of programming necessitates the cumulative understanding gained from previous lectures.



Course Evaluation & Assignments

Grading

Grading Scale

Your work will be graded on the following scale:

B+ 89%-87% C+ 79%-77% D+ 69%-67%
A 100%-93% B 86%-83% C 76%-73% D 66%-63%
A- 92%-90% B- 82%-80% C- 73%-70% D- 62%-60%

Note

The Instructor reserves the right to modify the grading scale. Note that UCF does not officially record "+" grades, and hence these will be reflected as the letter grade.

Grading Breakdown

Grading Breakdown
Midterm Exam 15%
Quizzes 5%
Individual Assignments 10%
Software Development Project 30%
Research Reproduction Project 30%
Research Paper Presentation 5%
Research Paper Reviews 5%

Course Assessments

Midterm Exam (15%)

Students will be assessed on their knowledge of the presented content through one in-person midterm exam. The exam will be mainly essay-based and will assess your knowledge of the course material we cover in class.

All exams are closed books/notes/electronics/neighbors with a time limit. There is a strict procedure on exam days to ensure the highest integrity of exam attempts. All exams are administered in-person. It is of utmost importance that students follow these rules. Please, take careful note of the following.

  • Bring a valid photo ID when taking the exam. This can be a driver’s license or Knights card. Failure to present a valid ID, and the resulting inability to take the exam, will lead the offending student to receive a score of 0 on the examination.
  • Only wooden pencils/mechanical pencils and erasers may be used to complete the exam. Pens are not permitted!
  • All electronics (phones, laptops, smart watches, etc.) must be turned off and put away. Any electronic device that sounds or goes off during the examination will result in that student receiving a 0 on the exam (and potentially a final course grade of “F”, should cheating violations be discovered).
  • Should a student need to ask a question during the examination, they should raise their hand and one of the proctors will come to address the inquiry.
  • Students must never glance at a classmate’s exam. Any student caught doing this will be referred to the department for cheating violations. Please keep your eyes directed on your exam only.
  • If students have finished the exam, then students can walk up to the instructor to hand in their exam. If there are multiple students up at once, please no talking. Any talking while waiting to turn in the exam will result in a score of 0 on the exam.
  • Please, make sure to arrive early. If you are running late, you may still be permitted to take the examination (using only the abbreviated remaining time allotted for the exam). However, once any student has submitted their examination and left the classroom, no additional late arriving students will be allowed to take the examination. In this situation, the tardy student will receive a score of 0 on the examination.
  • Students will not be allowed to use the restroom during the examination. Please make sure to use the restroom before the exam. If you must leave, you will be return to finish.

Individual Assignments (10%)

Students will complete assignments that will help to set them up for success in the course projects. These are smaller assignments that are to be completed individually. The topics of these assignments span from Git and GitHub basics, to Software Archeology and Continuous Deployment.

Software Development Project (30%)

Students will complete a team-oriented, hands-on software development assignment. This assignment is associated with a Web application written in Javascript and Typescript and will be completed in two parts.

Research Reproduction Project (30%)

In this project, you will choose a research paper for which code-related artifacts were shared. You will be tasked with reproducing the results of the paper, and improving several aspects of the project from documentation to repository structure.

Quizzes (5%)

Students will be assessed on general concepts presented in the lectures with a mixture of multiple choice, true/false, and fill in the blank questions. All quizzes are graded for completion only, will be given in class, and will help the instructor to determine how well the class is learning the material from lectures.

Research Paper Presentations (5%)

Each class in the second half of the semester will cover two-three paper presentations by the students in project groups followed by a discussion. The presentations must be done by students on the date assigned by the instructor in the course schedule. The presentations made by students will be graded and thus, missing the date of the presentation will result in “0” grade for that particular assignment. The students, presenting a paper in the class must email their presentation (.pdf and .ppt/.key) to the instructor no later than 12:00pm (noon) on the day before the paper is presented.

Assignment Due Dates

Coming Soon!

Collaboration & AI Assistant Policies

Collaboration Policy

Assignments should be completed individually by students, however, projects in this course are collaborative in nature and should be completed in a team setting, with teams of 4-5 students. You will be assigned to a team in the second week of class that you will work with for the duration of the semester.

Policy on the Use of AI Coding Tools

Recently, we have seen the introduction and proliferation of AI tools (e.g., OpenAI ChatGPT and GitHub CoPilot) that are able to aid software engineers in their work. In this class, it is perfectly acceptable to make use of these AI assistants, and in fact, I would encourage students to try these tools and become familiar with them. The main reason for this is that learning to use AI effectively is an emerging and important skill for software engineers, and I will cover some basics about how to use these tools in certain lectures.

When using AI assistants, please also consider the following policies and suggestions:

  • Put Effort into Crafting High-Quality Prompts: Tools like ChatGPT and CoPilot, while useful, have serious limitations, and hence are often incorrect. If you provide minimum effort prompts, you will get low quality results. You will need to refine your prompts in order to get good outcomes. This will take concerted effort.
  • Be Aware of AI Limitations: Even if you have crafted well-constructed prompts, do not blindly trust anything an AI assistant tool says or outputs. If it gives a fact or explanation, assume that it is wrong unless you either know it to be correct or check it with another source. You are responsible for any errors or omissions provided by the tool, and these tools tend to work best for topics you fully understand.
  • Give the AI Tool Proper Attribution: AI is a tool, and one that you must acknowledge using. Thus, you must provide these tools proper attribution if you use them for assignments. As such, you are required to provide an entry in your Collaboration log to document when you have used one of these tools.
  • Know When to Use and Not Use AI Tools Be thoughtful about when AI tools are useful and when they are not. Don't use the tool if it isn't appropriate, or if you do not have full grasp of a given concept from class.

Late Policy & Makeups

All assignments and projects must be submitted through Webcourses unless indicated otherwise by the instructor. The only submission that is acceptable to turn in via email is the slide deck for the research paper presentation. All of these assignments will have a specified deadline as set by the instructor and posted on Webcourses. Please take note of the following for late submissions on certain assignments.

Assignments and Project components will be accepted up to 48 hours after the original deadline. However, there will be a late penalty applied. The late penalty is an automatic 10% deduction from the assessment grade for 24 hours late, and 20% for 48 hours late. For example, if Assignment 1 is due on Friday February 3 at 11:59 pm, then the assignment can be accepted up until Saturday February 5 at 11:59 pm with the 20% late penalty applied. Please note that this deduction is a percentage and not the actual number of points deducted. For example, if the assignment is worth 10 points and submitted within the late deadline (24 hours after the original deadline), then 1.5 points will be deducted. This means the potential highest grade a student could receive is an 8.5 / 10 (B on the letter grading scale). After the 24- hour window, then the assignment will be locked from future submissions. Unexcused late submissions will not be accepted after the late deadline! Please make sure to plan accordingly with the assignments. Time management and planning represent a crucial factor for success in the course.

Another important note! If you plan on submitting an assignment within 48-hour late window, please note that the “procrastination policy” will still be applied. In other words, the course instructor and TAs may not be able to answer questions about the late assignment.

If you become ill, if you have a family emergency, or if something else happens that prevents you from completing work on time (either assignments or exams), please communicate with Dr. Moran. We will devise a plan to help you complete work on an altered schedule.

Grade Dissemination

All grades for assessments will be available to view at any time in Webcourses. Students will need to access Webcourses with their NID and password.

Make-up Exams & Assignments

Make-up exams will be given in the event of university excused absences. Excused absences, as defined by the Academic Regulations and Procedures governing the university, may include: “illness, serious family emergencies, special curricular requirements (e.g., judging trips, field trips, professional conferences), military obligations, severe weather conditions, and religious holidays.” Furthermore, “participation in official University sponsored activities, such as music performances, athletic competition, or debate” constitutes an excused absence.

In the case of planned, university-excused absences, make-up exams must be arranged in advance with the instructor with proof of the university-excused absence. Of course, some excused absences cannot be foreseen (e.g., illnesses or serious family emergencies). In such cases, students must contact the instructor as soon as possible to schedule a make-up exam. The instructor will also ask for documented proof of such an absence. If a student fails to contact the instructor in a timely manner (typically within 24 hours of missing the exam), they may be denied a make-up exam. Assignment deadlines may also be extended in such situations at the sole discretion of the instructor. Once the grades for an assessment are posted, the instructor reserves the right to deny the extension request. Please note that TAs cannot grant extension requests. All extension requests must be approved by the course instructor.



Course Logistics

Technology Requirements

Hardware

Students will be expected to have access to a computer frequently, as well as a stable internet connection and audio devices (either speakers or headphones). If you do not own a computer, there are computers accessible in all of UCF’s student computer labs. For further information on computer labs, please see the following website.

Software

You are expected to use an Integrated Development Environment OR Editor/Terminal of your choice.

Programming assignments in this course will need to be typed and tested using either an integrated development environment or a combination of a coding text editor and terminal. The instructions are also posted in Webcourses.

Zoom

Office hours will be Hybrid this semester through Zoom (a meeting software). Please take the time to familiarize yourself with Zoom by visiting the UCF Zoom Guides.

You must sign into Zoom sessions using your UCF NID and password. You can contact Webcourses@UCF Support if you have any technical issues accessing Zoom.



Course Policy Statements

Communication Policy

The official mode of communication for this course is through Ed Discussions. Emails should only be sent to the instructor in extenuating circumstances (e.g., you will need to miss a class or exam for an emergency) All communications between students and between students and the instructor should be both respectful and professional. Your UCF Email address is the only official student email at UCF, and I will send announcements via Ed Discussions that will also get pushed to your UCF email addresses. Students are responsible for checking both Ed Discussions and their UCF email on a frequent and regular basis. See www.knightsemail.ucf.edu for further information. If you send the instructor an email from a personal/third party account, the message will be ignored.

Whenever a student sends the instructor an email, or a message on Ed Discussions, please make sure to add the following to the subject line: “: ” (ex. Johnny Knights, CEN-5016, SDE Project Part I). It is imperative for me to know the section in which you are enrolled to answer your question(s). In the interest of professional, clear communication when writing course messages and emails, please do not include shorthand notation or acronyms (such as “TTYL”, “LOL”, or “IMO”).

Please allow the instructor up to 48 hours to respond to student messages on Ed Discussions and emails (2 business days, not including weekends and holidays). I will do my very best to respond to your messages and emails in a timely manner. In the unlikely event that a 48-hour interval after the time stamp has passed, please do resend the message or email so it will appear at the top of my inbox.

Office Hours Policy

If students plan to attend my office hours, please note the following:

  • Make sure to bring a positive attitude.
  • If there is a line outside my office, please be patient. I will do my best to get you as soon as possible. Feel free to talk quietly to other students waiting in line regarding your inquiry if this does not violate the cheating policy. You might even find that you have your question answered. Such group discussions can also help to reinforce your understanding, making the wait worthwhile.
  • Try to be prepared to identify and to verbalize the questions you want to ask? It is often evident when students have made at least some effort to understand the material.
  • Have reasonable expectations. The instructor and/or TA will not simply give out answers directly, rather they will ask questions/make comments that will lead you in the right direction to facilitate understanding.

Procrastination Policy

Students are provided an appropriate window of time to complete each assignment from its official posting date to its due date. Once posted, students are expected to attempt assignments promptly, so that they may seek assistance to identify and resolve any issues in an efficient and timely manner. Therefore, the instructor or TAs are not required (but may choose to, if willing and able) to answer emails regarding a particular assignment after midnight EST on its due date. After midnight EST on the published due date, it will be assumed that the student is able to complete the assignment successfully. This policy is to ensure that students attempt the assignment before the actual due date, so that they may seek any needed assistance without procrastinating.

Programming Assignment Message Process/Response Policy

Throughout the semester, students will likely need to contact the course instructor with programming assignment questions and/or for problem help. It is common for students to unintentionally make mistaken assumptions regarding where the errors lie within files. This leads to erroneous beliefs as to where the actual errors lie within code. In such situations, when students draft messages with explanations, code fragments, or entire code files, a tremendous amount of time is spent by the course instructor deciphering the communication and debugging the code. They may discover that the actual error lies somewhere else than where the student believed it to exist.

Such scenarios cause two problems. First, as my work hours are a limited resource, they must be used efficiently to provide optimal support for the class. Additionally, such communications result in slow response times, which can be frustrating for students. Therefore, for the above reasons, if students are struggling with any code error, they must attend office hours in-person or via Zoom to receive live support. This arrangement will allow the course instructor and TAs to fully understand the situation quickly and to efficiently pinpoint where the error lies within the code, saving precious hours for both students and staff. If student messages cannot be answered efficiently, they will be asked to attend office hours, in person or via Zoom. If students have general questions regarding programming assignments (such as clarifications on directions), these can still be addressed via messages on Ed Discussions. However, for more specific inquiries or problems, students will be asked to address these issues during office hours.

Grade Dispute Policy

The instructor will post the grades for all assessments on Webcourses. Once a grade is posted, the instructor will set a deadline for students to communicate any concerns regarding the grade received on the assessment. When messaging about grade concerns to the instructor, DO NOT write the overall grade received for the assessment. Instead, students should indicate what points were deducted that they wish to dispute with a clear explanation of the dispute. Before writing the grade dispute email, make sure to check the comments left by the grader. After the stated deadline, the instructor will not consider or open a case for potential grade changes. Therefore, it is the student’s responsibility to communicate all grade dispute concerns within a timely manner.

This course may contain copyright protected materials such as audio or video clips, images, text materials, etc. These items are being used with regard to the Fair Use doctrine in order to enhance the learning environment. Please do not copy, duplicate, download or distribute these items. The use of these materials is strictly reserved for this classroom environment and your use only. All copyright materials are credited to the copyright holder.

Academic Integrity

Students should familiarize themselves with UCF’s Rules of Conduct. According to Section 1, “Academic Misconduct,” students are prohibited from engaging in

  1. Unauthorized assistance: Using or attempting to use unauthorized materials, information or study aids in any academic exercise unless specifically authorized by the instructor of record. The unauthorized possession of examination or course-related material also constitutes cheating.
  2. Communication to another through written, visual, electronic, or oral means: The presentation of material which has not been studied or learned, but rather was obtained through someone else’s efforts and used as part of an examination, course assignment, or project.
  3. Commercial Use of Academic Material: Selling of course material to another person, student, and/or uploading course material to a third-party vendor without authorization or without the express written permission of the university and the instructor. Course materials include but are not limited to class notes, Instructor’s PowerPoints, course syllabi, tests, quizzes, labs, instruction sheets, homework, study guides, handouts, etc.
  4. Falsifying or misrepresenting the student’s own academic work.
  5. Plagiarism: Using or appropriating another’s work without any indication of the source, thereby attempting to convey the impression that such work is the student’s own.
  6. Multiple Submissions: Submitting the same academic work for credit more than once without the express written permission of the instructor.
  7. Helping another violate academic behavior standards.
  8. Soliciting assistance with academic coursework and/or degree requirements.
Responses to Academic Dishonesty, Plagiarism, or Cheating

Students caught cheating (on any assessment) are subject to a variety of disciplinary actions, at the sole discretion of the course instructor. At absolute minimum, students will receive zero credit and a warning for any work on which they are caught cheating. In most cases, I will assign a final course grade of “F” to any individual caught cheating in this course. Students may also be referred to the Office of Student Conduct for further disciplinary action, pursuant to the policies stated in the Golden Rule Student Handbook. If you engage in an act of academic dishonesty in this course, a Z designation may also be appended to your grade. Details about UCF’s Z designation for incidents of academic dishonesty are available online:

http://goldenrule.sdes.ucf.edu/zgrade

Please, avoid all of this by demonstrating the values of honesty, trust, and integrity. No grade merits compromising your integrity and losing your moral compass. Stay true to yourself and do the right thing: take the zero, not the dishonest shortcut. I do believe that there are benefits to students discussing concepts and assignments outside of their assigned groups. However, there exists a fine line for what constitutes cheating. Students are expected to code their programming assignments either individually (for assignments) or in their groups (for projects). A general rule with programming assignments is to never share your code (in parts or in whole) with other students (or groups) or even look at another student’s code. Instead, ask your classmates broad questions. Here are some sample questions that are appropriate to ask and do not constitute cheating.

  • My code compiles with this strange error message. What does that mean?
  • Can you clarify what the instructor means in the directions for this assignment?
  • Can you explain what happens in memory when a variable is declared?
  • I am not sure how all these user defined functions in the large program assignment work together. Can you explain how they are all are supposed to work together?

Do not ask your classmates if you can see their code or if they can fix yours (unless they are in your group for the course projects). If you are reading another student’s code for help, you are crossing the line as far as cheating goes in this course. Please, do attend office hours (the TAs’ hours or mine) if you get stuck and need help, whether it is the concepts or the code! If you have any questions regarding what constitutes cheating in this course, come speak with me! We are here to help you succeed!

Clarification about online sources: It is fine to use Google and other sites to look for snippets of publicly available code that might help you with assignments, and it is okay to use a limited amount of such code in your own work. You should not take entire solutions or large amounts of code from the web. And you must clearly comment your code to indicate which code and ideas are purely your own, which code or ideas are borrowed or adapted from elsewhere, and where the other code or ideas came from.

Unauthorized Distribution of Class Notes

Third parties may attempt to connect with you to sell your notes and other course information from this class. Distributing course materials to a third party without my authorization is a violation of our University’s Rules of Conduct. Please be aware that such class materials that may have already been given to such third parties may contain errors, which could affect your performance or grade. Recommendations for success in this course include coming to class on a routine basis, visiting me during my office hours, connecting with the Teaching Assistant (TA), and making use of the Student Academic Resource Center (SARC), the University Writing Center (UWC), the Math Lab, etc. If a third party should contact you regarding such an offer, I would appreciate your bringing this to my attention. We all play a part in creating a course climate of integrity.

In-Class Recording

Students may, without prior notice, record video or audio of a class lecture for a class in which the student is enrolled for their own personal educational use. A class lecture is defined as a formal or methodical oral presentation as part of a university course intended to present information or teach enrolled students about a particular subject. Recording class activities other than class lectures, including but not limited to lab sessions, student presentations (whether individually or part of a group), class discussion (except when incidental to and incorporated within a class lecture), clinical presentations such as patient history, academic exercises involving student participation, test or examination administrations, field trips, private conversations between students in the class or between a student and the faculty member, and invited guest speakers is prohibited. Recordings may not be used as a substitute for class participation and class attendance, and may not be published or shared without the written consent of the faculty member. Failure to adhere to these requirements may constitute a violation of the University’s Student Code of Conduct as described in the Golden Rule.

Course Accessibility Statement

The University of Central Florida is committed to providing access and inclusion for all persons with disabilities. Students with disabilities who need access to course content due to course design limitations should contact the professor as soon as possible. Students should also connect with Student Accessibility Services (SAS) (Ferrell Commons 185, sas@ucf.edu, phone 407-823-2371). For students connected with SAS, a Course Accessibility Letter may be created and sent to professors, which informs faculty of potential course access and accommodations that might be necessary and reasonable. Determining reasonable access and accommodations requires consideration of the course design, course learning objectives and the individual academic and course barriers experienced by the student. Further conversation with SAS, faculty and the student may be warranted to ensure an accessible course experience.

UCF Cares

During your UCF career, you may experience challenges including struggles with academics, finances, or your personal well-being. UCF has a multitude of resources available to all students. Please visit UCFCares.com if you are seeking resources and support, or if you are worried about a friend or classmate. Free services and information are included for a variety of student concerns, including but not limited to alcohol use, bias incidents, mental health concerns, and financial challenges. You can also e- mail ucfcares@ucf.edu with questions or for additional assistance. You can reach a UCF Cares staff member between 8 a.m. and 5 p.m. by calling 407-823-5607. If you are in immediate distress, please call Counseling and Psychological Services to speak directly with a counselor 24/7 at 407-823-2811, or please call 911.

Campus Safety Statement

Emergencies on campus are rare, but if one should arise during class, everyone needs to work together. Students should be aware of their surroundings and familiar with some basic safety and security concepts.

  • In case of an emergency, dial 911 for assistance.
  • Every UCF classroom contains an emergency procedure guide posted on a wall near the door. Students should make a note of the guide’s physical location and review the online version at http://emergency.ucf.edu/emergency_guide.html.
  • Students should know the evacuation routes from each of their classrooms and have a plan for finding safety in case of an emergency.
  • If there is a medical emergency during class, students may need to access a first-aid kit or AED (Automated External Defibrillator). To learn where those are located, see https://ehs.ucf.edu/automated-external-defibrillator-aed-locations.
  • To stay informed about emergency situations, students can sign up to receive UCF text alerts by going to https://my.ucf.edu and logging in. Click on “Student Self Service” located on the left side of the screen in the toolbar, scroll down to the blue “Personal Information” heading on the Student Center screen, click on “UCF Alert”, fill out the information, including e-mail address, cell phone number, and cell phone provider, click “Apply” to save the changes, and then click “OK.”
  • Students with special needs related to emergency situations should speak with their instructors outside of class.
  • To learn about how to manage an active-shooter situation on campus or elsewhere, consider viewing this video (https://youtu.be/NIKYajEx4pk).

Deployed Active-Duty Military Students

If you are a deployed active-duty military student and feel that you may need a special accommodation due to that unique status, please contact the instructor to discuss your circumstances.


  1. Backup Instruction (should the class need to pivot to virtual) will be conducted on Zoom Zoom Link (Requires Signing In with UCF Zoom Account)