Syllabus

Course Description

(Course Catalogue) Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies. Intended for non-majors. Cannot be taken for credit if credit received for CSE 333. Prerequisite: CSE 143.

This is a very practical, skills-oriented course. The goal is to gain exposure to a wide variety of useful concepts and tools. Lecture will introduce concepts, and homework will provide an opportunity to practice. There will be a strong emphasis on independent learning, as it will not be possible to cover each topic comprehensively in class.

Goals

Successful course participants will:

Logistics and Contact Information

Instructor: Megan Hazen
mh75[at]cs[dot]washington[dot]edu

For most purposes, use the Edstem discussion page. If email is required, use the course staff email: cse374-staff[at]cs[dot]washington[dot]edu. You will get a quicker and more comprehensive response with this approach.

See the course homepage for more information about the course. You will also wish to refer to the Canvas page, which will contain links to Zoom meetings or lecture recordings. Additionally, this course will use an Edstem discussion board. The discussion board will provide invaluable information and discussion with your peers and instructors.

Lectures and Asynchronous Learning

During the autumn quarter of 2023 this course is expected to be in-person and synchronous, with lectures held M,W,F 9:30-10:20 AM in CSE2 G10. However, the need for on-going flexible access will be accommodated in a variety of ways. These include assignments that can be done at home, recorded or remotely accessible lectures, remote and in-person office hours, and a general commitment to flexibility.

Students should aim to attend all lectures in-person, as this facilitates cooperative learning and is corellated to good subject mastery. However, lectures will be recorded and materials provided to allow for asynchronous work if it is necessary. Students are encourage to stay home if they are ill.

Text

There are no books required for this course. However, you may find the following texts to be useful, and I encourage you to check them out.

The Pocket Guide is a concise source of information and provides a useful reference to Linux at the level you need for 374. You are not responsible for memorizing all of the details in it, but I strongly recommend that you read through it. The Kernighan & Ritchie book is the classic reference on C from the people who invented the language. It has useful explanations and examples beyond the information presented in class or reference information available online.

See the Linux and C resource pages on the course website for links to additional useful information on Linux and C.

Communications

This course has a Canvas page which will provide a home base for lecture recordings, Zoom links, and grades. Announcements will be made via Edstem. Edstem, the Canvas page, and this homepage will be updated frequently. It is your responsibility to stay on top of announcements and deadlines. You may wish to subscribe to the calendar on this page for up to date office hours and assignments scheduling.

An Ed discussion board is linked to the course home page so we can keep in touch outside of class meetings. Please participate. The discussion page may be used for any course related purpose. When discussing code please refer to general approach, or possibly psuedo-code, but do not share code snippets. You may post anonymously on the discussion page. Questions regarding assignments or course material should be posted in the appropriate sections of the discussion, and students should review current topics for answers before asking a new question.

Messages to the course staff that are not appropriate for the public discussion board can be posted to staff only, or be sent to cse374-staff[at]cs. Please don't send email to individual staff members if possible. Messages sent to the entire staff are more likely to receive a timely response, and it helps ensure the staff gives consistent answers to questions, as well as help us get a better idea of whether several people have the same or similar questions.

Course communications will be monitored during all normal business hours. During these times an answer may be expected within four hours. Outside of business hours an answer may be expected within twenty-four hours.

Assignments and Grading

This course will have two different types of assignments, both of which are considered Homework. Practice problems are relatively short homework assignments meant to provide practice with practical skills. Projects are longer, more involved, challenges of practical skills. Some assignments will include evaluation of theoretical knowledge as well as practical knowledge.

All homework assignments are designed to be an opportunity to gain practical experience with the material. Students are encouraged to work actively on homework assignments, and use allocated class time, office hours, and other course resources to find success. Students should attempt every homework, and submit what they are able to achieve - partial credit will be awarded.

Assignments will be graded according to the descriptions accompanying the assignment. Each assignment will state a maximum number of points, and grades represent the number of points earned. When possible, early grading feedback will be provided via auto-graders, and students will be able to resubmit assignments. This policy is to provide formative feedback and encourage students to work towards mastery. Final scores will also provide a summative measure of mastery.

Students may drop the lowest grade from the Practice problems.

Your final score will be a percentage representing the number of the possible points you have earned. This score will be converted to a 4.0 scale using a linear transformation.

Late Policy

Deadlines will be given with each assignment - due dates are specified with day and time in Pacific Daylight Time. Successful students will stay on pace with the course by handing in all materials by the deadline. It is your responsibility to read carefully for due-date specification. If you are aware of a challenge before the due date, or are faced with a true emergency, please contact your instructor.

Each student will be provided with ten total free 'late days'. Students may apply up to two 'late days' per assignment. Late days are needed for business (Monday-Friday) days only. (For example: A homework is due on Thursday night. A student may use one late day and turn it in through Friday night. No late days are needed to turn in on Saturday or Sunday, but one additional late day could be used to turn it in on Monday night.)

Tests

There are no formal tests during the Autumn 2023 quarter. Some homework assignments may include theory questions in addition to the practical material.

Academic Integrity

Any attempt to misrepresent the work you submit will be dealt with via the appropriate University mechanisms, and your instructor will make every attempt to ensure the harshest allowable penalty. The guidelines for this course and more information about academic integrity are in a separate document (cs.washington.edu/academics/misconduct). You are responsible for knowing the information in that document. Please notice that you should not, in any situation, borrow another person's code or provide yours to a fellow student, including students in other quarters of this course.

Students should be aware that Gradescope identifies code similarity and can test for likely generative AI use. Not only does copying solutions from other students or GAIs impede your learning, but these actions may be detected and penalized.

Conduct and Accommodations

This course adheres to University standards including those guidelines laid out about Academic Integrity and Student Conduct. We refer students to support and accommodation services including Disability Services, Religious Accommodations, and Safe Campus resources.

This instructor hopes that some course-wide accommodations will enable students to participate fully without exception. These accommodations include recorded lectures, remote and in person office hours, untimed and open-note assignments, and some flexibility regarding homework due dates. Course material will be documented via Canvas and this webpage. In the event that any student finds themselves needing another accommodation they are encouraged to reach out to the course instructor.

This instructor seeks to ensure all students are fully included in each course, and strives to create an environment that reflects community and mutual caring. I encourage students with concerns about classroom or course climate to contact me directly. You may use the anonymous feedback form if you wish. In the event you are more comfortable with a different approach, please refer to the resources above.

Course Topics