Close
Register
Close Window

Intro To Software Design

Chapter 0 Course Policies

Show Source |    | About   «  Chapter 0 Course Policies   ::   Contents   ::   1.1. Getting Started  »

0.1. Understanding this Course

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

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

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

0.1.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, posted the previous week

  • Wednesday: 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

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

0.1.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, 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 as you want within the deadline, 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 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 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.

0.1.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. The next week, Stage 2 will be to fill in the remainder of that starting point to flesh it out into a full solution.

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.

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

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

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

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.

0.1.11. Self-Check: Confirm Your Understanding

   «  Chapter 0 Course Policies   ::   Contents   ::   1.1. Getting Started  »

Close Window