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
microeditor. - Terminal editors:
micro,vim, oremacsfor 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, andREADMEfiles. - Do not submit the entire repository.
- Editor alias:
- The
mcommand 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
PATHin.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
cleanto 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.