Understanding this Course¶
1. Read the Course Syllabus¶
Welcome to CS 1114!
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.
2. 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 thinking about studying Computer Science.
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 significant programming background.
3. 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 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 the course discussions, asking and answering questions that appear to require significantly more programming knowledge. The course staff are happy to answer such questions, but please remember that we do not expect students 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 do not already know how to program.
4. Weekly Schedule¶
This course runs on a weekly schedule, and learning the schedule will help you develop a routine, anticipate deadlines, and stay on track and in sync with the whole class. It is extremely important to stay on schedule and turn your assignments in. The single biggest reason for failing to receive the grade you want in this course is falling behind on assignments, then missing deadlines or turning in incomplete work. Use the course structure to stay on track, so you are adequately prepared for each new topic covered in the course.
In particular, while the semester starts out with easier topics, please do not allow yourself to be lulled into believing you can be more lax with reading or preparing for labs and that you will still be able to get it done at the last minute. This course has a way of sneaking up on the unsuspecting who cut corners during the first half of the semester and expect the same level of difficulty throughout. Regular, weekly engagement with the course content and regular, weekly practice on your programming skills is necessary to develop mastery of the concepts and skills taught in this course.
Throughout the week, pay attention to the following recurring weekly activities:
Sunday: Reading Activity due, to prepare for the week’s lectures
Monday: Lab Assignment for the week posted, get started early
Monday or Tuesday: Lecture meeting
Wednesday: Program Assignment due
Wednesday or Thursday: Lecture meeting
Thursday: New Program Assignment posted
During one lecture meeting: In-Class Quiz approximately every other week
Thursday/Friday/Monday/Tuesday/Wednesday: Lab assignment due in your scheduled lab meeting
5. Reading Activities¶
Each week begins with a Reading Activity due Sunday night. Despite the due date, however, you should complete the Reading Activity before your lab meeting so that you have covered the background needed for your lab assignment.
Each reading activity includes embedded exercises to check your understanding and to allow you to practice what you are learning. All exercises in a given activity must be successfully answered to receive the maximum grade for that activity. The course uses a “flipped classroom” model, so do not expect the reading material to be duplicated in a traditional lecture style in class–it is your responsibility to read the material and exercises so you are ready for the problem solving activities conducted in class sessions.
6. Labs¶
Each week also includes a lab assignment that is posted at the beginning of the week, typically on Monday. Lab assignments are posted early so that you can read them ahead of time, ask questions if you are unclear on any of the behaviors or tasks described in the lab, and review any concepts or skills needed for the lab that you feel unsure about. Further, posting the labs early allows you to try your hand at starting out the lab on your own. We encourage you to start the lab and get a far a you can before you go to lab.
Remember to be prompt to your lab meeting. Each week you will have a different lab partner to work with. You must arrive on time so that you and your partner can start together. If you are more than 15 minutes late to lab, your partner will have been assigned to someone else and you will no longer be eligible to work with them, or to receive credit for the lab assignment during your lab period. Instead, you will need to complete the work on your own and use a Free Pass to submit it afterward. Also, remember that you and your lab partner are working together, so you may not leave the lab period until both you and your partner are finished with all the work including the post-lab quiz, or the lab period ends.
Note that lab meetings will not start until Thursday the first week. The first lab sections to work on a given lab assignment will be on Thursdays, with the same lab assignment being completed by following lab sections on Fridays, Mondays, Tuesdays, and Wednesdays. This allows all students to go to both class lecture meetings during the week the lab is posted (and also complete the week’s Reading Activity), before their lab period. This also means lab meetings will continue through the last Wednesday of classes.
You will not be able to submit your lab for a grade or any feedback until the start of your lab period. You can submit your lab as many times as you want within the period and make corrections based on the feedback you received. You will also have TAs present for your lab period to answer any questions you have or to help you resolve any errors you encounter. However, please be aware that your TAs expect you to be prepared and to do the work. If you have not read the instructions or figured out how to get started before coming to your lab period, do not expect them to hold your hand. They are a resource to help steer when you run into problems, but they are a shared resource used by all the students in your section rather than a personal trainer. If you are completely unprepared, expect that you will be unable to finish lab on time and will have to work on your own after lab to complete the assignment on your own time, using a Free Pass to turn it in late.
You may also find that some students in the course who have prior programming experience are able to complete lab assignments on their own before arriving to their lab meeting, and from time to time, you may have one of them as your lab partner. However, be aware that it is not our expectation that students can complete lab assignments ahead of time. While some students with prior programming experience may be able to do this, for those of you who are new to programming, the expectation is that you will need to go to your lab meeting, work with your partner, and ask the TAs any questions you run into in order to complete the lab assignment. Remember that labs are intended as practice activities to reinforce the concepts you are learning, and it is natural and expected that you may regularly run into situations where you wish to ask TAs for clarification or assistance on something you have not seen before. That is what your lab period is for, and why every lab period is staffed with TAs to answer your questions, so do make use of them during that time as you learn.
7. Programming Assignments¶
Programming assignments will be given every other week, posted on Wednesdays and due Wednesday night two weeks later. Each programming assignment includes two stages, and the expectation is that you will complete and start turning in your first stage by one week after the assignment is posted, and finish the second stage by the due date a week after that. The purpose of these stages is to encourage students to start their work early enough that they will be sure to understand the details of the assignment and have time to go to office hours to ask any questions they have, particularly when they run into unexpected difficulties. Stage 1 of the assignment will get you started on setting up your solution, ensuring all of the names and features are correctly arranged, and making sure you have a solid starting point. Turning in Stage 1 on time (a week before the due date) is worth 10% of the credit on the assignment. The next week, Stage 2 will be to fill in the remainder of that starting point to flesh it out into a full solution for the remaining 90% of the grade.
We recommend that students schedule in fixed periods of programming time to work on programming assignments each week. The best time may be between the end of your lab meeting and the following Monday. Or, even better, plan one hour each night, every night, to work on your programming assignments. Complete as much of your assignment as you are able by each Monday so that you can ask any questions you run into on the online discussion forum or during TA office hours. It is not uncommon for students who start late and plan to do each program assignment the night it is due to run into unexpected situations, and then have no time to ask questions or get assistance before the program assignment is due, so plan ahead so you build in regular time periods to work on programming.
Also, remember that once the due date and time passes, work is no longer accepted. Turning a program assignment in late will require waiting until after grades are returned and the assignment becomes available for a Free Pass.
8. Programming Language and Environment¶
This course teaches programming using Java. We will use the BlueJ IDE
for code development in class, including all examples shown in lecture.
See the “Install BlueJ” link on the course home page for installation
instructions–please be sure to download and install directly from Canvas
instead of going to the bluej.org website. The version on Canvas includes
the user libraries necessary for assignments in this course,
and lab or programming assignments will not compile without these.
9. Free Passes Instead of Traditional Late Policy¶
In this course, assignments do not remain open past the due date for you to submit “late”. That also means there are no late penalties. Instead, we are using a different approach to handle situations where you are unable to complete specific assignments by the due date.
Learning from mistakes is an important part of mastering any skill, especially for novices. To enable this, you are allowed (and encouraged!) to revise and resubmit your work on all assignments to demonstrate improved mastery, even after you receive a grade on the work. For all reading assignments, labs, and program assignments, you will receive electronic feedback as you work so that you can revise and resubmit your work as many times as needed before the due date. In addition, each student will begin the semester with 6 free passes that can be used to resubmit revised work after the due date. You can also use a free pass to submit work late if you are not finished by the due date.
Free passes are used according to the following constraints:
All work is due on the date specified for the assignment here on Canvas, and no late work will be accepted without the use of a free pass.
Free passes can be used on any reading assignment, lab assignment, program assignment, or quiz.
Students may use a maximum of one free pass per week (one assignment per week).
Assignments are not eligible to be resubmitted using a free pass until feedback has been released.
Past assignments will be available for free pass redemption on weekly cycles. Assignments will by available for 3 weekly cycles after feedback has been released, and resubmission attempts for assignments can only be made during those 3 weeks (except for quizzes, which are available for one resubmission in 1 weekly cycle only). No resubmission is available after the last day of class meetings at the end of the semester.
Employing a free pass allows you to “re-open” a reading, lab, or programming assignment to make repeated submissions and receive automated feedback for an additional 24 hours on the day you pick within the weekly resubmission cycle. For quizzes, a free pass allows a student to re-take the quiz at a designated time on the Friday in that weekly resubmission cycle.
If you use all your free passes but find you need another one, you may use the free pass form to explain your situation and request an additional free pass.
Free passes work like this: Each week, specific assignments will be available for that week’s resubmission cycle, which will take place on Friday, Saturday, and Sunday. Assignments are available for three cycles after feedback is returned, while quizzes are available for only one cycle.
If you wish to use a free pass, an online form will be available on Canvas each week starting on Monday where you can indicate which assignment you wish to re-open, and which day (Friday or Saturday or Sunday) during that cycle you wish to re-open the assignment on. Just fill out the form between Monday-Thursday. You can use a free pass for any reason you want, and you do not need to explain why you are using a free pass–they are yours to use when you need to based on your own situation, so feel free to employ them whenever you need them. Once you’ve filled out the form, just work on the assignment and resubmit your work (as many times as needed) during the day you selected.
Quizzes are slightly different than other assignments, since they are in-class activities. For all three Monday/Wednesday lectures, students in those sections will go to their regular classroom at their regular meeting time on Friday to use their free pass on the quiz available that week. For students who go to Tuesday/Thursday lectures, you will select one of the three Mon/Wed lecture meeting times to attend on Friday. Remember that quizzes will only be open for one resubmission cycle, so quizzes can only be re-taken (or taken late) one time.
Since there are a limited number of weeks in the term, it is important that you stay on top of your work as much as possible. Our resubmission policy is designed such that you should only be using free passes rarely instead of regularly. It is imperative for you to complete as much of each assignment, preferably all of it, by its due date where possible. This will allow you to receive feedback before resubmitting.
At the end of the semester, if you still have any unused free passes, they will each count for 1 point of extra credit in calculating your grade.
10. Cheating and The Honor Code¶
Honor code violations are unfortunately common in early computer science courses, and the Office of Undergraduate Academic Integrity has seen a significant rise in violations recently. It is important for all students to understand how serious these issues are. You must complete the following Canvas module:
Enroll in and earn the badge for the: Academic Integrity Success Module
Remember that there are some topics you can freely discuss with each other in order to learn. In this course, you may freely offer and receive verbal assistance with your classmates on the following topics:
how to use the programming language
what library classes or methods do
what errors mean
how to interpret assignment instructions
In addition, during face-to-face lab periods you are welcome to help your partner(s) or other students debug or troubleshoot their own code, and are free to seek assistance from your partner(s) or other students with your own coding issues on the lab assignment. However, this only applies to working on the lab assignment during your assigned lab period, not to other work.
However, at all other times and on all other assignments, you may not give or receive help from others while working on your program code or any graded assignments. When writing program code for any class assignment, you must work alone while typing at the keyboard, or while viewing your source code on the screen. Yes, that means showing your assignment code or work to other students is an Honor Code violation, as is reading or looking at code or work written by fellow students.
Further, note that if you have taken CS 1114 in a previous semester, you may not submit your work from a previous semester and must redo work from scratch. Resubmitting work from an earlier semester does not demonstrate your current level of understanding or ability, and does not reflect whether your skills have degraded. Instead, repeating the work is important for increasing your skills so that you can successfully complete the course this time.
Also, please remember that when any students are reported for cheating on any assignment in this course, we recommend they receive the F* sanction, a grade that indicates on your transcript the F is the result of an Honor Code violation. Further, students with an F in CS 1114 are required to repeat and successfully complete the course before they can take subsequent CS courses, which can negatively impact your planned timeline for graduation. For students in General Engineering, it can also reduce your competitiveness when applying to change your major.
11. Using Generative AI Tools¶
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.
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.
In fact, 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.
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.
11.1. Over-Reliance on AI Undercuts Learning¶
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.
11.2. 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.
12. Self-Check: Confirm Your Understanding¶
To check your understanding of the Honor Code policy in this course, return to Canvas and take the Honor System quiz provided there. You can repeat the quiz as many times as needed, but need to achieve 100% before you can begin other work in this course.
