.. This file is part of the OpenDSA eTextbook project. See
.. http://opendsa.org for more details.
.. Copyright (c) 2012-2026 by the OpenDSA Project Contributors.

.. avmetadata::
   :author: Stephen Edwards


Understanding this Course
=========================

Welcome to CS 1114! Learning to program is one of the most empowering,
creative, and deeply satisfying journeys you will ever undertake. At its
heart, computer science is not about memorizing mechanical rules or staring at
endless lines of cryptic text; it is about the thrill of creation. With nothing
more than logic and imagination, you will learn how to breathe life into abstract
ideas, construct intricate digital worlds, and build software that can solve
meaningful problems. Whether you have never written a single line of code or have
experimented with programming before, this course is designed as an open
invitation to experience the pure joy of bringing your own ideas to life.

As you step into this craft, remember that software design is an art of iterative
discovery. The excitement comes not just from the final working program, but from
the process itself: exploring possibilities, tackling intriguing puzzles, and
experiencing that unbeatable "aha!" moment when your code runs for the first time.
To help you make the most of this creative journey, let's explore how our course is
structured, how you will learn, and the policies designed to support your growth
every step of the way.


Read the Course Syllabus
------------------------

To get started, let's go through the course policies described in the course
syllabus on Canvas to make sure you understand how the course will run, what
your responsibilities are, how you will be graded, and how you should conduct
yourself in class.

Before continuing, please **read the course syllabus** posted on Canvas. This
chapter highlights the core workflows, grading mechanisms, and expectations
you need to succeed from day one.


Who Is This Class For?
----------------------

This course teaches introductory programming in Java, with a significant
emphasis on object-oriented software design and on software testing. In many
ways, it is comparable to the AP Computer Science A course offered at some
high schools. It is taken by students majoring in Computer Science, minoring
in Computer Science, and also by students in other majors across the university.

It can be very helpful if you have already had some exposure to programming.
Basic familiarity with variables and sequential logic will give you a leg up.
However, the course is designed to be approachable by beginners who do not
have any prior programming background.


Students of Many Experience Levels
----------------------------------

While this course is designed and intended for beginners, please be aware
that students from a very wide range of backgrounds take this course, including
some students who may have significant amounts of prior programming
experience. If you are a student with significant prior programming experience
who has taken the AP Computer Science A course and received a score of 4 or 5,
we strongly recommend you use your AP credit to enroll in CS 2114 instead.

For other students, just remember that while there are many reasons why students
who already know how to program might take this course, the course isn't intended
for that audience--they are overqualified. You may see such students in lab
or on Piazza, asking and answering questions that appear to require advanced
programming knowledge. The course staff are happy to answer such questions,
but please remember that we do not expect beginners in this course to possess
that level of knowledge or to perform as if they have already learned how to
program prior to taking this course.

Students with extra experience should not set your expectations about what
is normal or what course staff expect of the bulk of students in this course
who are learning to program for the first time.


Weekly Schedule
---------------

This course runs on a weekly rhythm, and learning the schedule will help
you develop a routine, anticipate deadlines, and stay on track. It is
extremely important to stay on schedule and turn your assignments in on time
every week. The single biggest reason for falling behind in this course is
not starting to work on assignments in advance, missing deadlines, and letting
work accumulate.

In particular, while the semester starts out with introductory topics, please
do not allow yourself to be lulled into believing you can cut corners on
readings or lab preparation. Regular, weekly engagement with the course content
and active practice on your programming skills are necessary to develop true
mastery of the concepts.

Throughout the week, pay attention to the following recurring activities:

* **Sunday (11:59 PM)**: Weekly Reading Activity due on Canvas (complete before your lab).
* **Before your Lab**: Complete the required online Pre-Lab Assessment on Canvas.
* **Monday / Wednesday** (or **Tuesday / Thursday**): Lecture meetings with active in-class problem solving and iClicker activities.
* **During your Scheduled Lab Period** (Thu/Fri/Mon/Tue/Wed): Attend your enrolled lab section, collaborate with your assigned partner, and submit your completed lab before the period ends.
* **Wednesday (11:59 PM)**: Program Assignment due (every other week).
* **Every Other Week**: Complete your 20-minute proctored Quiz in the Secure Computer-based Testing Facility during your scheduled testing window.
* **Within 2 Weeks of Program Deadlines**: Complete your required 5-minute in-person Grading Interview with a TA.


Attendance and In-Class Participation
-------------------------------------

You are expected to attend all lecture and lab meetings, and strive to arrive
promptly on time.

* **Lecture Meetings**: While traditional attendance is not taken at the door, lectures incorporate frequent interactive problem solving and peer discussions using the `iClicker Student Mobile or Web App <https://4help.vt.edu/sp?id=kb_article&sys_id=50fbbc7a47c73694b7f0f600436d43a3>`_. Graded in-class participation accounts for **90 points** of your final course grade and cannot be made up remotely. You must bring your laptop and iClicker-enabled mobile device to every lecture. A small cushion for unexpected absences (such as minor illness) is already factored into the participation grading model.
* **Lab Meetings**: Attendance in your officially enrolled lab section is **mandatory**. You must be physically present in the lab room to submit lab work. If an unavoidable illness or emergency prevents attendance, you must use a Lab Grace Pass to complete and submit the lab on your own time.
* **Final Examination**: The final exam date and time are set by the university. Only the Dean's office can grant permission to reschedule a final exam (e.g., in cases of direct exam conflicts or having 3+ exams in a 24-hour window).

**Note:** If you have an **evening lab session** that goes past 5pm and are also
taking a math or physical science course, you should immediately double-check with your
instructor in your math or science course to find out if they schedule
required, proctored exams or other obligations during your scheduled lab period later
in the semester. Out of class exams from other courses are **not an excuse to miss your
mandatory lab meeting time**. To avoid this situation, you can switch to a different section
of this course during the first week of classes to change your lab meeting time. Alternatively,
if you discover such a conflict later in the semester, you must work with your math or science
instructor to arrange an alternate time to take their exam.


Reading Activities
------------------

There is no physical paper textbook to purchase for this course. Instead, all
reading materials and interactive modules are presented through weekly online
Reading Activities on Canvas, which are due on **Sunday nights at 11:59 PM**.

* **Preparation for Labs and Quizzes**: In addition to Sunday deadlines, you should always complete the week's reading before your scheduled lab meeting to be prepared for the required pre-lab and to be prepared for the lab work itself. The concepts introduced in reading activities are also directly assessed on upcoming quizzes and programming assignments.
* **Unlimited Practice for Full Credit**: Reading activities contain interactive coding questions to help you practice. They also include supplementary syntax practice resources for those new to programming, as well as addiitonal exercises for self-study and exam preparation. You can repeat these exercises as many times as you like before the deadline until you earn full credit.
* **Strict Due Dates**: Reading activities must be completed by the posted deadline. **No late submissions are accepted on Reading Activities.** You can continue to review or complete all exercises (both graded and supplemental) for self-study purposes after the deadline (not for grade credit).


Lab Assignments
---------------

Each week includes a hands-on laboratory assignment designed to reinforce the
concepts you are learning. Labs are posted on Canvas at the start of the week,
and your work is submitted online and evaluated by the automated grader.

Key lab policies and workflows include:

* **Mandatory Pre-Lab Assessment**: Every lab includes a pre-lab assessment on Canvas covering the required background and instructions. You **must complete the pre-lab with 100% accuracy (no errors)** before your lab period starts. You may repeat the pre-lab as many times as needed, but you will not be allowed to begin the lab assignment until you have achieved a perfect score.
* **In-Person Attendance and Pair Collaboration**: You must attend your enrolled lab section in person. Each week, you will be paired with a lab partner to collaborate, discuss approaches, and troubleshoot code.
* **Punctuality**: You must arrive on time so that you and your partner can begin immediately. Students who arrive **more than 15 minutes late** will have their partner reassigned, will not be permitted to submit work during the lab period, and will need to complete the lab independently using a **Lab Grace Pass**.
* **Immediate Feedback & Resubmission**: You may submit your lab code to the autograder as many times as you like during your lab period to receive feedback, fix errors, and improve your score. Only your most recent submission is evaluated.
* **TAs as Coaches, Not Hand-Holders**: Lab TAs are available to answer conceptual questions and steer you past roadblocks. However, they expect you to have read the assignment and completed the pre-lab beforehand. If you arrive unprepared, you will struggle to complete the work in time.
* **Specifications Grading (EMRN)**: Labs are evaluated on the EMRN scale. Achieving a rating of **Meets Expectations (M)** earns full credit (9 points per lab, **126 points total** for 14 labs), while **Excellent (E)** earns 110% extra credit.
* **Check-Out Requirement**: You and your partner are working as a team. You **may not leave the lab early** until both you and your partner have completed all programming tasks, submitted your work, and officially checked out with a lab TA.
* **Individual Accountability & Lab Oral Interviews**: While you work in pairs during lab meetings, **all lab submissions are strictly individual work** and must be submitted under your own account. Every student is individually accountable for understanding every line of code they submit. Course staff may randomly call in any student for a brief **oral grading interview** on any lab assignment to assess their code comprehension, ability to trace execution, and design justification. Demonstrating satisfactory understanding of your submitted solution is required to confirm your mastery credit.
* **Lab Late Policy & Grace Passes**: Lab submissions close at the end of your scheduled lab period. Late work is not accepted without using a **Lab Grace Pass**. You begin the semester with **3 Lab Grace Passes**, each of which grants a **48-hour deadline extension** past the end of your scheduled lab meeting. Each lab assignment may only be extended once.


Program Assignments
-------------------

There are **6 major programming assignments** given throughout the semester,
posted every other week on Canvas and due on **Wednesday nights at 11:59 PM**.
Programming assignments require you to synthesize course concepts, design
object-oriented software solutions, and write comprehensive automated test suites.

* **Independent Work**: Program assignments are strictly individual work done outside of class. You must design, write, test, and debug your own code. You may not collaborate with other students or copy code from any source.
* **Submissions & Automated Feedback**: You submit your code electronically to Web-CAT, where it is evaluated against automated test suites for correctness, code style, and test coverage. You can submit as many times as you like prior to the deadline to review feedback and refine your code. Only your last submission is graded.
* **Specifications Grading (40 Points Each)**: Each programming assignment is worth **40 points** (total of **240 points** across 6 projects) and is evaluated on the EMRN scale. Earning an **M (Meets Expectations)** awards 100% (40 points), while an **E (Excellent)** awards 110% (44 points).


Mandatory In-Person Grading Interviews
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For every programming assignment, you must schedule and complete an **in-person
grading interview** with a course TA:

* **Format and Timing**: Grading interviews take approximately **5 minutes** and must be completed within **2 weeks** of the assignment's due date.
* **Purpose**: The interview assesses your genuine understanding of the code you turned in. You will be asked to explain how your code works, walk through specific algorithms, justify your design and data structure decisions, and explain your testing strategy.
* **Prerequisite for Grade**: **You cannot receive a grade for a programming assignment until you have completed your grading interview.** If you cannot explain or defend your code during the interview, it indicates that you did not do the underlying learning.


Program Grace Passes and Mastery Passes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To give you flexibility while upholding rigorous mastery benchmarks, program
assignments use two specific types of passes:

1. **Program Grace Passes (Deadline Extensions)**:
   - You begin the semester with **3 Program Grace Passes**.
   - A Grace Pass extends the submission deadline for a program assignment by **48 hours** past the original Wednesday due date.
   - Each program assignment's deadline can be extended at most once.
   - Late submissions are not accepted without a Grace Pass.

2. **Program Mastery Passes (Revisions for 'R' Grades)**:
   - You begin the semester with **3 Program Mastery Passes**.
   - If you receive a grade of **Revision Needed (R)** following your grading interview, you may use a Program Mastery Pass to reopen the assignment for **48 hours** to revise, fix, and resubmit your work.
   - Resubmitting via a Mastery Pass requires scheduling a **new grading interview** to evaluate your revised submission.
   - Program Mastery Passes must be used within **2 weeks** of the original assignment due date. Completing your initial grading interview early ensures you have sufficient time to use a Mastery Pass if needed.


Quizzes
-------

Rather than traditional high-stakes midterm exams, this course uses **7 shorter,
proctored quizzes** given approximately every other week. Each quiz is worth
**35 points** (for a total of **245 points** toward your course grade).

* **Secure Computer-Based Testing Facility**: To ensure testing integrity and flexibility, quizzes are administered out of class in a dedicated, secure computer-based testing facility on university-provided desktop computers.
* **Scheduling Your Quiz**: You will schedule your own testing appointment at the facility during the designated multi-day window for each quiz.
* **Testing Environment**: Quizzes are strictly **closed-book and closed-notes**. No personal laptops, phones, smartwatches, or outside materials are permitted in the testing facility. (If the testing facility is unavailable for a specific quiz, it will be administered in class using LockDown Browser with advance notice.)
* **Quiz Mastery Passes (Retakes)**:
  - Students begin the semester with **3 Quiz Mastery Passes**.
  - If you miss a quiz or score lower than you hoped, you can use a Quiz Mastery Pass to schedule **one retake** of that quiz in the testing facility during the week after quiz results are released.
  - Each individual quiz can be retaken at most once.


Programming Language and Environment
------------------------------------

This course teaches object-oriented programming using **Java**.

* **BlueJ Development Environment**: We will use the **BlueJ IDE** for code development, interactive object visualization, and lecture examples.
* **Download Directly from Canvas**: Please install BlueJ using the installer link provided on the course Canvas homepage rather than downloading from the generic BlueJ website. The Canvas installer includes specialized support libraries and testing tools pre-configured for CS 1114.
* **Web-CAT & CodeWorkout**: Automated grading and code feedback are provided through Web-CAT (for lab and program assignments) and CodeWorkout (for interactive practice exercises).


Understanding Specifications Grading (The EMRN Rubric)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For lab and programming assignments, we use **specifications grading**. Instead
of arbitrary point deductions for minor errors, your submissions are evaluated
against clear, binary criteria that define what proficient work looks like.

Assignments receive one of four categorical ratings:

.. list-table:: The EMRN Evaluation Scale
   :widths: 20 50 30
   :header-rows: 1

   * - Rating
     - Standard & Meaning
     - Point Award
   * - **(E) Excellent**
     - Exceeds expectations with no nontrivial errors and exemplary design/testing.
     - **110% of points** (Extra credit!)
   * - **(M) Meets Expectations**
     - Clearly demonstrates intended mastery of all learning objectives with no significant gaps.
     - **100% of points** (Full credit)
   * - **(R) Revision Needed**
     - Demonstrates partial understanding, but contains gaps or errors requiring revision.
     - **10% of points** (until revised)
   * - **(N) Not Assessable**
     - Fragmentary, uncompilable, or insufficient evidence of concept understanding.
     - **0% of points**

In specifications grading, **M is the benchmark for mastery**. Earning an M demonstrates that you have learned the material and awards 100% credit. Earning an E recognizes exemplary work with bonus points. An R indicates that you are on the right track but need to revise your work using a Mastery Pass to reach full credit.


Summary of the Course Passes System
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To support student well-being and allow opportunities to learn from mistakes,
every student begins the semester with a personal allocation of **12 specialized
passes** divided into four distinct categories:

* **3 Lab Grace Passes**: Grants a 48-hour extension on any single lab deadline.
* **3 Program Grace Passes**: Grants a 48-hour extension on any single programming assignment deadline.
* **3 Program Mastery Passes**: Reopens a programming assignment graded 'R' for 48 hours to revise, resubmit, and complete a new grading interview (usable within 2 weeks of the due date).
* **3 Quiz Mastery Passes**: Grants one retake for any missed or low-scoring quiz in the testing facility (usable within 1 week of results release).

Passes are managed through Canvas and are designed for you to use whenever life
circumstances or learning hurdles arise. Use them strategically!


Cheating and The Virginia Tech Honor Code
-----------------------------------------

.. topic:: Excerpt from Honor System Policy

    Academic misconduct is a corrosive force in the academic life of a university, jeopardizing the quality of education and depreciating the genuine achievements of others. Actively deterring academic misconduct is, without reservation, the responsibility of all members of the Virginia Tech community. Apathy or acquiescence in the presence of academic misconduct is not a neutral act – failure to confront and deter such behavior will reinforce, perpetuate, and enlarge the scope of such misconduct.

    [...]

    Virginia Tech students are expected to uphold and to encourage other students to abide by the Honor Code. A primary responsibility of Virginia Tech students is to refrain from any form of violation of the Honor Code.

.. topic:: The Undergraduate Honor Code Pledge

    "As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do."

Academic integrity is taken extremely seriously at Virginia Tech. All submitted
coursework in CS 1114 is considered graded work covered by the Honor Code. All
program assignments, reading exercises, pre-labs, and quizzes must be completed
individually.


Academic Integrity Module
~~~~~~~~~~~~~~~~~~~~~~~~~

All students must complete the following Canvas module during the first week of class:

* Enroll in and earn the badge for the: `Academic Integrity Success Module <https://canvas.vt.edu/enroll/JWMLRC>`_


Collaboration Boundaries: What Is and Is Not Permitted
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To foster learning while maintaining integrity, clear boundaries exist regarding
collaboration:

**Permitted Collaboration**:

* You may freely discuss general Java syntax, language features, and library methods with peers.
* You may discuss what compiler or runtime error messages mean in general terms.
* You may discuss the conceptual meaning of assignment instructions.
* During **scheduled in-person lab meetings only**, you may collaborate directly with your assigned partner and assist peers in your section with debugging.

**Prohibited Actions (Honor Code Violations)**:

* You **may not give or receive assistance from others** on your program code or graded work outside of your scheduled lab section.
* When writing code, you **must work alone while typing at the keyboard and viewing your screen**. Showing your code to others or looking at another student's code is a direct violation.
* You may not seek or receive help from unauthorized external sources, including online tutoring websites (e.g., Chegg, CourseHero, GroupMe) or generative AI tools for code generation/debugging.
* You may not copy code from any source.
* **No Resubmission of Prior Semester Work**: If you are repeating CS 1114, you **may not resubmit work from a previous semester**. All assignments must be written from scratch to develop current skills.


Automated Analysis and Sanctions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

All electronic submissions are archived and analyzed with automated plagiarism
detection and generative AI detection tools.

If an academic integrity violation occurs, course policy is to recommend the
**F* sanction** as the final course grade. The ``F*`` notation appears on your
transcript as *"FAILURE DUE TO ACADEMIC HONOR CODE VIOLATION"*. An F in CS 1114
prevents you from taking subsequent CS courses until successfully repeated and
may significantly impact change-of-major applications and graduation timelines.


AI and Long-Term Learning
-------------------------

Generative AI tools like ChatGPT, Microsoft Copilot, Gemini, Claude, Github
Copilot, and any many others, are extremely common and their use is becoming
a regular occurrence for many. In this class, we want to make sure you
understand when and how we expect you to use generative AI.

Your goal in CS 1114 is not simply to produce working code, but to develop the
ability to analyze problems, design solutions, and debug software independently.
Generative AI tools (such as ChatGPT, Claude, Gemini, Copilot, and Hokie AI)
make it easy to generate correct-looking code without engaging in the underlying
reasoning. This is known as **cognitive offloading**--handing off the mental
work that builds your own problem-solving capacity, intuition, and technical skill.

If you cannot independently explain, reproduce, and defend your code during your
**in-person TA grading interviews**, you have not done the learning. Future
computer science courses, technical interviews, and your professional career
depend entirely on your foundational ability to reason through code independently.

At the same time, there are two very powerful things you can use generative AI for
that you should really consider: studying and becoming a better student.
On the studying side, there is a lot of benefit to studying in a group with
other students, asking each other questions by referring to your notes or
the reading assignments, and helping each other understand the material. Turning
studying, particularly if you are reviewing before a quiz or a test, into a
social activity is a powerful technique. But there is also a lot of potential
to use generative AI prompts to create self-study quizzes for you (and your
study group) to check your own knowledge on concepts we are teaching.
Occasionally during this course, we will suggest possible prompts you can
use in this way, whether it is about creating self-test questions you can
use to study, or creating flash cards, or trying to identify possible
misconceptions you might have, or whatever.

Second, generative AI tools can big help in learning how to be a better student.
Whether you want an AI-generated work schedule for how to regularly spend
time on all your assignments, or AI coaching on better note taking skills, or
AI advice on how to prioritize work across different classes so you know
what to focus on while also knowing how you'll complete many assignments all
by their deadlines without crushing yourself, there are many practical ways
you can use generative AI. Again, we will occasionally look at some of these
ways throughout the course.


Video: What Everyone Gets Wrong About AI and Learning
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. raw:: html

   <div class="align-center" style="margin-top:1em;">
   <iframe width="560" height="315" src="https://www.youtube.com/embed/0xS68sl2D70?si=gDL5Nsv1vfvyRpye" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
   </div>


AI Use Policy: Learning Support Only
------------------------------------

Students may use university-approved generative AI tools solely as a **conceptual
learning aid**.
For the purposes of this course, you should consider **generative AI tools**
just as if they were "other people" outside the classroom, or even
"fellow students". As stated in the syllabus, you may freely offer and
receive verbal assistance with your classmates on many topics, including:
how to use the programming language, what library classes or methods do,
what errors mean, or how to interpret assignment instructions. These same rules
apply to generative AI tools--you can ask questions or consult generative
AI resources for any of these purposes, just like you can your peers.

However, treating generative AI tools is the same way as other people
with respect to the Honor Code means that, as with fellow students,
you may not **use them to receive help** while working on your program code
or any graded assignments. You may not **show your code to others** or
**view code written by others**, including generative AI tools, when working
on assignments to turn in for this course. In the same
way, you cannot **copy code** from them (or another person) for any graded
work.


.. list-table:: Acceptable vs. Prohibited AI Uses in CS 1114
   :widths: 50 50
   :header-rows: 1

   * - Permitted (Learning Support)
     - Prohibited (Honor Code Violations)
   * - Asking high-level conceptual questions (*"Explain the difference between a class and an object."*)
     - Asking AI to generate code, methods, classes, or solutions for any assignment.
   * - Requesting general explanations of programming topics or library classes.
     - Submitting your assignment code to an AI tool for review, correction, or debugging.
   * - Asking for generic debugging hints (*"What common conditions cause a NullPointerException in Java?"*)
     - Copying AI-generated code or text into your assignment submissions.
   * - Brainstorming study questions or generating practice self-quizzes to test your knowledge.
     - Using AI to answer reading quizzes, pre-labs, or lab deliverables.

**Student Responsibility**: You are responsible for the factual and logical
accuracy of any AI-assisted explanation you consult. If you are ever unsure
whether a particular use of AI complies with course policy, consult your
instructor before proceeding.


Why Over-Reliance on AI Undercuts Your Future
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Relying on generative AI to solve programming problems can significantly
undermine your development of critical skills and negatively affect your
performance in internship interviews--especially as a college student still
building foundational knowledge.

**Loss of Critical Thinking and Problem-Solving Skills**

- Research shows that heavy dependence on AI tools for programming tasks leads to "cognitive offloading," where you let the AI do the thinking for you. This reduces your engagement in analytical tasks and weakens your ability to think critically and solve problems independently.
- Beginners who frequently use AI for code generation and debugging struggle to develop the foundational skills needed to solve similar problems on their own. This means you might be able to complete assignments with AI help, but when faced with a new or slightly different challenge, you may not know where to start or how to solve the new problem.

**Shallow Learning and Poor Skill Retention**

- When you let AI do the work, you miss out on the iterative process of making mistakes, debugging, and learning from them. This process is essential for deep understanding and long-term retention of programming concepts.
- Studies show that using AI for direct solutions, rather than as a tool for explanations or feedback, leads to weaker problem-solving skills and poorer performance on independent tasks.

**Increased Frustration for Beginners**

- For students new to programming, relying on AI can actually increase frustration. If you haven't built up confidence and understanding through hands-on practice, you may feel lost when the AI's output doesn't work as expected or when you're asked to explain your code.


Negative Impact on Internship Interview Experiences
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In short, companies hiring interns (or full-time employees) already have
access to all the AI resources they need. They don't need new employees
who can only feed problems into AI systems. It is imperative that you
build your foundational skills so that you can read and write code fluently
before you can use AI tools effectively on coding tasks.

**Inability to Solve Problems Without AI**:
Many technical interviews, especially for internships, still require you to solve problems on a whiteboard or in a live coding environment--without access to AI tools. If you've relied on AI up to this point, you may freeze or struggle to solve even basic problems independently.

**Difficulty Explaining Your Thought Process**:
Interviewers often ask you to explain your reasoning, discuss trade-offs, and walk through your solution step by step. If you haven't practiced solving problems yourself, you'll find it hard to articulate your approach or debug under pressure.

**Suspicion from Recruiters**:
As AI-generated solutions become more common, recruiters are increasingly wary of candidates who submit "too perfect" code or can't explain their solutions in detail. Some companies are implementing AI-detection tools or shifting to interview formats that require real-time problem-solving and explanation.

**Changing Interview Expectations**:
While the industry is evolving--some companies are moving toward project-based assessments, live coding with explanation, or system design interviews--the expectation remains that you can reason through problems and communicate your approach, not just produce code.

The bottom line is that generative AI is a powerful tool, but if you rely on
it to do the hard work for you, you risk missing out on the critical thinking,
problem-solving, and communication skills that employers value--and that you'll
need to master in order to succeed in interviews and on the job. The impact goes
far beyond this course, and that is the reason for the course policy regarding
generative AI use.


Video: AI is Destroying Basic Human Skills
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. raw:: html

   <div class="align-center" style="margin-top:1em;">
   <iframe width="560" height="315" src="https://www.youtube.com/embed/XTkxckAG01o?si=U8o-zQCl4WYsO4-w" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
   </div>


