---
# System prepended metadata

title: Course Syllabus
tags: [admin, "4 \U0001F973 done"]

---

---
title: "Course Syllabus"
tags:
  - 4 🥳 done
  - admin
---
<!-- markdownlint-disable line-length single-h1 no-inline-html -->
<!-- markdownlint-configure-file { "ul-indent": { "indent": 4 }, "link-fragments": {"ignore_case": true} } -->

# <span class="title">Course Syllabus - CSCI205</span>

## Spring 2025

{%hackmd dJZ5TulxSDKme-3fSY4Lbw %}

:::info

# Quick Reference Guide

### Course Components <!-- markdownlint-disable-line heading-increment -->

| What | Weight | Key Points |
|------|---------|------------|
| Course Readings | 15% | zyBooks, no late work |
| Jams + Assignments | 25% | Individual → Pair work, token system |
| Final Project | 20% | Team-based, no late work |
| Progress Checks | 20% | Individual, exam-like, no AI |
| Dev Diaries | 10% | Weekly reflections, due Mondays |
| Quizzes | 5% | Random, lowest dropped |
| Professionalism | 5% | Participation, engagement, respect |

### Important Policies

- **Late Work:**
    - Readings: No late work
    - Jams: Token system (9 tokens)
    - Assignments: 24h→10%, 48h→25%
    - Project: No late work
    - Dev Diaries: No makeups

- **AI Tools:**
    - ✅ Allowed: Learning, debugging, projects
    - ❌ Prohibited: Progress checks, quizzes
    - Must attribute all AI usage

- **Communication:**
    - Course: Discord
    - Absences: Notify before class
    - Help: Instructor/TA office hours

### Key Resources

- zyBooks: BUCKNELLCSCI205RomanoSpring2025
- Discord: [link provided on Moodle]
- Moodle: Course materials, submissions

:::

# Course Information

|  |  |
|-------|--------|
| Course | CSCI 205 |
| Place | Dana 325 |
| Lecture Time Section 01 | MWF 1 pm |
| Lecture Time Section 02 | MWF 2 pm |
| Lab Time Section 60 | Thur 10 am |
| Lab Time Section 61 | Thur 1 pm |

# Instructor Information

|  |  |
|-------|--------|
| Name | Lily Romano |
| Office | Dana 342 |
| [Drop-in Hours](#Drop-in-Hours) | As posted on Moodle or by appointment [at book.lilyromano.com](https://book.lilyromano.com/) |

# Be a responsible, empathetic Bucknellian

While COVID-19, RSV, Flu, and other airborne illnesses remain present, we must prioritize our community's health. Please adhere to the following guidelines:

1. By entering the classroom, you agree to follow all current campus protocols for controlling the spread of illnesses.
2. If masks are required, wear an N94 or N95 mask properly (covering both mouth and nose). I'll keep you updated about mask requirements via Discord.
3. If you're feeling under the weather, please stay home and let me know via Discord. Better safe than sorry!
4. Remember that while you may be healthy, others around you may have underlying conditions requiring extra precaution.

**If you cannot attend class:** Send a Discord message to your instructor before class. You are responsible for getting notes from a classmate and then contacting your instructor with any remaining questions.

# My Commitment to You

:::success
🔑 **Our Commitment to You**
Regardless of your race, nationality, gender, gender expression, or sexual orientation, belief system, or economic status or ability, you are welcomed as a valued, respected, and essential member of the Bucknell community. My class is a safe place for learning, growth, inquiry, and the respectful sharing of ideas. I will not accept any behavior that is counter to this mission.

If you experience any behavior from anyone at any point in my course that violates this policy, please contact me as soon as possible.
:::

# Communication and Help

Effective communication is essential for your success in CSCI 205. We provide multiple channels for support:

## Primary Communication - Discord

We'll use Discord as our main hub for course communication:

- Join our Discord server ASAP (you'll find the link on Moodle)
- Use Discord for:
    - Course questions (there are no silly questions!)
    - Assignment help
    - Chatting with classmates
    - Quick messages to me or the TAs

To participate in course discussions, you must use your real First and Last Name as your server nickname.

:::warning
**Important:** Do not use email for course-related questions! Please use Discord instead of email - it helps us help you faster!
:::

## Drop-in Hours

These are dedicated times when you can drop by my office without an appointment:

- Tentative Schedule (We'll finalize these based on your feedback by end of week 2):
    - 4:00 - 4:50 PM :: Mon, Wed, Fri
- Location: My office (Dana 342)
- Purpose:
    - Get help with course material or assignments
    - Dive deeper into interesting topics
    - Chat about how the course fits into your bigger academic picture
- No appointment needed - just stop by!

### Scheduling Additional Meetings

Can't make it to drop-in hours? No problem!

- Book a time that works for you: [at book.lilyromano.com](https://book.lilyromano.com/)
- Choose any available slot that fits your schedule

## Teaching Assistants (TAs)

Our TAs are experienced students who've recently completed this course successfully. They're here to help you succeed!

- TA hours and contact information will be posted on Discord
- Utilize TAs for additional support with assignments and course concepts

## When to Seek Help

The best time to seek help is early and often! Reach out when:

- You're stuck on course material
- Something in an assignment isn't clicking
- You want to better understand a concept
- You're feeling overwhelmed or falling behind

## Making the Most of Help Sessions

To get the most out of your time with instructors and TAs:

- Come prepared with specific questions
- Bring your attempted solutions or code
- Be ready to explain what you've tried
- Use appropriate channels:
    - Discord for quick questions
    - Drop-in hours for detailed discussions
    - Appointments for personal concerns

Remember: We're all here to help you learn and succeed. No question is too small, and it's always better to ask early than to wait until you're struggling!

# The Course

## Course Description

Welcome to CSCI 205 — Software Engineering and Design! Let's look at your journey so far and where we're headed:

Your Foundation:

- In CSCI 203, you mastered how computers think - learning to write instructions using functional, imperative, and object-oriented programming. You learned to control program flow through branching and loops.
- In CSCI 204, you explored the data structures that form the building blocks of efficient programs.

Now, CSCI 205 bridges these fundamentals with real-world software development. Think of it as your transition from "learning to code" to "becoming a software engineer." In this course, you'll:

- Build upon your foundational knowledge from CSCI 203 and 204, expanding from small, well-defined problems to large-scale, dynamic software systems.
- Introduce software engineering as a disciplined, dynamic process focusing on agile development methodologies.
- Emphasize object-oriented analysis, design, and implementation using the Java programming language.
- Employ an active learning approach featuring numerous individual and team-based labs/jams, assignments, and projects.
- Utilize industry-standard software development tools throughout the course.

Key Areas We'll Cover:

- Object-oriented design and implementation in Java
- Professional development tools and practices
- Team-based development and communication
- Large-scale project planning and execution

This course emphasizes hands-on learning through:

- Individual and team programming exercises
- Real-world project scenarios
- Active problem-solving sessions
- Collaborative development practices

By the end of CSCI 205, you'll be equipped with the skills and knowledge needed to tackle real-world, mission-critical software projects and be equipped with the skills to tackle them effectively.

## Course Prerequisites

To succeed in CSCI 205, you should have completed CSCI 203 and CSCI 204. Here's what you need to bring with you:

### Technical Background

You should be comfortable with:

- Data Structures and Algorithms:
    - Common ADTs (lists, stacks, queues, trees)
    - Basic sorting and searching
    - Understanding Big-O analysis
- Command Line Basics:
    - Essential commands (ls, cd, mkdir, pwd, man)
    - Basic file/directory management

### General Skills

You'll also need:

- Basic computer organization skills (managing files and folders)
- Ability to install software on your computer
- Readiness to use online resources responsibly

:::info
🔑 **Important Notes**

- No Java experience needed - we'll teach you everything from scratch!
- Not sure if you're prepared? Let's chat! Contact me early so we can ensure your success.
- Be ready to learn new tools and adapt your working style throughout the semester.

:::

## Course Objectives

The following list identifies the primary objectives of the course. This course aims to teach students how to:

1. Understand, define, and discuss object-oriented design terminology, including terms such as class, object, method, field, abstraction, inheritance, and polymorphism.
2. Apply object-oriented analysis and design techniques to solve a wide range of computational problems.
3. Identify, design, and implement appropriate abstractions in the development of a software system.
4. Evaluate and test software implementations to meet specified computational constraints, including memory and runtime efficiency.
5. Identify and address real-world software development challenges, recognizing internal and external constraints (such as economic and budgetary restrictions) and understand how these challenges affect the design and implementation of a software system.
6. Learn an object-oriented programming language (Java) for implementing object-oriented designs.
7. Use modern software development tools effectively, including an IDE, debugger, version control system, and testing framework for development of a large system.
8. Work effectively with a team on a large-scale project following modern software engineering processes, sharing work and communicating clearly with team members and stakeholders.

### Learning Outcomes (with ABET mappings)

By the end of the course, students will be able to:

1. Work effectively on a team to design, implement, and evaluate object-oriented solutions to computational problems. (ABET CAC/EAC 1, 5, EAC 6)
2. Design and implement programs using an object-oriented programming language. (ABET CAC/EAC 1)
3. Apply principles of software engineering to a large-scale problem. (ABET CAC/EAC 1, 2)
4. Utilize modern software development tools, including an IDE, debugger, version control system, and testing framework for professional software development. (ABET CAC/EAC 1)

### Tentative Course Outline

This outline provides an overview of the main topics we aim to cover. The schedule may be adjusted based on class progress and learning outcomes.

1. Java Programming Language (5 weeks)
    - Core language features and syntax
    - Object-oriented fundamentals
    - Collections and data structures
    - File I/O and exception handling
    - Note: Java concepts continue throughout the course

2. Object-Oriented Analysis and Design (4 weeks)
    - Object-oriented principles and patterns
    - Domain modeling and system design
        - Use case analysis and UML diagrams
        - Class identification and relationships
        - Design patterns and best practices
    - Implementation strategies in Java
    - Testing and quality assurance
        - Unit testing with JUnit
        - Test-driven development

3. Professional Software Engineering (6 weeks)
    - Modern development practices
        - Version control with Git
        - Agile methodologies (SCRUM, XP)
        - Team collaboration tools
        - Measuring success and failur
    - User interface development
        - JavaFX fundamentals/SceneBuilder
        - Event-driven programming
    - Team project development
        - Agile project management
        - Technical communication
        - Stakeholder collaboration
        - Intra-communication - Working with your team and other software developers
        - Inter-communication - Working with outside interests

Note: A detailed schedule with specific topics, assignments, jams, and readings will be maintained on Moodle throughout the semester.

# Academic Engagement and Credit Hours

:::warning
🔑 **Bucknell Credit Hour Policy**

*Courses at Bucknell that receive one unit of academic credit have a **minimum** expectation of 12 hours per week of student academic engagement. Student academic engagement includes both the hours of direct faculty instruction (or its equivalent), and the hours spent on out-of-class student work. Half- and quarter-unit courses at Bucknell should have proportionate expectations for student engagement.*
:::

What does this mean for CSCI 205?

- **Weekly Time Commitment:** Expect to spend about 12 hours per week, including:
    - 2.5 hours in lecture
    - ~1.8 hours in lab
    - 7.5+ hours on assignments, readings, and project work

- **Time Management:**
    - Some weeks may require more than 12 hours, especially during project phases
    - Plan ahead - staying caught up is crucial for success
    - Ask any former student - this course requires consistent effort!

:::info
💡 **Success Tip:** The best way to succeed in CSCI 205 is to engage consistently throughout the semester. Students who stay on top of the work not only complete the course successfully but often find it to be one of their most rewarding learning experiences.
:::

# Computer Resources and Software Tools

## Your Development Environment

You should expect to be on a computer a lot to complete this course. How you acquire access to computational resources is up to you. During the first week of class, you will need to decide on one of the following:

1. **Recommended:** Use your own laptop (Mac/Windows/Linux)
    - Install development tools locally
    - Most flexible option
    - Full control over your environment

2. **Alternative:** Use remote access
    - Connect to Bucknell Linux via browser
    - Works with any device that has a modern web browser
    - Instructions: Search "graphical session Linux remote" on [Bucknell Tech Support](https://bucknell.teamdynamix.com/TDClient/40/LIT/KB/)

3. **Last Resort:** Use lab computers
    - Limited by lab availability and hours
    - Not recommended due to access constraints
    - May impact your ability to complete work efficiently

:::warning
🔑 **Important Note:** As computer science students, you should be comfortable installing and configuring software on your own computer. This is an essential professional skill!
:::

## Required Software Tools

Here's what you'll need throughout the semester:

### Core Development Tools

- Java Development Kit (JDK) 21
- IntelliJ IDEA (Community Edition)
- Git version control system

### Build and Testing Tools

- Gradle (build automation)
- JUnit (testing framework)
- *Note: We'll introduce these as needed*

### UI Development

- SceneBuilder (for JavaFX applications)
- *We'll cover this later in the semester*

### Web-based Resources

- Lucidchart ([lucidchart.com](https://www.lucidchart.com)) - Diagramming tool
- zyBooks ([learn.zybooks.com](https://learn.zybooks.com)) - Interactive textbook

:::info
💡 **Don't worry!** We'll provide detailed installation instructions for each tool when you need it. Just make sure you have administrator access on your computer to install software.
:::

# Active Learning in CSCI 205

In CSCI 205, we emphasize active learning to help you develop practical software engineering skills.

## Our Learning Approach

Active learning means you'll be directly engaged in the learning process through:

- Interactive lectures with live coding demonstrations
- Hands-on programming exercises
- Group problem-solving activities
- Team-based projects
- Real-world software development scenarios

## Weekly Structure

Our weekly rhythm is designed to build and reinforce your learning:

1. **Monday/Wednesday Lectures**
    - New concept introduction
    - Live coding demonstrations
    - Interactive discussions
    - Concept application

2. **Thursday Lab Sessions**
    - Hands-on practice with new concepts
    - Guided project work
    - Technical skill development
    - Team collaboration opportunities

3. **Friday Integration Activities**
    - Applied problem-solving
    - Group work and discussion
    - Concept reinforcement
    - Learning reflection

### What This Means for You

- **Active Participation:** Your engagement in class is crucial. Come ready to:
    - Ask questions
    - Work through problems
    - Collaborate with peers
    - Share your insights

- **Continuous Learning:** Expect to:
    - Engage with material before class
    - Practice concepts during class
    - Apply learning in labs
    - Reflect on your progress

### Benefits of Active Learning

- Learn by doing rather than just watching
- Develop practical problem-solving skills
- Build collaboration abilities
- Gain real-world development experience
- Receive immediate feedback on your work

:::info
💡 **Success Tip:** The more you engage with each part of our weekly cycle, the better prepared you'll be for assignments, projects, and your future career in software development. This rhythm will adapt as we transition to larger project work later in the semester.
:::

# Course Components and Grading

Your grade in CSCI 205 will be determined by the following components:

| Component | Percentage | Description |
|-----------|------------|-------------|
| Course Readings (and Videos) | 15% | zyBooks participation and challenge activities |
| Jams + Assignments | 25% | Individual and pair programming exercises |
| Final Project | 20% | Team-based software development project |
| Progress Checks | 20% | Individual programming assessments (exam-lite) |
| Dev Diaries | 10% | Weekly learning reflections |
| Quizzes | 5% | In-class knowledge checks |
| Professionalism | 5% | Attendance, participation, and conduct |

## Grade Scale

| Grade Range | Description |
|-------------|-------------|
| A >= 93% | Exemplary. Superior achievement. |
| A- >= 90% | Outstanding |
| B+ >= 87%, B >= 83%, B- >= 80% | High Pass, Above Average |
| C+ >= 77%, C >= 73% | Pass, Average work, Satisfactory |
| C- >= 70% | Below Average |
| D >= 60% | Low Pass, Unsatisfactory, Barely passing |
| F < 60% | Failure, Unacceptable |

:::info
🔑 **Note on Grade Distribution**

This course involves substantial work throughout the semester. At the end of the semester, I reserve the right to rebalance the grade distribution among Readings, Jams, Assignments, Projects, and Quizzes. This adjustment will be made to ensure grades fairly reflect the effort and learning demonstrated across different course components.
:::

# Course Readings (and sometimes videos) (15%)

Your foundation in this course comes from engaging with various course materials, primarily through:

- zyBooks - our interactive textbook (primary resource)
- Supplementary videos and tutorials
- Additional readings provided via Moodle
- In-class materials and examples

## Required Textbook -

Registration Instructions:

1. Go to [learn.zybooks.com](https://learn.zybooks.com)
2. Create an account or sign in
3. Enter zyBook code: BUCKNELLCSCI205RomanoSpring2025
4. Subscribe

:::warning
🔑 **Important Notes**

- This textbook is **REQUIRED** and heavily used in the first half of the course
- Register ASAP to ensure access to course materials
- Subscription length options:
    - Through semester end (standard)
    - Extended access available for slightly higher cost

:::

## Additional Materials

All other necessary materials will be provided at no cost through:

- Moodle: Videos, tutorials, and supplementary readings
- Class Discord: Links to relevant resources
- In-class: Code examples and demonstrations

### Other Useful Reference Texts

1. "Clean Code: A Handbook of Agile Software Craftsmanship" (Martin, 2009)
2. "Essential Scrum: A Practical Guide" (Rubin, 2013)
3. "Head First Design Patterns, 2nd ed." (Freeman & Robson, 2020)

### Engagement Expectations

#### zyBooks Activities

- Participation Activities (PAs): Interactive elements that help you learn concepts
- Challenge Activities (CAs): Hands-on exercises to deepen understanding

#### Other Materials

- Watch assigned videos before related lectures
- Review supplementary readings as provided
- Study shared code examples and documentation

Your engagement with these materials directly impacts your success in:

- Understanding lecture content
- Completing lab activities
- Working on projects effectively

:::info
💡 **Success Tip:** Complete assigned materials before their associated lectures to get the most out of class discussions and activities.
:::

## Late Policy - Readings

No late readings or activities will be accepted. Complete all work before its due date.

# Jams + Assignments (25%)

## Java Jams

Java Jams are hands-on programming exercises designed to build your software development skills. These exercises are frequent in the first 2/3 of the course and overlap with zyBooks assignments.

:::info
🔑 **What are Java Jams?**

- Short, focused programming exercises
- Build fundamental Java and software engineering skills
- Can be completed individually or with a partner
- Prepare you for larger assignments and projects

:::

### Late / Missed Java Jams

To give you flexibility while encouraging timely submissions and communication, we use a token system
for late Java Jams. Here's how it works:

:::info
🔧 **Late Token System**

1. You start the semester with 9 late tokens. Use them wisely across all your jams!
2. Each token = 24-hour extension
3. For any single jam:
    - Use up to 5 tokens
    - Days 1-3: No grade penalty
    - Day 4: 10% penalty
    - Day 5: Additional 10% penalty (20% total)
4. Submit token request within 24 hours of due date
    - Estimate tokens needed (we'll adjust based on actual submission)
    - Example: Request 3, submit in 1 day = 1 token used
    - Example: Request 2, submit in 5 days = 5 tokens used + 20% penalty
5. Token use is "no questions asked"
6. Need more tokens? Let's talk!
7. Track your remaining tokens in the gradebook

:::

:::warning
🚧 **No Request Penalty**
Without a token request, late submissions incur 10% penalty per day (up to 5 days).
:::

**Summary Table:**

| Days Late |  With Request          | Without Request        |
|:---------:|:----------------------:|:---------------------:|
|     1     |  -1 token,   0%       | *-1 token,  10%*      |
|     2     |  -2 tokens,  0%       | *-2 tokens, 20%*      |
|     3     |  -3 tokens,  0%       | *-3 tokens, 30%*      |
|     4     | *-4 tokens, 10%*      | *-4 tokens, 40%*      |
|     5     | *-5 tokens, 20%*      | *-5 tokens, 50%*      |
|    6+     |   ***Not Accepted***  |   ***Not Accepted***  |

:::warning
🔑 **Submission Requirements**
Remember, the goal here is to help you manage your time and reduce stress, not to encourage procrastination. Use your tokens strategically, and don't hesitate to ask for help if you struggle to keep up.

Java Jams be submitted using specific systems. To complete your submission, you must follow all instructions precisely to ensure your work is properly recorded in those systems. Work that is not *correctly* submitted through this process will be considered not submitted at all, even if you have completed the assignment itself. We will provide detailed guidance on using this, so please pay close attention to those instructions when they are given.
:::

## Assignments

Assignments are your bridge between jams and the final project. After completing the first third of the course, you will become a formidable Java developer. Your next phase will be to complete a more open-ended, larger assignment. You will work together with ONE person throughout the assignment phase. The work is broken up into milestones depending on how the course progresses and the nature of the assignment chosen for the semester.

### Late / Missed Assignments

Assignment deadlines are strictly enforced:

- Up to 24 hours late: 10% penalty
- 24-48 hours late: 25% penalty
- Beyond 48 hours: Not accepted

:::warning
🔑 **Important:** Like jams, assignments must follow exact submission requirements to be considered complete.
:::

# Final Project (20%)

The final project is your opportunity to apply everything you've learned in a real-world development scenario. Key aspects include:

- **Duration:** 4-5 weeks
- **Methodology:** Agile/SCRUM development process
- **Team Structure:** 3-4 members (teams assigned by instructor)
- **Client Interaction:** Instructor or TA acts as product owner/client

## Project Selection

You'll choose your project from a curated set of open-ended problems that:

- Challenge your technical skills
- Require team collaboration
- Simulate real-world constraints
- Allow for creative solutions

## Project Requirements

Your team will:

- Follow Agile development practices
- Hold regular SCRUM meetings
- Meet with your "client" regularly
- Document your development process
- Present your final solution

:::warning
🔑 **Important Deadlines**
All project work must be submitted as instructed by the due dates on the course schedule. **There are no late exceptions for the final project.**
:::

:::info
💡 **Note:** Detailed project requirements, milestones, and evaluation criteria will be provided when the project phase begins.
:::

# Quizzes (5%)

Quizzes serve as quick knowledge checks to ensure you're keeping up with course concepts. They help you:

- Identify areas needing review
- Stay current with course material
- Prepare for progress checks

## Quiz Format

- **Frequency:** Random points throughout semester
- **Notification:** No advance announcement
- **Platform:** Moodle
- **Length:** 5-10 questions per quiz
- **Content:** Drawn from recent material
    - Lectures
    - Readings
    - Labs/Jams

## Quiz Types

Questions may include:

- Multiple choice
- Short answer
- Code analysis
- Concept application

## Make-up / Missed Quiz Policy

- No make-up quizzes are offered
- Missed quiz = 0 points
- Lowest quiz grade is dropped
    - Accounts for unavoidable absences
    - Provides buffer for unexpected situations

:::info
💡 **Success Tip:** Regular engagement with course materials is the best preparation for quizzes. Stay current with readings and participate in class discussions.
:::

# Progress Checks (20%)

Think of these as "exam-lite" - they share some formal aspects of traditional exams (quiet environment, no phones, individual work) but are designed to be lower-pressure opportunities to demonstrate your growing skills. You'll have two of these programming-based progress checks during the semester. These assessments help:

- Verify your individual coding abilities
- Ensure you're ready for more advanced concepts
- Build confidence in your growing skills

## Format

- **Number:** Two throughout semester
- **Platform:** Moodle
- **Setting:** Exam-like conditions
    - Quiet environment
    - No phones or external resources
    - Individual work only
- **Style:** Programming challenges
- **Focus:** Practical problem-solving

:::warning
🔑 **Academic Integrity**

- All code must be your own work
- Plagiarism detection software will be used
- Sharing code or solutions is strictly prohibited

:::

## Preparation

Best ways to prepare:

- Complete all Java Jams
- Practice writing code from scratch
- Review lecture materials and examples
- Work through zyBooks exercises
- Participate actively in class

## Make-up Policy

- Make-ups given only for documented emergencies
- Contact instructor immediately if you have a conflict
- Documentation required for approval

## Extended Time Accommodations

If you're authorized for extended time:

1. **Start of Semester:**
    - Notify instructor about accommodation
    - Ensure Dean's office letter is available

2. **Before Each Progress Check:**
    - Remind instructor at least 24 hours before
    - Confirm Moodle override is set up properly

:::warning
🔑 **Important:** It is YOUR responsibility to ensure accommodations are properly set up before each progress check.
:::

# Dev Diaries (10%)

Dev Diaries are your weekly reflection opportunity - a chance to process what you're learning and track your growth as a software developer.

## Purpose

These reflections help you:

- Document your learning journey
- Identify areas of growth and challenge
- Connect concepts across the course
- Build professional reflection habits

## Dev Diary Format

- **Frequency:** Weekly (usually Friday → Monday)
- **Platform:** Moodle
- **Length:** Brief but thoughtful
- **Style:** Informal, personal reflection

## Content Guidelines

Your entries might include:

- Key concepts you've learned
- Challenges you've encountered
- "Aha!" moments
- Questions you're pondering
- Connections you're making
- Goals for the coming week

## Grading Approach

Dev Diaries are graded on engagement, not content:

- Regular, timely submission
- Genuine reflection effort
- Personal insights
- Professional tone

:::info
💡 **Note:** These entries are private between you and me. While I may use general trends to adjust our course, individual reflections remain confidential.
:::

## Late Policy - Dev Diaries

Journals are due weekly on Monday (unless otherwise noted). You cannot make up missed entries, so stay consistent with your reflections.

:::warning
🔑 **Important:** Dev Diaries are about building a reflection habit. Regular, thoughtful entries will serve you well beyond this course.
:::

# Attendance and Professionalism (5%)

## Professionalism

In CSCI 205, we value mutual respect among students, TAs, and instructors. Your professionalism grade reflects your contribution to our learning community through attendance, participation, and conduct.

:::info
💡 **Your Choices Matter**

As an adult, you are responsible for your education at Bucknell. You need to weigh the consequences of all decisions that may affect your performance in this course. Make your choices accordingly.
:::

## Attendance Expectations

- Regular attendance is required for success
- Notify instructor via Discord before any absence
- Arrive on time and stay for full session
- Excessive absences or lateness will impact your grade

:::warning
🔑 **Lateness Policy**

- 3+ minutes late = minor professionalism deduction
- 20+ minutes late = significant deduction
- Consistent lateness will severely impact grade

:::

## Professional Conduct

### In-Class Behavior

- Engage actively with course material
- Show respect for peers and instructors
- Stay awake and alert
    - Sleeping in class = automatic 0 for professionalism
    - Snoring = negative professionalism points
    - No pillows or sleeping materials in class
- Use class time for CSCI 205 only
    - Working on other courses = removal from class
    - Missing learning opportunities impacts your success

### Technology Guidelines

1. **Computer/Tablet Use**
    - CSCI 205 coursework only
    - Prohibited during class:
        - Web surfing, social media, games
        - Chat programs, blogs
        - Work from other courses
        - Any non-course activities
    - Violations = immediate removal from class

2. **Mobile Devices**
    - Must be completely silenced (including vibrate)
    - No texting during class time
    - Emergency calls: step outside quietly
    - Persistent issues = device held by instructor until class ends

### Recording Policy

- Explicit permission required for:
    - Photos
    - Video recording
    - Audio recording

:::warning
🔑 **Important Notes**

- Professionalism grade has no lower limit
- Can go negative for repeated violations
- Impacts consideration for borderline grades

:::

:::info
🔑 **Impact on Your Grade**

A borderline grade is defined as within 0.5 points of a letter grade change. For example:

A student with an 86.6 (B) could earn a B+ through consistent demonstration of:

- Excellent attendance
- Active participation in discussions
- Helpfulness during group exercises
- Timely homework completion
- Staying awake and engaged
- No texting or distractions
- Up-to-date Dev Diaries
- Respect for instructor and peers

The power to earn this boost is entirely in your hands through your daily choices and conduct.
:::

# Individual vs. Team Programming

CSCI 205 balances individual learning with collaborative development. Here's how work is structured:

## Work Types

1. **Java Jams**
   - Initially individual work only
   - Later jams may allow pair programming
   - When pair programming is allowed:
       - Partner is optional
       - Must follow pair programming rules
       - All work done together if partnered

2. **Assignments**
   - MUST work with ONE partner
   - Pair programming required
   - No solo work allowed

3. **Final Project**
   - Teams of 3-4 members
   - Work divided by team/customer agreement
   - Pair programming encouraged within team

## Collaboration Rules

### Pair Programming Requirements

When working with a partner, you MUST:

- Work together at ONE computer OR use approved collaboration tools
- Keep screen visible to both partners
- Switch roles regularly:
    - Driver: Types code
    - Navigator: Reviews, plans, suggests
- Engage in true collaborative effort

### Collaboration Tools

You may choose your collaboration method:

- In-person: Traditional pair programming
- Virtual:
    - IntelliJ "Code With Me"
    - VS Code Live Share
    - Zoom for meetings
- Discord: Team communication

:::warning
🔑 **Critical Rules**

- NO splitting up work between partners
- ALL team members must work on ALL problems together
- Violation = ZERO grade for ALL team members

:::

:::info
💡 **Collaboration Tip:** Share effective partnership strategies on Discord to help others improve their collaborative experiences.
:::

# Academic Responsibility

Your success in CSCI 205 depends on maintaining high academic integrity standards.

:::danger
🚨 **Core Requirements**

A passing grade in this course requires ALL of the following:

- Individual work must be YOUR work only
- Team work must be YOUR TEAM'S work only
- Use only instructor-provided resources
- Report suspected violations

:::

## Prohibited Activities

The following are considered academic integrity violations:

- Copying code from any unauthorized source
- Using AI tools on individual assessments
- Sharing your code with other students
- Modifying copied code to hide its origin
- Working with non-team members on team assignments

:::danger
🚨 **Plagiarism Detection**

- All work is checked by advanced plagiarism detection software
- Detects:
    - Variable renaming
    - Code restructuring
    - Logic reordering
    - Other disguise attempts
- Has caught numerous violations
- All violations are reported to the Board of Review
- Guilty findings remain on your Bucknell record

:::

## When in Doubt

1. Assume it's not allowed
2. Ask the instructor or TA
3. Do NOT:
    - Consult online resources
    - Ask other students
    - Use external communication channels

:::warning
🔑 **Important:** If you're struggling, seek help from the instructor or TAs. Don't risk your academic career by cheating.
:::

# Bucknell University Honor Code

As a student and citizen of the Bucknell University community:

1. I will not lie, cheat, or steal in my academic endeavors.
2. I will forthrightly oppose each and every instance of academic dishonesty.
3. I will let my conscience guide my decision to communicate directly with any person or persons I believe to have been dishonest in academic work.
4. I will let my conscience guide my decision on reporting breaches of academic integrity to the appropriate faculty or deans.

**Failure to adhere to the Bucknell University Honor Code will result in immediate failure of the course.**

# AI Tools in CSCI 205

As future software engineers, you need to understand how to effectively use AI tools. However, remember: **AI tools are not replacements for human creativity, originality, and critical thinking.** They are supplements to your learning journey.

## Professional Context

- AI is transforming software development
- You'll be expected to use these tools in your career
- Now is the time to learn their proper place in your toolbox
- Understand their strengths AND limitations

## Allowed Uses

- Debugging assistance
- Code explanations
- Test case generation
- Learning support
- Project work (with attribution)

:::warning
🔑 **Critical Rule:** Never blindly copy code! You MUST understand everything these tools suggest.
:::

## Prohibited Uses

- Quizzes and Progress Checks
- Direct code copying without understanding
- Generating complete solutions
- Avoiding learning fundamentals
- Any use that replaces your own learning

## Attribution Requirements

- Comment your code with AI tool used
- Explain how you modified AI suggestions
- Document what you learned
- Include prompts if significant

## Best Practices

1. Use AI to enhance, not replace, your learning
2. Understand EVERY line of code you submit
3. Build fundamentals before relying on AI
4. Learn to write effective prompts
5. Gauge your own learning - be careful with overreliance

:::danger
🔑 **Important Notes**

- You will have NO access to AI tools during quizzes and progress checks
- These assessments will test YOUR programming and critical thinking skills
- This AI policy is specific to CSCI 205 - other courses may differ

:::

# Commitment to Diversity, Equity & Inclusion

The College of Engineering at Bucknell University steadfastly affirms our commitment to our students, staff, and faculty. Regardless of race, ethnicity, or nationality, gender, gender expression or sexual orientation, religion or belief system, economic status, or ability, you are a valued, respected, and essential member of our community. By virtue of joining this community, all members commit to welcome others in the same manner. We will not tolerate mistreatment or disrespect of persons for any reason by members of our community. The College of Engineering strives to offer a safe environment for learning, growth, inquiry, and the respectful sharing of ideas for all.

We have a moral and professional obligation to share the responsibility of always treating each other with respect and dignity, even when we disagree. However, we will not question or leave room for disagreement about the value of different human beings. Engineers investigate and solve problems, sometimes very challenging ones. An important method for such investigations and solutions is through the exploration of ideas in conjunction with the unquestioned support and value of persons. We can all engage in such processes when we feel and are comfortable and safe as members of a community.

Your suggestions to help the College meet this commitment are encouraged and appreciated. If something occurs in class that makes you feel uncomfortable, please talk to me about it. Other resources for you include your instructors, department chairs, and Associate Dean Terri Norton (<trn005@bucknell.edu>). Instead or additionally, you may file a bias incident report at <https://www.bucknell.edu/life-bucknell/health-wellness-safety/bias-incident-policy> . This report may be filed anonymously if you so choose. The College of Engineering commits to working alongside students expressing concerns and/or making reports to empower them in any follow-up actions and to ensure that they are protected from repercussions of any kind.

# Students with disabilities

Any student who may need an accommodation based on the impact of a disability, should contact the Office of Accessibility Resources (OAR) at 570-577-1188 or <OAR@bucknell.edu>. The office will help coordinate reasonable accommodations for those students with documented disabilities. Please visit <https://www.bucknell.edu/Accessibility> for more information about the OAR.

# Religious Holidays

Any student who may need accommodations due to a religious holiday should request such accommodation by the end of the second week of the semester.
