Course Description

Please spend some time reading this document, as it contains vital information about the texts, course policies and grading.

In order to design and develop high quality products software engineers need to understand the physical components and systems that are an integral part of these products. This understanding is critical in the fulfillment of non-functional requirements such as performance, reliability, and security. This course will provide software engineering students with hardware, computer architecture, and networking domain specific knowledge. Course programming assignments will provide practical experience developing software that interfaces with hardware components and systems.

Term
Spring 2024 (2235)
Required Materials

SWEN 340 Hardware Kit:

  • Same kit that was used for the last few terms
  • Cost: $40 in Tiger Bucks only
  • Purchase through the Tech Office Cage (GOL-2142) in person 8:30 to 4:30 weekdays
  • OK to get a kit from last term's students.
  • Please get your materials by Thursday August 31st, 2023.
  • No required textbook. We use manufacturer's documentation.
  • STM32CubeIDE integrated development environment from st.com (free)
  • Questions or concerns? Contact me: Bruce Herring blhvse@rit.edu or Discord DM to Prof. Herring#6507

Course Topics

The course will encompass a variety of concepts and topics including the following:

  • Basic electronics
  • Computer architecture
  • Software development for microcontrollers
  • Communication systems
  • Safety critical systems
  • Ethical and professional responsibility primarily focused on safety critical systems

Course Objectives

At the completion of this course students will be able to

  • Design and develop software that controls hardware.
  • Describe basic computer architecture including CPU and memory systems.
  • Explain the purpose of the major elements of CPU and memory systems.
  • Construct microcontroller software utilizing current microcontroller development tools using current software development best practices.
  • Develop effective unit and integration tests for student developed software.
  • Design and develop software for an application that requires concurrent operation on a single CPU.
  • Describe the basic architecture of communication systems.
  • Develop communication software including interface devices and network protocols.
  • Analyze ethical issues associated with the design and development of safety critical systems.
Method of Instruction

This course is taught in a studio lab format with each class session usually composed of lecture, and class exercises or project time. Discussion about activities and the project is encouraged but each student must submit their own work.

However, all quizzes and exams must be the student's own work.

Textbooks (Optional):

Attendance Policy

This course does not have a specific attendance policy. However, attending class is important. Over half of the typical class time will be activity or project work time. Class time is the ideal time to get assistance!

Grading Breakdown

The final course grade is a combination of your grades on exams, quizzes, class activities and projects.

Component Percentage of Final Grade (100%)
In-class activities10%
Homework and short projects20%
STM32 Projects30%
Midterm Exam20%
Final Exam20%
Grading Policy

Plus/Minus Grades

All SE courses use the +/- system. The numeric range of grades may vary from instructor to instructor, but multi section courses will use the same numeric ranges. The following chart will be used to determine your letter grade at the conclusion of the term.

Letter Grade Numeric Grade GPA Points
A93-1004.000
A-90-923.667
B+87-893.333
B83-863.000
B-80-822.667
C+77-792.333
C73-762.000
C-70-721.667
D60-691.000
FBelow 600.000

When assigning final grades, each instructor reserves the right to alter these division points as he or she deems necessary based on the overall evaluation of individual or class performance and effort. For more information consult the Provost's website: http://www.rit.edu/provost/grading