Close
Register
Close Window

OpenDSA Stand-alone Modules

Chapter 0 modules

Show Source |    | About   «  0.298. Homework 8   ::   Contents   ::   0.300. Getting Started  »

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. Online and Face-to-face Sections

This course includes a mix of both online lecture and lab sections as well as in-person (face-to-face) lecture and lab sections. All sections share the same syllabus, course content, and assignments. However, be aware that the course website on Canvas and the course discussion areas involve students from all sections, so you will likely see questions or information for both groups. In specific assignments, if there is any difference in instructions between in-person vs. online sections, it will be clearly described–make sure to follow the instructions that apply to your section.

We strongly encourage students without any prior experience to choose in-person sections where possible. The online sections are more appropriate for students with significant prior programming experience.

5. 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

  • Tuesday: Program Assignment due, posted the previous week

  • Tuesday: New Program Assignment posted, due next week

  • Wednesday or Thursday: Lecture meeting

  • During one lecture meeting: In-Class Quiz approximately every other week

  • Thursday/Friday/Monday/Tuesday/Wednesday: Lab assignment due in your scheduled lab meeting

6. Reading Activities

Each week begins with a Reading Activity due Sunday night. This 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 an “Excellent” 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.

7. 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.

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, before the lab is due. 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 a you want within the deadline, and make corrections based on the feedback you receive. You will also have TAs present for your lab period to answer any questions you have or to help you resolve any errors you are running into. 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 yourself after lab to complete the assignment on your own time.

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. That is ok, but is not the expectation for students who have no prior experience. 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.

8. Programming Assignments

Programming assignments will be given almost every week, posted on Tuesdays and due the following Tuesday night. Programming assignments typically come in pairs: one week, your programming assignment will be to work on a brand new problem setting up your solution and making sure you have a solid starting point. The next week, your programming assignment will be to fill in the remainder of that starting point to flesh it out into a full solution.

This semester, we will cover a total of 12 programming assignments, arranged in 6 pairs. Each odd-numbered assignment will start a completely new problem with setting up your solution, and each even-numbered assignment will involve building the corresponding solution to a working final product. This means that the work necessary for the first assignment in each pair is an integral element of your solution for the second assignment of the pair the following week. So even if you fail to turn in the first part, you will still need to make up the work in order to successfully complete the second half. Please keep this in mind when planning how to approach the programs.

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 Canvas discussion area for that assignment 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.

9. 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 necessary user libraries necessary for assignments in this course, and lab or programming assignments will not compile without these.

10. Cheating and The Honor Code

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.

Honor code violations are unfortunately common in early computer science courses, and the Office of Academic Integrity has seen a significant rise in violations during the past year. It is important for all students to understand how serious these issues are. You must complete the following Canvas modules:

  1. Enroll in and earn the badge for the: Academic Integrity Success Module

  2. Attend: Understanding the Code (offered in-person, Graduate Life Center Auditorium from 7:30–8:30 p.m. on August 30, August 31, and September 1, or asynchronously on Canvas September 2-6.)

Remember that there are certain issues 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.

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.”

11. Self-Check: Confirm Your Understanding

   «  0.298. Homework 8   ::   Contents   ::   0.300. Getting Started  »

nsf
Close Window