Lectures

001 students will have 2 required lectures per week. iClicker questions will appear frequently on slides during lectures.
801 students will access the lectures either synchronously or asynchronously through Echo360.
Video recordings of lectures will be available under Echo360 on Canvas for online students. Lecture recordings may be made available upon request for in person students. Slides will be posted on Canvas on the day of each lecture.
It is highly recommended that you opt to use analog means (pen and paper) for taking notes during class. If you choose to use a laptop during class your activity will be monitored and distractors will be warned. If distracting behavior persists then you will be asked to leave the classroom.

Labs

Labs provide an opportunity for students to familiarize themselves with the tools used in the class prior to using the tools for programming assignments.
Students of Sections 001 will go to their specific lab time. Your TA will run the lab and give you instructions. Attendance is required for students of section 001. Students will NOT get credit on lab actvities unless they attend an in-person lab (exception: documented excuse).
Students of Section 801 will not participate in synchronized labs. They will review the online lab material and get help if needed from the helpdesk.

Letter GradeRange
A+100% to 96.67%
A<96.67% to 90.0%
B+<90.0% to 86.67%
B<86.67% to 83.33%
B-<83.33% to 80.0%
C+<80.0% to 76.67%
C<76.67% to 70.0%
D<70.0% to 60.0%
F<60.0% to 0.0%
CSU does not use grades of C-, D+, or D-. The instructor reserves the right to make minor adjustments to grades on a case-by-case basis.
CategoryWeight
Programming Assignments30%
Quality Check Assignments15%
Quizzes10%
In-Class Participation (iClicker)10%
Lab Participation10%
Exam 110%
Exam 2 / Final program presentation (demo)15%
Total100%
Note: The 801 section does not have iClicker in class participation. Thus their lab participation is worth 20%.

Programming Assignments 


The Java programming assignments (PAs) are to be done in Codio. These will be completed in 2 week sprints (unless otherwise specified) and are due Mondays at 11:59pm MST. There is a 3-day late period (10% deduction per day). See more in the late policy.
To grade your PA, your submission must be on Codio. Codio will populate your PA grade on Canvas once you run the autograder. You will have a limited number of autograder attempts for each PA.

Quality Check assignments will grade you based on your workflow. An essential aspect of being an effective software engineer is having a reliable routine. These assignments will review your code history, junit tests and coverage, pmd score, planning activity, refactoring efforts, etc.

Quizzes

There will be weekly readings from the required texts. These quizzes have unlimited attempts and are open all semester to help you study and practice for the exams.

Exams

001 students will take the exams via Canvas during proctored lab sessions.
801 students will take the exams via Canvas using Respondus Lockdown Browser (a webcam is required).
Exam 1 is required for all students. For Exam 2, students can either take Exam 2 or present a final program recorded presentation/demo. Exam 2 will be cumulative and cover all content in the course but more heavily emphasize concepts after Exam 1.
Exam content is based on lecture, reading, and lab content.

Required Texts

  • Clean Code: A Handbook of Agile Software Craftmanship by Robert C. Martin
  • Clean Architecture: A Craftsman’s Guide to Software Structure and Design by Robert C. Martin

AI & Academic Integrity Policy

Use of generative AI tools such as ChatGPT, Claude, GitHub CoPilot, or other LLMs violate CSU’s Academic Honor. Assignments must be your own work and the use of these tools for generating assignment solutions or any written work at any stage in the process is prohibited and will be treated as a violation of academic integrity. Turning in code or work written by generative AI tools will be treated as turning in work created by someone else, namely an act of plagiarism and/or cheating. All assignments provided to you in this class are considered proprietary and the intellectual property of the university. You are prohibited from sharing the content online.

While we acknowledge that these tools are likely to become an important part of a software engineer’s workflow, you are much more likely to use these tools in an effective manner if you already have expertise in the relevant technical topics. Developing such expertise requires putting in the effort to learn these topics without the assistance of these tools. At the end of the semester we may explore AI agents.

To ensure academic integrity you will be required to write your code exclusively on Codio. If you do not have online access at some point you will be expected to participate in a code review with the instructor to review any code you wrote while offline. If your code is flagged by Codio you may be asked and expected to participate in a code reivew with the instructor. Failure to participate in a code review upon request (within 1 week of the request) will be considered a violation of the academic integrity policy.

Using online resources as reference tools in moderation is appropriate. You are expected to cite any sources you use in a comment in your code with an explanation of the code you wrote due to that resource. Failure to cite a source is considered a violation of the academic integrity policy.

At a minimum, violations will result in a grading penalty in this course and a report to the Office of Conflict Resolution and Student Conduct Services.

Late Policy

You will be allowed to submit a programming assignment up to 3 days late (i.e. Thursday 11:59pm) with a 10% penalty per day (i.e. Tuesday 12:01am = max 90%). After the late window you can still recieve up to 50% on any programming assignment until the end of the semester but you must ask an instructor or a GTA (during a 1:1 session) to regrade your work. The class will continue learning new material so do NOT abuse this policy. This policy does NOT extend to exams.
You must provide documentation with your name, date, and a professional’s signature if you expect to miss an exam. If you do not provide documentation, you may take a make-up exam the next day the exam window closes for a 20% deduction. For example, if the exam window closes on Sunday you must take the makeup exam on Monday.
Your 3 lowest quiz grades will be automatically dropped. Quizzes have unlimited attempts and will remain open to retake for the duration of the semester.
Your 2 lowest lecture participation and your 2 lowest lab activity grades will be automatically dropped. Therefore, you can miss 2 lectures and 2 labs and still receive full credit on your participation grades.

Minimal Equipment and Resources Required

  • Access to the class Canvas page. Students must use a browser installed on their computer that is compatible with Canvas.
  • Access to Microsoft Teams. Microsoft Teams is available for different platforms and browsers.
  • Ability to create, compile, and run Java programs from an IDE such as VSCode.
  • A GitHub account with your school colostate.edu email attached to the account. If you already have a GitHub account see the GitHub Docs for how to add another email to an existing account.
  • Respondus Lockdown Browser. For details and setup instructions see TILT Respondus Setup Instructions (Webcam is REQUIRED)

Excused Absences

Documentation will be required for the absence to be excused. It is your responsibility to plan on getting the appropriate documentation.
Events that are excused:
Illness with documentation
Death or illness in the family
University sanctioned events
Certain other cases as approved on a case by case basis with documentation
If any documentation seems too personal to send, please contact Student Case Management and they can provide the material in a secure and confidential manner.