PSU CS 300: Elements of Software Engineering

Fall 2020

Instructor: Bart Massey <>
TA, Graders: TBA
Time: Monday/Wednesday 1400-1550 (2:00-3:50 PM)
Meeting Location: Online
CRN: 10867

As always, this is a tentative syllabus. Everything here is subject to vast change with little notice.

About This Course

CS 300 is a first course in developing software: going beyond programming to the end-to-end process of producing software that is fit and useful. The ability to write simple programs in a reasonable way and a strong understanding of computing are necessary prerequisites. Students must have completed PSU CS 202 or equivalent.

There have been multiple past offerings of this course, with a variety of focuses. This one focuses on practical skills for individual developers, using a workflow that will be familiar to many current industry developers.

Course Description

The catalog says:

Practical techniques of program development for medium-scale software produced by individuals. Software development from problem specification through design, implementation, testing, and maintenance. The fundamental design techniques of step-wise refinement and data abstraction. A software project will be carried through the development cycle.

CS 300 is the first of two required project-oriented software engineering courses at PSU; the second is the Capstone course. CS 300 focuses on individual development of small-to-medium-scale programs: on the order of 5000 lines of code in a typical high-level language.

It turns out that even at these smallish scales, software development is difficult. Effort is spent not only on implementing the program, but on understanding the problem to be solved, specifying the solution, designing the solution, validating that the problem has been solved properly, and maintaining the resulting system. CS 300 is intended to teach the principles and techniques behind these activities.

This offering of CS 300 will emphasize source software. The principles, techniques, and tools of open source are revolutionizing not just large-scale software development, but individual software development as well. Your instructor brings special expertise in this area, and will teach the comparisons and contrasts between classical and open-source approaches.

Course Goals

The catalog says:

To train students in developing medium-scale software, and to give practice in such a project. The purpose is to prepare them for projects in subsequent courses such as CS 321.

The catalog's list of course goals is that students be able to:

  • Recognize software systems as human artifacts for which their developers must take responsibility.

  • Separate software development into independent phases for the purpose of controlling the process.

  • Explain the importance of information hiding in development.

  • Explain the significance (or lack of significance) of test coverage for software.

  • Use iterative enhancement as a development technique.

  • Participate in a developer-customer dialog about requirements for a particular software system.

  • Develop a test plan for a software system.

  • Design software to solve a problem of small-to-medium complexity.

  • Implement a software design to create a working system that passes a user acceptance test.

  • Test an implemented system according to an existing test plan, and correct any failures discovered.

  • Use basic software tools under the UNIX system to aid in software development.

  • Evaluate emerging formal software development methods.

Seems like enough for 10 weeks.

Course Mechanics

This course is a high-effort essential part of the PSU undergraduate CS curriculum. There will be lectures, examinations, and an individual project. The project will be graded periodically throughout its development as well as at the end. Anonymous peer review will be a major part of the project activity.


The course website (see above) will be the focus of communication. Students are encouraged to contact the instructor anytime by email for an appointment if there are things that seem worth discussing. Special and/or regular office hours will be instituted if demand warrants.

Course chat will be through a Slack channel to be announced soon. You will need to be continuously subscribed to that channel throughout the course.

Jeremy, the class TA, is reachable at vonder2 [at] pdx [dot] edu. He will host an office on zoom hour every Wednesday from 4:30 to 5:30. This is a good place to ask homework and project questions. Here's the zoom meeting link.


The course lectures will cover a variety of topics, and may include guest lectures. There are two types of lectures this quarter:

  • Synchronous lectures using Zoom starting at the regular class meeting time. The Zoom lectures will be recorded for the convenience of remote students, and online attendance, while encouraged, will generally not be required. However, all students will be expected to be able to attend Zoom lecture during the entire class period when asked to do so for some reason.

  • Additional video lectures will be made available both on YouTube and PSU Media Space, and will be required viewing.


The course textbook

Engineering Software Products
Ian Sommerville
Pearson 2020

is available at the Bookstore or on Amazon etc --- it may be more expensive at the Bookstore.


The coursework will consist of regular readings, as well as several programming projects.


Currently, the CS laboratory facilities consist of machines in the Linux Lab and Windows Lab. Work may be done remotely on these or other the Departmental boxes. Those with home or laptop boxes are encouraged to use them---make sure they're adequately backed up, though.


Projects and assignments will be graded for having been turned in and having made a solid effort, as well as for being substantially correct and of high quality.

You may submit a homework as many times as you like, with the latest assignment received being the only one considered for a grade. Please submit something before the deadline, even if it is only your name --- you can then continue to work on your assignment as desired up until it is graded.

It is important that every assigned activity be attempted before the deadline, acting in good faith. A score of zero on any project will result in a grade of F for the course.

Academic Honesty

Cheating on homework or the project will result in a grade of zero on the affected material, and will be reported to appropriate authorities. Plagiarism is a form of cheating. Please do not let me catch you plagiarizing.

Plagiarism: n 1: a piece of writing/work that has been copied from someone else and is presented as being your own work 2: the act of plagiarizing; taking someone's words or ideas as if they were your own.

If you use code, ideas, or text authored by someone else, cite them. It is OK to get help from external sources of knowledge, but citation is mandatory.

Remote Instruction During Crisis

This is a unique course offering in that it is occurring via remote instruction at a time of great crisis. My heart reaches out to you during this difficult time. I will do what I can to accommodate you in this situation: however, it is important that you reach out to me as early as possible for assistance or accommodations. This is also an unusually large course offering, so please work with me in figuring out how to make this work for you.

Safe Space

PSU and your instructor are committed to providing a safe and effective learning space for people of all races and ethnicities, genders and gender roles, religious beliefs, physical abilities, etc. Students in this course must conduct themselves collegially and professionally. Bigotry or uncivility of any type will not be tolerated: this behavior will result in removal from the course and reporting to the appropriate authorities at PSU.

Access and Inclusion for Students with Disabilities

PSU values diversity and inclusion; we are committed to fostering mutual respect and full participation for all students. My goal is to create a learning environment that is equitable, useable, inclusive, and welcoming. If any aspects of instruction or course design result in barriers to your inclusion or learning, please notify me. The Disability Resource Center (DRC) provides reasonable accommodations for students who encounter barriers in the learning environment.

If you have, or think you may have, a disability that may affect your work in this class and feel you need accommodations, contact the Disability Resource Center to schedule an appointment and initiate a conversation about reasonable accommodations. The DRC is located in 116 Smith Memorial Student Union, 503-725-4150, drc\,

If you already have accommodations, please contact me to make sure that I have received a faculty notification letter and discuss your accommodations. Students who need accommodations for tests and quizzes are expected to schedule their tests to overlap with the time the class is taking the test.

For information about emergency preparedness, please go to the Fire and Life Safety webpage for information.

Discrimination and Harrassment; Mandatory Reporting

Portland State is committed to providing an environment free of all forms of prohibited discrimination and sexual harassment (sexual assault, domestic and dating violence, gender or sex-based harassment and stalking). If you have experienced any form of gender or sex-based discrimination or sexual harassment, know that help and support are available. PSU has staff members trained to support survivors in navigating campus life, accessing health and counseling services, providing academic and on-housing accommodations, helping with legal protective orders, and more. Information about PSU's support services on campus, including confidential services and reporting options, can be found on PSU's Sexual Misconduct Prevention and Response website at You may call a Confidential Advocate at 503-725-5672 or by scheduling on-line: You may also report any incident of discrimination or discriminatory harassment, including sexual harassment, to either the Office of Equity and Compliance or the Office of the Dean of Student Life.

Please be aware that all PSU faculty members and instructors are required to report information of an incident that may constitute prohibited discrimination, including sexual harassment and sexual violence. This means that if you tell me about a situation of sexual harassment or sexual violence that may have violated university policy or student code of conduct, I have to share the information with my supervisor, the University's Title IX Coordinator or the Office of the Dean of Student Life. For more information about these matters that include Title IX, please complete the required student module Creating a Safe Campus in your D2L.

Last modified: Wednesday, 7 October 2020, 5:31 PM