Skip to content

CS 315-02 Lecture/Lab — Meeting Summary (Fall 2025)

  • Date: August 26, 2025
  • Time: 2:43 PM Pacific (US and Canada)
  • Zoom ID: 868 6589 0521

Next Steps

  • Greg:
  • Update the course schedule with the midterm date within the next couple of days.
  • Resolve the inconsistency between June’s office hours in the syllabus and the staff page.
  • Add a link to the test repository on the course website.
  • Add Beach’s Guide to GDB to the C resources section.
  • Continue updating the website with iPad notes.
  • Check with June about office hours for tomorrow.
  • Fill out the schedule on the website.

  • Rashawn:

  • Enter GitHub user ID in the spreadsheet.

  • Students:

  • Prepare for interactive grading of Lab 1 requirements during tomorrow’s lab section.

Summary

In-Class Coding and Setup Updates

  • Greg outlined plans for in-class coding sessions and fielded questions about asynchronous communication.
  • An additional office hour was announced to help resolve development environment issues.
  • Students were reminded to add their GitHub user IDs to the shared spreadsheet for project setup.

Class Website and Syllabus Updates

  • The class website now includes:
  • A new schedule,
  • AI-generated summaries,
  • Access to recordings via USF’s Google account.
  • Students were encouraged to set up GitHub and the auto-grader and to review development setup and C programming resources.
  • A potential inconsistency in office hours (syllabus vs. staff page) was noted; both in-person and Zoom office hours will be held throughout the semester.
  • Grading breakdown highlighted that attendance counts for 10% of the course grade.

Lab and Project Grading Guidelines

  • Labs:
  • Worth 10% of the course grade.
  • Graded via a combination of auto-grader tests and interactive grading on the development setup.
  • Projects:
  • Worth 30% of the course grade.
  • Late policy: submissions within one week can earn up to 75% of the points.
  • Emphasis on code quality and interactive grading sessions.
  • AI usage:
  • Encouraged as an aid; students are responsible for understanding their solutions.
  • Next topic:
  • How to push labs to GitHub.
  • Students should review Lab 1 requirements before the next lab session.

Terminal Setup and Editor Usage

  • Recommended tools:
  • macOS: iTerm2 for better key handling with the micro editor.
  • Terminal editors: micro, vim, or emacs for long-term skill development.
  • SSH setup:
  • Configure SSH keys to access the Beagle machine without repeated password prompts.
  • Exams:
  • No retakes for JAMs; exams will be scaled for difficulty with more opportunity to improve on the final.
  • macOS key issue:
  • If Shift+Arrow does not work in micro, use iTerm2 or adjust terminal settings.

Auto-Grader Installation Demonstration

  • Installation on the Beagle machine included:
  • Cloning the auto-grader repository,
  • Adding it to the system PATH,
  • Configuring it to use the test directory for CS 315.
  • SSH keys were recommended for cloning repositories.
  • Provided tips for command-line navigation.

Lab Repository Setup and Git

  • Covered:
  • Cloning a lab repository,
  • Editing files,
  • Committing and pushing changes,
  • Using makefiles,
  • Running the auto-grader and tests.
  • Emphasized:
  • Makefiles must use tabs for indentation.
  • Students should complete setup before the next lab session.

Auto-Grader Setup Instructions

  • Process:
  • Clone the auto-grader repository,
  • Update the PATH,
  • Configure the auto-grader config file.
  • Submission clarification for the lab:
  • Submit only: Makefile, hello.c, args_lens.c, and README files.
  • Do not submit the entire repository.
  • Editor alias:
  • The m command works only if set as an alias in .bashrc.

Auto-Grader and Makefile Basics

  • The auto-grader should be installed outside the Lab 1 directory and added to the PATH in .bashrc.
  • Makefile basics:
  • Purpose: manage builds for larger software projects.
  • Session included an overview before a brief 10-minute break.
  • Planned continuation with more C code examples after the break.

Auto-Grader Setup Troubleshooting

  • Troubleshooting steps:
  • Ensure the auto-grader is on the PATH,
  • Clone the correct repository,
  • Run tests to verify the setup.
  • Students may arrive early to the next lab for interactive grading training.
  • Makefile details were deferred due to time constraints.

Makefile Basics and Best Practices

  • Topics covered:
  • Variables, rules, and targets,
  • Compiling C programs into object files and executables,
  • Phony targets like clean to manage build artifacts.
  • Best practices:
  • Do not commit build artifacts to GitHub (they are platform-dependent).
  • Extend rules systematically when adding new programs (e.g., a hypothetical “foo” target).

C Programming and Command-Line Arguments

  • Concepts:
  • Difference between text and binary files.
  • A simple C program that repeats a string a specified number of times.
  • Parsing command-line arguments in C.
  • Upcoming work:
  • Project One involves more complex argument parsing.
  • Office hours may be rearranged due to an upcoming holiday.

Argument Handling and Repository Setup

  • Argument parsing:
  • Account for unordered options and avoid brittle assumptions.
  • Use a technique to consume arguments in any order and compute results; more details to follow next session.
  • Repository verification:
  • After submission, clone and check locally to ensure no files are missing.
  • Students were reminded to resolve remaining setup tasks before the next class.