Skip to content
This organization was marked as archived by an administrator on Apr 17, 2024. It is no longer maintained.

Software Engineering I

Course Number: CS 361 Course Credits: 4 Instructor Name: Dr. Raffaele de Amicis Instructor Email: [email protected] Session: Fall/2022 Lecture Schedule: Tuesday and Thursday - 4:00 p.m. - 5:50 p.m. (from 01-03-2022 to 03-11-2022) Classroom Location: Lectures will be held in LINC 210 - Learning Innovation Center 210

Course Description

Introduction to the "front end" of the software engineering lifecycle; requirements analysis and specification; design techniques; project management. My aim is to provide a general introduction to software engineering. Within the next ten weeks, I will introduce important concepts such as software processes development, testing, and project management, while describing the essential software design and modeling activities, from requirements specification through to software quality. Furthermore, you will be working on a term-long team programming project practicing several specific software engineering approaches to software project implementation and management. There will be some programming, but this course is more about processes, tools, and methods rather than coding.

Prerequisites, co-requisites

  • Prerequisite: CS 261.A minimum grade of C is required in CS 261.
  • Experience with object-oriented programming and data structures is required or assumed.
  • Familiarity with one of the following program language C, C++, Java, Javascript, C# is required or assumed.

Course Learning Outcomes (CLOs)

Communicate technical information orally and in writing. – Synthesize requirements for a realistic software system and write a requirements specification document – Select the most appropriate software process model to use in a particular situation – Model system requirements using one or more semi-formal notations such as UML, dataflow diagrams, entity-relationship diagrams, or state diagrams – Design software systems at an architectural level and at lower levels, using one or more techniques, such as object-oriented design or agile methods, and express these designs in design specification documents – Validate designs and adjust the specification or design as necessary – Participate effectively in a team environment – Produce professional-quality software-related documents

Course Expectations and Policies

The following guidelines are designed to create a comfortable and productive learning environment throughout the term.

What To Expect

You can expect me:

  • To start and end class on time.
  • To assign homework that adequately covers the material and meets the learning objectives of the course.
  • To give exams that accurately reflect the material covered in class and assigned in homework.
  • I will strive to return your assignments and grades for course activities to you within one week of the due date.

I expect you:

  • To come to class on time.
  • To be attentive and engaged in class.
  • To spend an adequate amount of time on the homework each week, making an effort to solve and understand each assignment.
  • To engage with both the abstract and computational sides of the material.
  • To seek help when appropriate.

Course Content

  1. The scope and the need for software engineering
  2. Software engineering processes
  3. Agile software development
  4. Requirements engineering
  5. System modeling and diagram notations
  6. Software architecture
  7. Software testing
  8. Quality management
  9. Software Project management
  10. Software Project planning, scheduling

Weekly Tasks

  • Expect to spend an average of 12 hours of study per week on this course.
  • You will have a project assignment due every week. Please plan accordingly.
  • You will need to share status updates within your team each week.
  • You will have weekly content quizzes. You will also have a syllabus quiz at the beginning of the term.
  • You will need to share status updates within your team each week.
  • You will have a weekly reading and/or explorations. Explorations are meant to replace traditional PowerPoint based lectures and will sometimes include interactive components like short self-check quizzes.
  • Some of these assignments will be related to a team project and the others will be individual.

Course Project

  • This is a project-based course. Your team will be working on a term-long project. You will adopt a Scrum like methodology to manage your project. There will be coding, but this course is more about processes, methods, and tools.
  • Your team will be asked to select preferred projects from a pre-defined list of ideas. The list will be on Canvas. The project course is language agnostic. You will get to choose your own technology stack with your team, and your own development tools (e.g., IDEs).
  • One of the TA’s will act as both your client (the person telling your team what they want implemented) and your grader.
  • Your team will be expected to produce a working piece of software, but it does NOT have to be production-ready or jaw-droppingly amazing and innovative. Aim to create a semi-polished portfolio piece that all your team members will feel comfortable sharing in a professional portfolio.
  • There will be many tasks/assignments/people to keep track of for this course and you may find that challenging. Your team will use a project management software to keep track of the project.
  • Please note that you cannot make up a group project on your own.

Teamwork

  • You will be working in a team of 7 students (including yourself).
  • You will get to choose your own team.

Learning Resources: Course SW Tools & Textbooks

There is no required textbook for this class, but the following books constitute a very good reference for this course, consequentially their systematic consultation is warmly advised:

  • Software Engineering, by Ian Sommerville
  • Introduction to Software Engineering, by Ronald J. Leach
  • A Concise Introduction to Software Engineering, by Pankaj Jalote
  • Software Engineering: A Practitioner's Approach, by Roger Pressman and Bruce Maxim -Object-Oriented and Classical Software Engineering by Stephen R. Schach

During the course, you will also benefit from a combination of lectures and notes, we will also use freely accessible, openly licensed text, media, and other digital assets. Furthermore, the course will include readings from various conferences and journals where Software Engineering research is published.

This class is writing-heavy. If you are worried about your writing skills, the Undergraduate Research & Writing Studio and the Online Writing Suite are available to all students. Please visit http://writingcenter.oregonstate.edu/ or email me if you have questions or want to be put in touch with someone at the center.

To get a sense of what you might encounter as a software professional, you will be required to use several online software tools for managing and implementing your project:

  • GitHub/Git: Git is a version control system for collaborative, distributive projects. GitHub hosts Git projects. You’ll need to create a GitHub account, for this you must use your (if you haven’t already).
  • Asana: A web-based application your team will use for project management.
  • Jira Software is part of a family of products designed to help teams of all types manage work. Originally, Jira was designed as a bug and issue tracker. But today, Jira has evolved into a powerful work management tool for all kinds of use cases, from requirements and test case management to agile software development.
  • Lucid Chart is a web-based diagramming application[2] that allows users to visually collaborate on drawing, revising and sharing charts and diagrams, and improve processes, systems, and organizational structures
  • Miro is the online collaborative whiteboard platform that enables distributed teams to work effectively together
  • Draw.io is proprietary software for making diagrams and charts. The software lets you choose from an automatic layout function, or create a custom layout
  • Visual Paradigm is a software application designed for software development teams to model business information systems and manage development processes

Exams and Assignments

  • This course has no final exams.
  • There will be 20 in-class and/or assignments, overall worth 20% of your grade. These assignments are for learning and self-assessment. These will sometimes take the form of a short quiz on the lecture material. Sometimes the assignment will be on Canvas, other times it will be on paper. You will be allowed to miss no more than 3 in-class assignments. If you have a problem with an assignment grade, you must contact the teaching assistant through email within one week of receiving your grade.
  • There will be 10 take-home quizzes and/or assignments, overall worth 20% of your grade to be completed over the course of this class. Assignments might include a mixture of written documents, diagram, Gant chart, etc. If you have a problem with an assignment grade, you must contact the teaching assistant through email within one week of receiving your grade.
  • There will be 6 project assignments, overall worth 60% of your grade. Includes posting status updates to your team (each week except Week 0).

Grading and Evaluation of student performance

Category Weight
Individual in-class Quiz and/or Assignments 20%
Course Project 55%
Individual Take-home Quiz and/or Assignments 25%
TOTAL 100%

Your letter grade for the course will be assigned as follows:

Grading Scale

Min Letter Max
94% <= A < 100%
90% <= A - < 94%
87% <= B+ < 90%
84% <= B < 87%
80% <= B -< 84%
77% <= C+ < 80%
74% <= C < 77%
70% <= C- < 74%
67% <= D+ < 70%
64% <= D < 67%
61% <= D- < 64%
0% <= F < 61%

Final scores will be rounded to the nearest integer (e.g., if your overall grade is 89.9%, that will be rounded to 90%, which is a A-. If your overall grade is a 93.9%, that will be rounded to 94%, which is an A). A passing grade for core courses in CS is a C or above.

Student Evaluation of Courses

During Fall the online Student Evaluation of Teaching system opens to students the Wednesday of week 8 and closes the Sunday before Finals Week. Students receive notification, instructions and the link through their ONID. They may also log into the system via Online Services. Course evaluation results are extremely important and used to help improve courses and the hybrid learning experience for future students. Responses are anonymous (unless a student chooses to “sign” their comments, agreeing to relinquish anonymity) and unavailable to instructors until after grades have been posted. The results of scaled questions and signed comments go to both the instructor and their unit head/supervisor. Anonymous (unsigned) comments go to the instructor only.

Communication

Instructor Information and Office Hours

TA Contact Information & Office Hours

TA office hours start Monday of Week 1. General course questions? Post to Discussion. Office hours will take place at the Conference Rooms - Med - kec3057 located in the Kelley Engineering Center

  • TA: Henstrom Jordan Alexander - [email protected] - Tuesday 6-8 PM, Thursday 6-8 PM , Friday 4-6 PM, by appointment.
  • TA: Rundel Samuel - [email protected] - Tuesday 6-8 PM, Thursday 6-8 PM , Friday 4-6 PM, by appointment.
  • TA: Rathore, Kunal - [email protected] - Tuesday 6-8 PM, Thursday 6-8 PM , Friday 4-6 PM, by appointment.

Steps to Get Help

  1. Reread the assignment, lecture slides, and/or syllabus
  2. Google/Bing/Open the suggested readings
  3. Ask a friend
  4. Check the Discussion Canvas Section for relevant posts or create a new question <-- This is often the fastest approach
  5. Ask a TA: You can attend office hours in person (see the TA Office Hours page)
  6. Attend Dr. De Amicis' office hours.
  • I will hold office hours by appointment.
  • Please contact me privately for matters of a personal nature. If you are having any difficulty that might prevent you completing the coursework, please don’t wait until the end of the term; let me know right away.
  • I will reply to course-related questions within 48 hours.

Establishing a Positive Community

Every student should feel safe and welcome to contribute to this course. As the instructor, I will try to establish this tone whenever possible, but ultimately the responsibility for cultivating a safe and welcoming community belongs to the students—that means you!

Fortunately, being part of a safe and welcoming community is not too hard. A good place to start is to recognize (and continually remind yourself) of the following facts:

  1. Each of your classmates is an individual. Although you will have things in common with them, their life, and their way of experiencing and interpreting life, is different from your own. Given the same information, you and your classmates might come to different conclusions.
  2. Your classmates are here to learn. They have the right to pursue their education without being distracted by others’ disruptive behavior or made uncomfortable by inappropriate jokes or unwanted sexual interest. If each of us remembers these facts and acts with corresponding decency, respect, and professionalism, the course will certainly be better for everyone.

Ground Rules for Communication & Participation

  • Observation of “Classroom Etiquette":
    • Being prepared to begin class on time
    • Remaining focused throughout the class.
    • Refraining from behavior that may be interpreted as disrespectful.
    • Please refrain from having cell phones conversation or playing video games during class.
    • When others are speaking, either listen quietly or take notes.
  • Observation of “Netiquette": All your online communications need to be composed with fairness, honesty, and tact. Spelling and grammar are very important in a remote learning course. What you put online reflects on your level of professionalism. Here is a reference: http://www.albion.com/netiquette/corerules.html.
    • Posting personal contact information is discouraged (e.g. telephone numbers, address, personal website address).

What to Do About Harassment

If you become a victim of harassment, there are several resources available to you:

  • You may schedule a meeting to talk with me.
  • You may contact the University Ombuds Office for confidential guidance and advice.
  • You may contact the Office of Equal Opportunity and Access to file an informal or formal complaint

Feedback

You are the most important part of this course, and my job is to facilitate your success. That is why I will be regularly asking for your feedback about how the course is going for you. If you choose to participate in providing feedback, you will be allowing me to make the course better for you and your classmates during this term, and better for future students (some of whom you may already know or get to know later). While it’s unlikely I’ll be able to respond to all feedback I receive, I will personally read all that you share with me.

Students' Recording of Classes

No student may record any classroom activity without express written consent from me. If you have (or think you may have) a disability such that you need to record or tape classroom activities, you should contact the Office of Equal Opportunity Services, Disability Resources to request an appropriate accommodation.

Late Assignments

For each day of delay, the grade will be reduced by 15%. A maximum delay of 4 days is allowed, afterward, the final grade will be equal to 0 points.

If there is a reason as to why your assignment will be late (e.g. sickness, job interviews, etc.), you must contact me (email is fine) at least THREE days before the assignment due date. Otherwise, no extensions will be given. Emergencies are exempt from the THREE-day rule.

Grading Disputes

If you believe you have been incorrectly graded, you must contact your grader or the instructor within THREE days of receiving the grade in question. Late disputes will not be considered.

Academic Integrity

I encourage students to work together and learn from one another on assignments. However, I do expect you to turn in your OWN work. Working with someone does not include copying someone else's work and changing a small amount of that work, such as variable names, comments, spacing, etc. During group assignments you and your partners may turn in one assignment per group with everyone's name attached. Working together is discouraged on exams, quizzes, and the final. At NO point should you copy work from the internet, and if you do copy material from an external resource, then you need to cite the resource and author(s). Cheating and plagiarism are not taken lightly! You will receive a zero on your first abuse of these rules. In the case of shared work, the student sharing the work and the student copying the work will both receive zeros. On the second abuse, your name(s) will be given to the EECS department, where they will handle the details.

The Code of Student Conduct prohibits Academic Misconduct and defines it as:

Any action that misrepresents a student or group’s work, knowledge, or achievement, provides a potential or actual inequitable advantage, or compromises the integrity of the educational process.

To support understanding of what can be included in this definition, the Code furtherclassifies and describes examples of Academic Misconduct, as follows.

Prohibited behaviors include, but are not limited to doing or attempting the following actions:

  • Cheating. Unauthorized assistance, or access to or use of unauthorized materials, information, tools, or study aids. Examples include, but are not limited to, unauthorized collaboration or copying on a test or assignment, using prohibited materials and texts, unapproved use of cell phones, internet, or other electronic devices, etc.
  • Plagiarism. Representing the words or ideas of another person or presenting someone else’s words, data, expressed ideas, or artistry as one’s own. Examples include, but are not limited to, presenting someone else’s opinions and theories as one’s own, using another person’s work or words (including unpublished material) without appropriate source documentation or citation, working jointly on a project and then submitting it as one’s own, etc.
  • Falsification. Fabrication or invention of any information. Examples include, but are not limited to, falsifying research, inventing or falsely altering data, citing fictitious references, falsely recording or reporting attendance, hours, or engagement in activities such as internships, externships, field experiences, clinical activities, etc.
  • Assisting. Any action that helps another engage in academic misconduct. Examples include, but are not limited to, providing materials or assistance without approval, altering someone’s work, grades or academic records, taking a test/doing an assignment for someone else, compelling acquisition, selling, bribing, paying or accepting payment for academic work or assistance that contributes to academic misconduct, etc.
  • Tampering. Interfering with an instructor’s evaluation of work by altering materials or documents, tampering with evaluation tools, or other means of interfering. Multiple submissions of work. Using or submitting work completed for another or previous class or requirement, without appropriate disclosure, citation, and instructor approval.
  • Unauthorized recording and use. Recording and/or dissemination of instructional content without the express permission of the instructor(s), or an approved accommodation coordinated via Disability Access Services.

Please read the department, college, and university dishonesty policy.

Religious Holidays

Oregon State University strives to respect all religious practices. If you have religious holidays that are in conflict with any of the requirements of this class, please see me immediately so that we can make alternative arrangements.

Students with Disabilities

Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

Instructor Teaching Philosophy:

My passion for teaching has developed over the last 20 years, during which I have refined my methods to create a wider variety of learning experiences. In addition to employing a combination of collaborative and individual activities, lectures, and tutoring, I have developed my main educational strategy based on the integration of research and instruction through creative and exploratory practices. I focus on the integration of teaching, learning, and prototyping on the one hand, and exploration and research on the other. I train my students to explore and develop new knowledge by involving them in research and industrial projects. With the benefits of numerous and venerable collaborations and projects I have with international companies, my students have received a plethora of opportunities for hands-on work crucial to the development of critical thinking, problem-solving, and practical design skills. Within my courses, I teach students not only how to solve problems, but also how to integrate their solutions to ensure positive social impacts and improvements in quality of life. I thoroughly enjoy investigating how humans design and interact with real and digital products and how cutting-edge technologies enhance and inspire the creative process, and I try to relay this passion to my students.

Instructor Short Bio:

Raffaele De Amicis is an Associate Professor at the School of Electrical Engineering & Computer Science at Oregon State University. He has authored 3 books, contributed to 23 scientific journal papers, and is the author or co-author of more than 177 scientific peer reviewed conference papers. Dr. De Amicis has been the Project Coordinator of several multidisciplinary research projects contracted or funded by the European Commission, the North Atlantic Treaty Organization, governmental agencies, and industry with an overall budget of >52 million dollars. Since in the USA, his research has been funded through research programs sponsored by National Science Foundation, U.S. Department of Agriculture, National Security Agency, Booz Allen Hamilton, Oregon Manufacturing Innovation Center, and Oregon State University.

Dr. De Amicis received his Ph.D. in Design and Methods of Industrial Engineering at the Faculty of Engineering, University of Bologna, Italy. From 1999 until December 2002, he was a research fellow at the Fraunhofer Institute for Computer Graphics in Darmstadt, Germany and senior researcher at the at the Technical University of Darmstadt. Before arriving at OSU, he was the founding Director of GraphiTech, Center for Advanced Computer Graphics Technologies in Trento, Italy, where he was recognized for leadership in science, technology, and innovation. Between 2003-16, acting as a consulting professor, he has educated and mentored diverse groups of learners, from different nationalities and cultural backgrounds, principally in the undergraduate and graduate courses at the Department of Information Engineering and Computer Science and at the ICT International Doctoral School, University of Trento. From 2010 to 2016, he has been the Vice-President of the Board of Directors at GraphicsMedia.net - International Network for the Cooperation in Applied Research in Computer Graphics, Multimodal and Multimedia Technologies, and Visual Interactive Digital Media Technologies, where he has developed strong competencies in how to build and manage successful multinational organizations. In this context, he has established strong linkages to diverse Academic and Research Institutes, both at the national and international levels.

Popular repositories Loading

  1. .github .github Public archive

Repositories

Showing 1 of 1 repositories
  • .github Public archive
    CS-361-nilsstreedain/.github’s past year of commit activity
    0 0 0 0 Updated Oct 14, 2022

Top languages

Loading…

Most used topics

Loading…