Assignments

IntelliJ in CSIL; click for details
  • IntelliJ is installed in CSIL labs (Windows OS; Surrey and Burnaby).
    • Suggested lab: SRYE 4013 (new building); but other SRYE labs likely OK too.
    • Run by pressing Windows key, and then "IntelliJ".
    • If IntelliJ asks for a license, point it to this server:
      http://cs-sc-licensing.cs.surrey.sfu.ca:8023/


Assignment 1: Game tracker

Assignment 2

Assignment 3

Assignment 4

Hints for Resolving Spring Boot issues; click for details
  • Check the build.gradle file contains the following (check versions)
    plugins {
    id 'java'
    id 'org.springframework.boot' version '4.0.0-RC1'
    id 'io.spring.dependency-management' version '1.1.4'
    }
    group 'org.example'
    version '1.0-SNAPSHOT'
    repositories {
    mavenCentral()
    }
    dependencies {
    implementation ("org.springframework.boot:spring-boot-starter-web")
    testImplementation('org.springframework.boot:spring-boot-starter-test')
    }
    test {
    useJUnitPlatform()
    }
  • Check gradle\wrapper\gradle-wraper.properites file contains the line:
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
  • Check Java version is up to date (Fall 2025 I'm using Java 24):
    File > Project Structure > Project > SDK = 24 (or something relatively rescent)
  • Ensure Gradle is using the same SDK version as your project:
    File > Settings > Build, Execution, Deployment > Build Tools > Gradle:
    Distribution: Wrapper
    Gradle JVM: Project SDK
  • After changing build.gradle or gradle-wrapper.properties you must re-sync the project with the gradle file. Click the Gradle elephant icon on the right, then select the Sync All Gradle Projects button at the top.





Policies

  • Assignment Late Policy
    Assignments may be turned in up to 3 days late with 0% penalty. Later than this is 100% penalty (60 minute grace period). Contact the instructor if there are extenuating circumstances.
  • Extensions and Deferrals
    Email Dr. Brian with your request. You may need to complete and email SFU Academic Concession Self-Declaration Form. Doctor's notes are usually not required. Extensions only considered for circumstances beyond the student's control; plan to submit assignments on time.
  • Academic Honesty
    • The MOSS tool will be used to check the originality of all electronic submissions.
    • SFU's Academic Honesty policy is crucial to earning credit in this course. Violations of the policy will be taken seriously and reported to the department and university.
    • Explanation of penalties applied for academic dishonesty.

Use of Generative AI Tools

Large Language Models (LLMs) such as ChatGPT and Copilot are very powerful for assisting programmers. However, they also make it really easy to not learn how to code! To be a good software developer you need to know how to write the code yourself (with and without the AI tools). For this course, here are the rules:

  • You must write the code yourself, and be able to re-create the application on an exam (or job interview)!
  • If use use an AI tool, you must mention it in your code, such as putting the following comment at the top of your file:
    // Used help from ChatGPT to find null pointer in tokenization code.
    • If you are finding that you need a lot of specific mentions on what AI is doing for you, then you are likely relying on it too much and not building your own software development and systems programming skills.
  • Incorrect use of AI tools is considered a violation of the course's academic honesty policy and will earn a grade of 0 and an academic dishonesty report being filed with the university.

Allowable uses of AI

  • Experiment with code shown in lectures.
  • Help understand concepts.
  • Help understand code and its behaviour.
  • Answer questions such as:
    1. "Explain the return values of fork()?"
    2. "In this example, what are the arguments to fork()?"
    3. "Why does this code crashes when I enter an empty string?"
      (Note: you should first use the debugger and build your skills, but the AI can help)

Forbidden uses of AI

  • Do not use AI to write any of your code.
    • Do not ask AI to write code. Hint: If you are prompting AI, add "without showing me any code, explain how..."
    • Do not take any code from an AI system. If it outputs the code, then it's not your code.
  • Do not use AI to read or change any of your code.
    • Do not copy-paste or upload your code to AI.
    • Do not use local tools to analyze your code.
    • Do not ask AI to find a bug, suggest a change, check if you met assignment requirements, refactor your code, add comments, check for style violations, write code based on your comments or directions, translate your code between programming languages, translate your code between human languages.
  • Do not copy the assignment description into an AI tool.
    • Do not have AI summarize assignment requirements.
    • Do not have AI translate assignment requirements into another language.
  • Do not use an AI agent to try write your code.
  • Don't ask questions like:
    1. "What is an implementation of the following assignment?"
    2. "Write a Java function which reads in user input and tokenizes it into an array."
    3. "Write a Java program which passes the following tests."