---
# System prepended metadata

title: Jam 00 - All
tags: [jam00, git, tools, setup, "4 \U0001F973 done"]

---

---
title: "Jam 00 - All"
tags:
  - 4 🥳 done
  - jam00
  - setup
  - git
  - tools
prerequisites:
  - Previous jams: None - this is the first jam!
  - Tools: IntelliJ, git, Gradle
  - Concepts: File systems, directory structures, basic command line usage
---
<!-- markdownlint-disable line-length single-h1 no-inline-html -->
<!-- markdownlint-configure-file { "ul-indent": { "indent": 4 }, "link-fragments": {"ignore_case": true} } -->

# <span class="title">Java Jam00 – The Shell and CSCI 205 Setup</span>

{%hackmd dJZ5TulxSDKme-3fSY4Lbw %}

:::spoiler **Course Development Team**
<center>
    <table width="100%">
    <tr align="center">
        <td width="33%">
            <img src="https://www.dropbox.com/scl/fi/uz9dn7vc9y5k43160pdb0/Fun-Artsy-Square.png?rlkey=2zmgqgblwsagukfsb343tl3ye&raw=1" alt="Lily Romano" width="100" style="border-radius: 50%"/><br/>
            <a href="https://lilyromano.com">Lily Romano</a>
        </td>
        <td width="33%">
            <img src="https://www.bucknell.edu/sites/default/files/styles/faculty_page_photo/public/libris/C00001GOQFVeT0YE/G0000hRJySpIobZY/20160419-7C8A4469.jpg" alt="Brian King" width="100" style="border-radius: 50%"/><br/>
            <a href="https://www.bucknell.edu/fac-staff/brian-king">Brian King</a>
        </td>
        <td width="33%">
            <img src="https://www.soconnor.dev/_next/image?url=%2Fheadshot.png&w=256&q=75" alt="Sean O'Connor" width="100" style="border-radius: 50%"/><br/>
            <a href="https://www.soconnor.dev/">Sean O'Connor</a>
        </td>
    </tr>
    </table>
</center>

:::

|                        |                                        |
| ---------------------- | -------------------------------------- |
| **Working Directory:** | `jam00`                                |
| **Points:**            | 5 pts (graded for completion only)     |
| **Team-based?**        | NO (but discussion encouraged)         |
| **Due:**               | Friday, 2025-Jan-24 (before 11:59pm) |
<!-- SEMESTER SPECIFIC: Update due date and time -->

# Objectives

- Learn essential Linux shell commands for software development
- Set up a professional Java development environment
- Master basic Git version control workflows
- Establish local and remote code repositories
- Configure IntelliJ IDEA for Java development

# Introduction & Outcomes

Welcome to your first "jam" in CSCI 205! While you won't write much Java code today, you'll set up the professional development environment that will power your work throughout the semester. Modern software engineering requires mastery of command-line tools, version control, and integrated development environments - all skills you'll develop in this jam.

<!-- Embeds Jam00-Checklist.md -->
{%hackmd 0nAFlkbJQ0mjtEpg-x1ZLA %}

## Tools You'll Install

- Java 21 JDK (Java Development Kit)
- IntelliJ IDEA (Professional IDE)
- Gradle (Build automation tool)
- Git (Version control system)

## What You'll Learn & Accomplish

1. **Command Line Mastery**
    - Navigate files and directories with confidence
    - Create and manage your project structure
    - Execute commands to manipulate files
    - **Outcome**: Navigate the command line to build your course workspace

2. **Project Organization**
    - Create standard Java project directories
    - Follow professional naming conventions
    - Manage project documentation
    - **Outcomes**:
        - Set up a properly structured `csci205_jams` project
        - Create a professional `README.md`
        - Set up proper .gitignore configuration

3. **Version Control Fundamentals**
    - Initialize and configure Git repositories
    - Track and commit code changes
    - Connect local and remote repository
    - **Outcomes**:
        - Create and configure a local Git repository
        - Set up a remote GitLab repository
        - Successfully commit and push your first code changes
        - Configure repository access for instructor and TAs
        <!-- SEMESTER SPECIFIC: Change plural/singular reference to instructor -->

4. **Development Tools**
    - Install the Java development kit
    - Configure your code editor
    - Set up build automation
    - **Outcome**: Create a working Java development environment

:::info
🎯 **Your Learning Journey Starts Here**

This course demands active participation in your learning journey. While early jams like this one provide detailed guidance, future assignments will become increasingly open-ended, requiring you to solve problems independently. This mirrors real-world software development, where you'll often need to:

- Research solutions independently
- Learn new tools quickly
- Debug unexpected problems
- Ask for help effectively

Remember:

- It's okay not to know everything immediately
- Use available resources (documentation, search engines, IDE help)
- Ask questions (instructors, TAs, classmates, Discord)
- Embrace the challenge of finding solutions independently

Research consistently shows that active engagement in learning leads to the best outcomes. Your success in this course—and in your future career—depends on developing these self-directed learning skills.
:::

<!-- Embeds Jam00-Exercise1.md -->
{%hackmd hB16VzUDQl6cuCYYUk2FUg %}

<!-- Embeds Jam00-Exercise2.md -->
{%hackmd wd8nfwOMRXKoD0lJPpQRMQ %}

<!-- Embeds Jam00-Exercise3.md -->
{%hackmd yfMdx0s7TR6tJNp0ZFrp4A %}

<!-- Embeds Jam00-Exercise4.md -->
{%hackmd 5guwAyQWTFSaVQo2MVnaHA %}

<!-- Embeds Jam00-Exercise5.md -->
{%hackmd Ufns-udtRSSnkOOsGCZdfg %}

<!-- Embeds Jam00-Exercise6.md -->
{%hackmd omTVl50qRcKsJRMxSNXkEQ %}
