Skip to main content

Check Yourself

  • Have you read tutorials page and set up either VM or have CSIL Access?
  • Have you read the linux section on the tutorials page?
  • Have you read the C section on the tutorials page?
  • Have you read the modules

  • Don't proceed without knowing how to run this program in a terminal
#include <stdio.h>
void main() {
  printf("Hello World");
}

ChatGPT

As a virtual assistant, ChatGPT can provide helpful guidance on computer programming topics, but attending a computer programming lab is a valuable opportunity for students to gain practical experience.

  • Labs are essential to your learning and you should not skip them.
  • Computer programming is inherently an applied exercise, and you will not learn much if you do not practice.
  • You can gain practical skills and develop a deeper understanding of the material by working through coding exercises and debugging.
  • Labs provide access to cutting-edge research tools that are not widely available.
  • We do recognize the value of ChatGPT to enhance learning in labs. As such we permit you to use ChatGPT to help you with your labs. Try 295’s ChatGPT here
  • We provide suggestions in each lab , Ask ChatGPT or TA section.

Sample prompt if you wish ChatGPT to help you but not actually give you the answer:

You are an experienced programming tutor and I am a student asking you for help with my Python code.
- Use the Socratic method to ask me one question at a time or give me one hint at a time in order to guide me to discover the answer on my own. Do NOT directly give me the answer. Even if I give up and ask you for the answer, do not give me the answer. Instead, ask me just the right question at each point to get me to think for myself.
- Do NOT edit my code or write new code for me since that might give away the answer. Instead, give me hints of where to look in my existing code for where the problem might be. You can also print out specific parts of my code to point me in the right direction.
- Do NOT use advanced concepts that students in an introductory class have not learned yet. Instead, use concepts that are taught in introductory-level classes (e.g., CS1, CS101, CS2) and beginner-level programming tutorials. Also, prefer the C language.

[Question]

Labs

WE DO NOT CONTROL SCHEDULING ANY REQUESTS FOR MOVING TO A DIFFERENT LAB HAVE TO GO TO THE ADVISOR OR SCHEDULER

  • Labs are designed to take approximately 1 hour and should be completed in the lab section. Some labs will turned in via hardcopy, others online.
  • You will be assigned to specific lab sections and listed on the lab page. Please attend the lab session that you are enrolled in; this is the only way to get credit for the lab attendance (and the lab itself if it is a handout).
  • Watch lab videos before the lab
  • Go over lab tasks before the lab
  • TAs will only guide, they will NOT work out the solution

  • The staff recommends always asking for help on labs when you need it, and to only request a check off when you have thought about the lab sufficiently and can have an informed conversation with your TA.

  • Each lab will contain questions you should be able to answer, even though we will not explicit ask them to give you points. If you are unsure of the answer to any of these questions you can ask for help.

Schedule

  • Please use Rooms 9838 and 9700 if you want ready access to TAs. You can also use room 9804, but then TAs may not be able to provide timely advice.
  • TAs will dedicate the majority of the time for lab tasks only.
  • TAs will walk through the slides (if any) and handouts.
  • Through the course of the lab, the TA reveal parts of the solution in the lab.
  • TAs will not be going over the pre-req that prior courses have outlined see here

Cannot find cgdb.

  • For access to cgdb in 295. On either your VM or CSIL. See tutorials page for more info on modules.
`SELF DOES NOT MEAN OPTIONAL TO WATCH. It means OPTIONAL TO ATTEND PHYSICAL LAB` `You are expected to go over the material as they will be helpful for completing assignments` `The TAs will be present physically in the lab during all lab hours (SELF/REQUIRED) to help you`
Handout Git Slides Prof. Vid. TA Prof. Tutorial Required
lab 0 link SELF
lab 1 git pptx link TA Solution Tutorial GDB IN PERSON REQUIRED
lab 2 git pptx TA Solution IN PERSON REQUIRED
lab 3 git pptx link TA Solution SELF
lab 4 Assignment 2 - Part 1 pptx link TA Solution Tutorial IN PERSON REQUIRED
lab 5 Assignment 2 - Part 2 link TA Solution SELF
lab 6 git TA Solution Tutorial VENUS IN PERSON REQUIRED
lab 7 git pptx link TA Solution IN PERSON REQUIRED
lab 8 git link TA Solution SELF
lab 9 git pptx link TA Solution IN PERSON REQUIRED
# This step will only work if you followed the module instructions
$ module load cmpt295/cgdb
# OR if modules did not work. You can hardcode the path
# Add this to your ~/.bashrc if you do not want to do this 
# on each login
$ export PATH=/usr/shared/CMPT/courses/cmpt295/cgdb/bin:$PATH

Policies

  • READMEs in lab repos could be out-of-date. Always use links in table above.

By cloning the github repo you accept the following:

  • I have read, fully understand and will follow strictly course policies about academic integrity documented in course website and SFU website [1]. In particular, I will not:
  • Share my work with others, both before and after finishing this course.
  • Post my work in public repositories, both before and after finishing this course.
  • Plagiarize under any circumstance.