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 both sections. Slides will be posted on Canvas on the day of each lecture.

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 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 Assignments10%
Quizzes15%
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 GitHub. These will be completed in 2 week sprints 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 the main branch of your GitHub repo. We will pull your code from your repo and an autograder will grade it. Once the autograder is active, it will run each night and provide a comment in your Feedback PR. Be sure to commit and push your code to main often.

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 commit history, junit tests and coverage, pmd score, kanban board 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

Both 001 and 801 students will take the exams via Canvas using Respondus Lockdown Browser.
Exam 1 is required for all students. Exam 1 will cover content from weeks 1 to 8. For Exam 2 grade students can either take Exam 2 or present an 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 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.
While we acknowledge that these tools are likely to become an important part of a software engineer’s workflow in the future, 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 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%). The class will continue learning new material so do NOT abuse this policy. This policy does NOT extend to exams, quizzes, or readings.
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. This policy does not extend to quizzes.
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 4 lowest lectures/labs will be automatically dropped. Therefore, you can miss 4 lectures/labs and still receive full credit on your participation grade.

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.
  • Ability to SSH into the CS department Linux machines for remote development. See the CSU CS department SNA website for more on remote connection.
  • 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 to personal to send, please contact Student Case Management and they can provide the material in a secure and confidential manner.