0% found this document useful (0 votes)
32 views10 pages

Syllabus v1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views10 pages

Syllabus v1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

SE310 - Software Architecture 1

Fall 2024
Drexel University

Instructor Prof. Sean Grimes


Office Room 1161
Contact [email protected]
Lecture Section 003: Wednesday 3:00pm - 5:50pm - Room 913
Office Hours (Zoom) Mondays 6:30pm - 7:30pm
Zoom Link https://drexel.zoom.us/j/2021116646
Office Hours (Rm. 1161) Mondays 1:45pm - 2:45pm

Teaching Assistants
Rishi Patel
Email: [email protected]
Location: CLC
Time: Wednesdays 2:00pm - 4:00pm
Time: Fridays 12:00pm - 2:00pm

Marius Garbea
Email: [email protected]
Location: CLC
Time: Thursdays 4:00pm - 6:00pm
Time: Fridays 2:00pm - 4:00pm

Required Book
Design Patterns Explained: Alan Shalloway & James Trott, Addison- Wesley 2nd Edition. This
can be purchased in either paper or electronic format, the eBook is available on Amazon.

Recommended Book
Design Patterns: Elements of Reusable Object-Oriented Software: Erich Gamma, Richard
Helm, Ralph Johnson, John Vlissides, 395 pages (October 1994), Addison-Wesley.

JAVA & Integrated Development Environment


This course requires Java 11 or newer, submissions using an older version of Java will receive a 0
(zero). Java 11 is available here: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-
downloads-5066655.html Note, you can use *any* Java JVM, it does not need to come from
Oracle, the default that comes with IntelliJ should be just fine. The IDE for this class will be the
community edition of IntelliJ. You can download a free copy here: https://www.jetbrains.com/idea/downloa
IntelliJ typically installs its own version of Java, manual installation of Java may not be neces-
sary, try installing IntelliJ before manually installing Java. Optional: if you know the Kotlin
language you are free to use it, with some caveats:
1. TA and professor support for debugging will be limited, you are on your own for syntax
& general debugging issues,

page 1 of 10
SE310: Software Architecture 1 Drexel University

2. you must ensure your submission will run on a system that hasn’t been configured for
Kotlin (e.g. the TA’s computer),

3. support will still be provided for logical and design considerations,

4. proceed at your own risk if you are not already familiar with Kotlin.

page 2 of 10
SE310: Software Architecture 1 Drexel University

Weekly Schedule
Week 1 (Sept. 23rd)
Synchronous Activities:
• Live Lecture: Course Overview
• Bring a laptop with IntelliJ, Java, and StarUML installed
• Lab: Alarm-Clock-Radio You must attend lab to get credit. Start in class, finish at
home. This is individual work. Due: Wednesday Oct. 2nd, 5:00 AM EST.
Asynchronous Activities:
• Video Lecture: JAVA and OOP Concepts Review (9 recordings) as needed
• Document: Homework & Lab Exercise Submission Requirement (Reading)
• Document: Getting Started with IntelliJ (Reading)
• Student Repository: Download & review code and UML
• Review Quiz: Java Code (take until score ≥ 70) Due: Wednesday Oct. 2nd, 5:00 AM
EST
• Review Quiz: Java Concepts (take until score ≥ 70) Due: Wednesday Oct. 2nd, 5:00
AM EST
Week 2 (Sept. 30th)
Synchronous Activities:
• Lecture: Reflections on OO Design
• Homework 1: Basic Maze and File Parsing. Start in class, finish at home. This is
individual work. You must attend lecture to receive credit. Due: Wednesday Oct. 9th,
5:00 AM EST
Asynchronous Activities:
• Video Lecture: Chapter 1: Object Oriented Paradigm
• Video Lecture: Chapter 3: A Problem That Cries Out for Flexible Code
• Video Lecture: Chapter 4: A Standard Object-Oriented Solution
• Video Lecture: Chapter 5: An Introduction to Design Patterns
• Review Quiz: Chapters 1 - 3 (take until score ≥ 70) Due: Wednesday Oct. 9th, 5:00
AM EST
Week 3 (Oct. 7th)
Synchronous Activities:
• Lecture: Reflections on Patterns of the Week
• Group Lab: Soda Dilemma - Improving a Bad Design - Must attend lab and complete
during class.
• Group Lab: Paragraph Processor - Improving a Bad Design - Must attend lab and
complete during class.
Asynchronous Activities:
• Video Lecture: Chapter 6: The Facade Pattern
• Video Lecture: Chapter 7: The Adapter Pattern

page 3 of 10
SE310: Software Architecture 1 Drexel University

• Video Lecture: Chapter 8: Expanding our Horizons


• Video Lecture: Chapter 9: The Strategy Pattern
• Video Lecture: 2nd Homework Assignment, 4 parts, 2 recordings
• Pre-Homework Exercise: 2 slide decks to review and screen capture success Due:
Saturday Oct. 19th, 5:00 AM EST
• Homework 2, Part A Due: Saturday Oct. 19th, 5:00 AM EST
• Review Quiz: Chapters 4 - 7 (take until score ≥ 70) Due: Wednesday Oct. 16th, 5:00
AM EST
Week 4 (Oct. 14th)
Synchronous Activities:
• Lecture: Reflections on Patterns of the Week
• Group Lab: Vehicle Messaging - Improving a Bad Design - Must attend lab and
complete during class.
Asynchronous Activities:
• Video Lecture: Chapter 10: The Bridge Pattern
• Homework 2, Part B Due: Thursday Oct. 31st, 5:00 AM EST
• Review Quiz: Chapters 8 - 10 (take until score ≥ 70) Due: Wednesday Oct. 23rd, 5:00
AM EST
Week 5 (Oct. 21st)
Synchronous Activities:
• Lecture: Reflections on Patterns of the Week
• Lab: Advanced Maze - Start in lecture, finish at home. This is individual work. You
must attend lecture. Due: Wednesday Oct. 30th, 5:00 AM EST
Asynchronous Activities:
• Video Lecture: The Factory Patterns
• Homework 2, Part C Due: Thursday Nov. 7th, 5:00 AM EST
• Pre-Homework Exercise: 4 slide decks to review and screen capture success - submit
with the rest of Part C Due: Thursday Nov. 7th, 5:00 AM EST
Week 6 (Oct. 28th)
Synchronous Activities:
• Midterm Exam - In Class Attendance mandatory!
Asynchronous Activities:
• Study
Week 7 (Nov. 4th)
Synchronous Activities:
• Lecture: Reflections on Patterns of the Week
• Group Lab: Decorator Pattern - Improving a Bad Design - Must attend lab and
complete during class.

page 4 of 10
SE310: Software Architecture 1 Drexel University

Asynchronous Activities:

• Video Lecture: Chapter 13: Solving the CAD/CAM Problem with Patterns
• Video Lecture: Chapter 14: The Principles and Strategies of Design Patterns
• Video Lecture: Chapter 15: Commonality and Variability Analysis
• Video Lecture: Chapter 17: The Decorator Pattern
• Video Lecture: Chapter 18: The Observer Pattern
• Video Lecture: Chapter 21: The Singleton Pattern
• Video Lecture: The Decorator Revisited
• Homework 2, Part D Due: Monday Dec. 2nd, 5:00 AM EST
• Review Quiz: Chapters 11 - 21 (take until score ≥ 70) Wednesday Nov. 13th, 5:00 AM
EST

Week 8 (Nov. 11th)


Synchronous Activities:

• Group Lab: Observer Pattern - Improving a Bad Design - Must attend lab and
complete during class.

Asynchronous Activities:

• Video Lecture: The Command Pattern


• Video Lecture: Iterators

Week 9 (Nov. 18th)


Synchronous Activities:

• Group Lab: Builder / Template Pattern - Must attend lab and complete during class.

Asynchronous Activities:

• Video Lecture: Putting it all Together


• Video Lecture: The Builder Pattern
• Video Lecture: The Template Pattern
• Review Quiz: Chapters Template, Command, Builder (take until score ≥ 70) Due:
Monday Dec. 2nd, 5:00 AM EST

Week 10 (Nov. 25th) - NO CLASS


Synchronous Activities:

• None

Asynchronous Activities:

• None

Week 11 (Dec. 2nd)


Synchronous Activities:

• Review sessions for final exam

Asynchronous Activities:

page 5 of 10
SE310: Software Architecture 1 Drexel University

• None
Week 12 / Finals Week (Dec. 9th)
Synchronous Activities:
• Final Exam: Date/Time/Room TBA - It will be in-person
Asynchronous Activities:
• Study
Objectives of this Course
1. To bring students to a level of competency in OO design so that they can handle team or
individual projects of moderate complexity.
This course is about good object-oriented design and implementation. In the challenging
projects that programmers face, the design stage is where the primary difficulties of program-
ming are worked out. Implementation, the task of turning a design into a working program in
a programming language, is supposed to be very straightforward given a good design.

Object oriented programming (OOP) allows programmers to write programs that are easier
to reuse and easier to extend and maintain over a life cycle of usage. However, this power is
achieved at the cost of making the program designer’s task more complicated, due to the rich-
ness, subtlety and peculiar limitations of OO classes and class inheritance. A major objective
of this course is to bring students to a level of competency in OO design so that they can handle
team or individual projects of moderate complexity. Design skills students should acquire in
this course include:
• The ability to decide which classes would be appropriate given only a problem specification
• Designing for ease of future code maintenance
• Being able to decide upon details of classes from a problem specification
• Finding well-known software patterns from typical problem specifications
• Being able to communicate both static and dynamic aspects of designs using Universal
Modeling Language (UML).
Design skills should be applicable to any of the OO languages (e.g. C++, Java, etc.).

Grades for design projects will be based, among on other things, on the quality of the de-
sign and on the written explanation, description, and justification of the design.

2. To make students confident and competent at implementing an OO design of moderate com-


plexity, using coding techniques based upon generally recognized software engineering principles.
Another objective of this course is to make you confident and competent at implementing
an OO design of moderate complexity, using coding techniques based upon generally recognized
software engineering principles.

3. To make students more self-aware, descriptive, and reflective about their programming and
design.
This objective is to make you more self-aware, descriptive, and reflective about your pro-
gramming and design. By learning about and practicing with design and quality rationales the

page 6 of 10
SE310: Software Architecture 1 Drexel University

course will present, you should be able to state, explain, judge, and justify design or imple-
mentation decisions in a way that would be generally acceptable among (at least) entry-level
computing professionals. It is also a necessary step towards being able to continue to improve
your skill in the future without the need for professors or formal classes.

4. To make student understand how patterns are applied in modern software systems. Finally,
after this course, the students should be able to understand how modern software systems,
including the ones that they use everyday, use patterns as building blocks to assemble large,
resuable software systems.

Prerequisites
We expect that all taking this class has had CS260 (Data structures), CS 265 (Advanced Pro-
gramming Techniques), and SE 181(Introduction to Software Engineering and Development)
or their equivalent. The experience in these courses includes the design and implementation of
programs that involve the use of classes, pointers, and dynamic storage allocation. It should
also include the experience of designing several CS 172-like or CS260- like programs requiring
familiarity of class creation, basic I/O, and the use of built-in class libraries. The experience in
writing these programs is also expected to have given you knowledge of basic coding practices
such as: good selection of names, good quality commenting and indentation, separation of
classes into separately compiled files, what constitutes appropriate selection of test data, and
how to develop a program incrementally (e.g., use of program stubs as placeholders for as-yet
unwritten program modules). Experience with recursive programming design and implementa-
tion is expected.

Some assignments will assume that you find it routine to implement programs that use data
structures such as trees or linked lists. Some assignments will ask that you will be able to
design and implement algorithms to solve simple problems on your own, without extensive
hints or outside help. This will probably require a bit more mental effort on your part than
many assignments from previous courses, in that you will have to devise the solution algorithm
yourself based upon your prior experience with programming problem solutions. You can use
the first programming assignment as an indication of what you are expected to have started
with. If you have questions, please consult with the instructor.

Grading Policy
Homework Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40%
Lab Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10%
Midterm Exams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20%
Final Exam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30%
All quizzes must be taken and passed (70% or better), or you will lose 1 point of your final
grade for each quiz not taken/passed. Quizzes can be retaken if failed up until the due date.
The instructor reserves the right to make modest adjustments (5% or 10% for a category) in
the weighting used.

Students will receive a reduced or a failing grade for the course if in the instructor’s judg-
ment their performance on the midterm and final examinations indicates that they cannot
express an adequate understanding of the material in the course. One criterion used for ”ade-
quate” is achieving at least a 40% mark on the final exam.

page 7 of 10
SE310: Software Architecture 1 Drexel University

Good quality in-class participation (being prepared to answer questions posed by the instructor
during the class) will be taken into account as a compensating factor for a poor exam perfor-
mance.

Part of your assignments may consist of written answers rather than just programs. Part
of your assignment grade will be based on how you express yourself, as well as what you say.
Your writing is expected to be of the quality comparable to technical writing done by a well-
regarded computing professional.

In order to pass the course, you must successfully complete the programming project
(Homework 2). Successfully completing homework 2 means that the program you submit:
• Includes all four parts
• Compiles with all the requirements given in the homework instructions (including grading
and tabulating)
• Runs without significant errors
Incomplete Grade Policy
A grade of incomplete (INC) may be considered by your course instructor if exceptional cir-
cumstances warrant such course of action. In order to be eligible, you must have:
• Successfully completed all of the labs
• Successfully completed homework assignment 1
• Successfully completed homework assignment 2, parts A, B, & C
• Scored a 70 or more on homework 2 parts B & C
• Taken the midterm and final exams
• Have a legitimate reason to request an incomplete grade
In cases when the instructor judges that an Incomplete Grade (INC) can be granted, a contract
will be signed by both, the student, and the course instructor, and submitted to the Registrar’s
Office. The coursework must be completed within the following two academic terms otherwise
the INC grade will become a failing grade (F).

This policy is consistent with the university’s policy found at:


https://drexel.edu/provost/policies-calendars/policies/incomplete grades

Handing in Assignments
Assignments will be made available on Blackboard Learn and will be due as described in each
assignment. The programming assignments must be done in Java using IntelliJ. There may also
be written work that should be submitted as specified in the assignment. When assignments
call for written responses, they should be created using a word processor, written in intelligible,
clear, and correct English. Poorly written or sloppy work will be returned ungraded. Programs
that do not compile and cannot be tested will receive little or no “partial credit”.
All submissions must be made through Blackboard Learn. Make sure what you submit is
a final submission, not just a step along the way. We will not open multiple sub-
missions on Blackboard. All coding submissions, labs and homework assignments, need to
include the full project directory, any associated resources (jar files, serialized files, README,
other notes) inside the zip file. Submissions not following these guidelines will be returned
ungraded.

page 8 of 10
SE310: Software Architecture 1 Drexel University

Assignments Late Policy

• Assignments must be submitted via Blackboard Learn by the given deadline in order to
receive full credit
• Assignments submitted 1 second to 1 week late will receive a 15% penalty
• Assignments submitted 1 to 2 weeks late will receive an additional 10% penalty
• Assignments submitted more than 2 weeks late will be subject to an additional 5% penalty
for each week

Academic Honesty
The university’s Academic Honesty policy is in effect for this course. You can find the policy
at https://drexel.edu/provost/policies-calendars/policies/academic-integrity

You must be the sole original author of all assignments and examination solutions
in their entirety, unless the instructor explicitly gives you permission to do oth-
erwise in written directions on an assignment or exam. Design and implementation
problems should be discussed with the instructor or the teaching assistants only. This means
that you should have an implementation plan that leaves enough time for such consultation.
As the university’s policy explains penalties up to and including receiving a failing grade for
the course with no opportunity to withdraw will be given for first time offenses of plagiarism,
fabrication, cheating, or other forms of academic dishonesty. Allowing another student to copy
from your work (i.e. helping another student to cheat) is also a violation of the policy on aca-
demic dishonesty. Use of ChatGPT, other generative AI ‘assistants’, GitHub Copilot,
or other forms of AI and/or code generators to produce in part, or in full, any of
your submissions will be considered a violation of the academic honesty police.

The standards for originality in a program are similar to those of other written works. Programs
by different authors show clear and substantial differences as judged by most criteria, including
but not limited to choice of variable and procedure names, line spacing and indentation, choice
of program structure, choice of algorithms, ordering of modules, style and content of docu-
mentation, module design, and ordering and choice of instructions. The original author of an
assignment can explain each detail and how they came to create it on their own. Whenever you
use references or sources (i.e. the Internet) for “inspiration” in your programs and designs, you
must give a complete and proper citation of the source. Copying or close paraphrasing from
other sources and claiming it is your own original work is a violation of the academic honesty
policy.

It is your responsibility to avoid violating the university’s policy. If you are unclear as to what
the policy means in a particular situation, ask the instructor for clarification before you hand
anything in.

In addition, be clear that if you electronically copy another person’s work and submit it as your
own you are in violation of this policy and could be failed for the course on the first occurrence.
If you solicit and/or hire someone to do your work, even if the work is not complete, you are
in a violation of this policy and could be failed for the course on the first occurrence. Any
violation of this policy may also result in the matter being handed over to an external judiciary
panel. Do not let this happen to you.

page 9 of 10
SE310: Software Architecture 1 Drexel University

Student Accommodations
In compliance with the Americans with Disabilities Act of 1990, Section 504 of the Rehabilita-
tion Act of 1973, and Drexel University’s policies and procedures, the University is committed
to the non-discrimination of students with disabilities.

Students requesting accommodations due to a disability at Drexel University need to request a


current Accommodations Verification Letter (AVL) in the ClockWork database before accom-
modations can be made. These requests are received by Disability Resources (DR), who then
issues the AVL to the appropriate contacts. For additional information, visit the DR website at
https://drexel.edu/disability-resources/support-accommodations/student-family-resources, or con-
tact DR for more information by phone at 215-895-1401, or by email at [email protected]

Other Important Academic Policies

In addition to the course policies listed on this syllabus, the following University policies are in
effect in this course:

• Judicial Affairs Academic Integrity:


https://drexel.edu/studentlife/community-standards/code-of-conduct/academic-integrity-
policy
• Official Final Exam Schedule: http://www.drexel.edu/registrar/scheduling/exams/
• Course Drop Policy: https://drexel.edu/provost/policies-calendars/policies/course-add-
drop/
• Course Withdrawal Policy: https://drexel.edu/provost/policies-calendars/policies/course-
coop-withdrawal/
• Absence from class due to University sponsored activities:
https://drexel.edu/provost/policies-calendars/policies/absence
• Student athletes who will miss class due to an athletic event (game, tournament trip, etc.)
must provide the course instructor with an official letter from the Drexel Department of
Athletics that outlines the dates and times of their absence due to the sporting event(s).
• Drexel Student Learning Priorities:
https://drexel.edu/institutionalresearch/assessment/outcomes/dslp/

page 10 of 10

You might also like