|
Assistant Professor |
|
|
|
CS575: Software DesignProfessor: Yuanfang Cai E-mail: yfcai AT cs DOT drexel DOT edu Office: University Crossings 104 Phone: 215-895-0298
Teaching Assistant: Sunny Huynh (sunny.h AT drexel DOT edu) Office Hours: Place: University Crossings 147 Time: Monday 2-4pm and Wednesday 2-4pm
DescriptionThis course introduces fundamental principles and methodologies to analyze, express, and implement software designs. This course covers architecture and design principles in general and focuses on service-oriented architecture in particular. In this course, student will learn most influential papers in software engineering realm, design and implement a service-oriented implementation, and explore how to apply well-established theoretical principles into modern system design and implementation. The course material is drawn from both the most canonical software engineering textbook and state-of-the-art research papers. Objectives(1) Understanding how models are used to describe and understand the software design and software architecture of a system. (2) Exposure to a significant amount of seminal research in software design, software architecture and software engineering. (3) Understanding the importance of abstraction and how it relates to software design and software engineering. (4) Implementation of a non-trivial system to gain practical experience using the software design and engineering techniques discussed in class. (5) Understanding important software design concepts and principles, such as software aging and information hiding. Intended AudienceThis course is intended for graduate students in Software Engineering and Computer Science. Graduate students in other programs may take this course with the permission of the instructor, as significant programming experience is a pre-requisite. Before taking this course, students should be proficient in either the Java or a Microsoft .Net language such as C#. Students familiar with other object-oriented programming languages such as C++ may take this course but they will have to learn Java or C# if they want to simplify their lives when it comes to creating the project deliverables. Students lacking a background might want to consider taking this class at another time unless they are committed to spending a lot of time learning Java or C#. For your reference here are some good reference materials:
Textbook:
Other Resources:
Class Format for CS575
Class Component 1: Paper ReadingStudents will be asked to read 2-3 papers per week. These papers are canonical and state-of-the-art in software engineering realm. The online discussion and paper review assignments will be around the papers assigned in the previous week. You can find the papers for each week from the CS575 lecture page. Class Component 2: Online DiscussionsClass participation in this course is in the form of online discussion. The discussion topic will be published onto Bb Vista on Monday night. Students will be asked to post their answers to these topics, by the Friday at 11:59PM, and finish responding to their team members (the same team as their project) by Sunday 11:59PM. However, for courtesy, if you don’t want your team members to work during the weekend, please post your answers as early as possible. It is also a good idea to respond to multiple group members in one post. I will read each of your posts and responses, but I will not comment on any of them until the week after when everyone finish posting and responding so that the students won’t get biased by my opinion. Class Component 3: Paper Review AssignmentsHomework assignments will be in the form of paper review. The student will be asked to write a review, no longer than one page, in Week 4 and Week 6, for the papers they learned from the previous week. Assignments will be created through Bb Vista. Each review should follow the given template, which dictates the font size and the two-column format. Similar to the discussions, the topic and required contents of each paper review will be posted on Monday night and the reviews should be submitted by uploading in pdf files to Bb Vista, by the Thursday at 11:59PM. Class Component 4: Team ProjectThe course will include a multi-week group project that brings together most aspects of the learned material. You will have the option of working on one of several suggested projects or creating your own project independently. Please go to CS575 Project for details.Class Component 5: Position PaperThe students will work with their project team members to write a position paper. Please refer to the CS575 Position Paper for details. Team Coordination:To encourage all the members of a team to be responsible and to
actively work with each other towards discussions, projects and position
papers, we decide to give coordination credits (10% of you final grade)
as follows: during the last week, each student will review and grade
his/her team members in terms of responsibility and contribution. The
review will be anonymous and we will announce operation details later
this term. Grading:In summary, you will have 4 online discussions, 2 paper reviews, a group project and a group position paper (the same group as your project) in total. The following is a rough guideline on how your final grade will be determined.
A. If you have a question about the class, or any questions about your homework, project, and papers, you are welcome to *email* me with the subject starting with “CS575 question:”. Please DO NOT post your question under the discussion topics. The reason is that: given the number of students in class, I can easily have hundreds of posts to read each day if everyone responses to everyone else. As a result, it is highly possible that I miss your questions and can’t response in time. So, email me or the TA with your questions, and we will respond within 24 hours unless I am traveling. B. Late assignment/project submissions are subject to penalty: 12% each day. Assignments turned in more than three days late cannot be accepted and receive a score of 0. Make-up submissions will only be allowed in extreme circumstances. The university's Academic Honesty policy is in effect for this course. All assignments, labs, and projects in this course are to be done individually (unless otherwise noted). You may consult fellow students, TA's and the professor for help, but what you hand in must be your own work. You can review Drexel's academic honesty policy policy online by going to http://www.drexel.edu/studentlife/studenthandbook2002/Judicial/acadhon.html. This is a link to a section from the student handbook. |
|
"The best way to predict the future is to invent it." ---Alan Kay. "Fundamental is the building block of fun." --- A dancing girl. |
|