Syllabus

Course Description

Computer Science 142 is focused on learning the "nuts and bolts" of programming. The goals of CS 142 are to learn the basic techniques of object-oriented analysis and design as they apply to computer programming, to become acquainted with the Java programming language, and to become equipped to write programs that solve problems. We will focus primarily on the following general topics:

  • Object-oriented program design and development.
  • Programming tools and the Java programming language.
  • Principles of algorithm formulation and implementation.

The lab assignments provide practical experience in developing object-oriented solutions and writing programs using an object-oriented approach.

CS 142 is designed for students who intend to major in Computer Science or in areas with a strong emphasis on computer programming. The course is a challenging one and demands self-discipline and hard work to succeed.

Course Work

Course work in CS 142 will consist mainly of completing lab assignments and exams; both will consist of designing, implementing, and testing Java programs to solve given problems. Lab assignments are designed to help students apply the programming concepts that are learned through attending lecture and reading the course text; help sessions, taught by the Teaching Assistants, are designed to help students complete their assignments. Exams are designed to test students' mastery of the programming concepts.

Teaching Assistants

Several teaching assistants (TAs) are available to help students complete assignments. They are dedicated to helping each student succeed, as this course is challenging for most students. They are willing to give substantial individual attention. However, we want everyone to succeed, so students need to be respectful of TA time.

The role of the TA in the learning process is to teach students (as needed) how to complete assignments. Their role is NOT to do the assignments for the students. They will help clarify concepts, guide thoughts, and help debug code, but will not write the code for the students. The general rule is that TAs do not touch the keyboard. Students need to understand the concepts of the assignments, not just how to finish them. Otherwise, they will be very unhappy during exams when the TAs are removed from the equation.

To receive help from a TA, students need to request help via the help request program.

Students on the help/passoff list are helped in a first come, first served order with students requesting passoff given priority over students requesting help and a slight preference given to students working on the current lab.

Note: Students not on the help/passoff list at least 15 minutes prior to TAs leaving for the day will generally not be considered for help/passoff on that day.

Teaching Assistants are also responsibile for grading assignments. All lab assignments and exams will be graded by the TAs. If a student has a question/concern about his/her grade, the student first needs to talk to the TA that graded the assignment, then an Assistant Head TA, and finally to the Head TA. At that point, if there are unresolved issues, the Head TA will refer the student to the professor. Students SHOULD NOT talk to the professor first about grades. The professor cares deeply about each student's success. However, with large classes, the professor cannot be involved with every individual lab assignment. Therefore, most administration duties are left to the TAs. Treated with respect, the TAs will be more than willing to help.

If you wish to speak with a TA, check the TA page for contact information and a schedule of when he/she is working in the lab.

Development Environments

There are many different Integrated Development Environments (IDEs) that can be used to write Java programs. In this course, we strongly encourage the use of Eclipse. The professor and TAs will use this program when teaching. If you are having trouble using Eclipse, please look at the tutorials found on the course website. If the problem persists, a TA can help you resolve the issue.

If you choose to use an IDE other than Eclipse, TAs will still help you with your programming questions, but they will not be able to assist you with the problems related to the use of that IDE. IDEs are many and varied. It would be impossible for the TAs to familiarize themselves with all of them. For this reason we provide support only for problems you have using Eclipse.

The use of any GUI builder utilities is strictly prohibited. These types of programs do not allow students to gain experience with some of the more basic parts of GUIs which is one of the goals of this course.

Lab Assignments

Introduction

There will be 11 lab assignments (as well as a lab orientation) for students to complete throughout the course (see the course schedule for due dates). Lab assignments consist of designing solutions and writing Java code to solve problems. Each assignment is divided into different parts. Solutions must fulfill all requirements for a specific part to receive any credit for that part. Students may pass off one or more parts of a lab to receive credit. Students may also pass off a lab multiple times as you complete different parts

CS Computer Labs

Students are encouraged to use the computers in room 1121 of the Talmage building to complete their assignments, as the TAs will be found in these rooms. However, CS students may use any of the open CS labs in the TMCB to complete their work. CS student accounts will work on both Windows and Linux machines. Students are welcome to use their own computers for completing assignments, provided they are willing to assume the risks associated with computers that the Department does not maintain. Back-up copies of files should be made regularly. Independent of what computers students choose to use, all passoffs take place only in the primary labs.

Course Text Reading/Help Sessions

Students are encouraged to read the text material before attending lectures and help sessions so that they are familiar with the concepts that will be discussed. Although reading is not mandatory for this class, most students will not succeed without carefully reading all the necessary text material. A schedule of reading corresponding to the lecture schedule can be found on the course schedule.

Help Sessions (see TA schedule) are designed to help students with specific lab assignments. These sessions complement lectures in that they emphasize specific principles needed for lab assignments, whereas lectures are more general.

All help sessions will be taught in 1066 TMCB. They are not required for credit. However, students are encouraged to attend at least one help session per lab (students may attend as many as desired). For the average student these help sessions save hours of time if the student goes prepared (by being current in the reading and reading the lab assignment ahead of time) and ASKS QUESTIONS.

In order to maximize the effectiveness of TA hours, students are required to attend at least one help session for a lab assignment to recieve help from a TA on that assignment. Because all students complete the same lab assignments, multiple students often have the same questions; these sessions help save the TAs and students a lot of time. Thus, if you know you cannot attend any of the help sessions, you may want to take this course another term or semester.

Although reading and help sessions are not required to receive credit for the course, you should do both of these things before asking for individual TA help. Many questions will be answered through these two media. Once you have completed the reading and attended a help session for a given lab assignment, then the TAs will be more inclined to assist you with individual questions.

Familiarity with the course text is particularly helpful during exams which, typically, are open-book, but closed-TA.

Completing Lab Assignments

Each lab assignment will be passed-off with a TA in a lab. Students will use the help/passoff program to ask for TA assistance. Once a student believes he/she has fulfilled all requirements for one or more parts of a lab assignment, the student must request a passoff using the help/passoff program. The next available TA (according to the description above) will then check the student's code and/or output to determine if the students has met all the requirements for the assignment. If the student has met all requirements, the TA will then enter the score for the lab assignment on the TA's computer. Students are not finished with an assignment until a TA enters the score into the computer.

Note: A student must be on the passoff list at least 15 minutes prior to the the time TAs leave for the student to be passed-off that day.

Lab Due Dates/Late Policy

Lab assignments count for 300 points (50%) of the final grade (see below for exact grade breakdowns). As such it is vital that students complete lab assignments on time. To encourage students to complete lab assignments on time, you receive one late day for each day late an assignment is turned in. However, we do still want all students to complete all lab assignments. So, students can only receive up to 10% of a labs worth in late days (i.e. if a lab assignment is worth 40 points, students can receive a maximum of 4 late days for the assignment). Therefore, even if a student turns in an assignment on the last day of class, he/she can still receive some credit. However, ALL ASSIGNMENTS ARE DUE BY THE LAST DAY OF UNIVERSITY CLASSES FOR THE SEMESTER OR TERM!

To further promote punctuality of completing lab assignments, we do offer the opportunity to earn additional early days. By turning labs in early, students may earn just as many early days as late days, for a given assignment (i.e. if a lab is worth 20 points students can earn a maximum of 2 early days).

Any day that the TAs are working counts towards the accumulation of early or late days.

At the end of the semester each early day cancels out a late day. Each remaining late day subtracts 5 points from the student’s total of 600 possible points, whereas each remaining early day adds 1 point to the student’s final score, up to 24 points.

Experience has shown that unexpected events and/or emergencies arise throughout the semester for many students. For this purpose students receive 4 free early days at the beginning of the semester (given at the time a student completes orientation). Lab assignments turned in using early days will be given full credit. Your early days will automatically be reduced by the appropriate amount, up to the maximum late days for the assignment.

Lab Books

There are copies of the course text that are available in the labs. These must be checked out by a TA in room 1121 TMCB. Students may use the texts only if they are in the labs, and they must be returned by the end of the day. To check out a lab book, a student must leave his/her BYU ID card with a TA. When the lab book is returned, the TA will return the ID card to the student.

Additional Programming Assignments (APAs) for Extra Credit

During fall semester, you will have the option to earn extra credit in CS 142, worth an additional 10% (60 points) toward your final grade. To earn the extra credit, you must commit at the start of the semester to complete 12 additional programming activities ("APAs") that build upon the regular programming assignments (the "labs"). These APAs will be submitted via an online submission website. The typical participant will need 1 to 2 hours to complete each of the 12 APAs. If you opt to participate, all 12 APAs must be completed; no credit will be awarded for completion of only some of the APAs. Further, if you opt to participate and you do not complete all 12 APAs, not only will you forfeit the extra credit, but you will also receive a 3% (18 points) penalty. A description of each of the 12 APAs is available here. To participate, you will need to complete some forms at the conclusion of the standard course orientation sessions scheduled for September 1 and 2, 2010.

APAs are due on the university class day (i.e. Monday through Friday, excluding university holidays) following the due date for the associated lab, except APA 11 which is due the same day as lab 11. Each participant may submit one APA (except for the last APA)one university class day late without penalty. Any additional late submissions incur a 10% per university class day late penalty. After 10 late days, the APA will earn no points, but still must be completed to avoid the 60 point penalty described in the previous paragraph.

The homework submission website allows you to see the work submitted by other students. After you have submitted your own solution to a given APA, you are free to look at solutions submitted by other students. However you should not view others' solutions before submitting your own.

You can receive help from TAs as you work on the assignments. The solution you submit should compile (there should be no red squigglies) and be functional to receive credit for the APA. If your submitted solution does not meet those requireemnts, you will be contacted by a TA to help you fix your program if you so desire.

Exams

There are 2 midterm exams and a final in this course. (See the course schedule for specific dates.) They are held (or given out) in the labs and are administered by the TAs. They are composed entirely of programming problems which students will be required to solve within the time limit, usually 3-4 hours for a timed in-lab test or two days for a take-home exam. Exams count for 300 points (50%) of the final grade.

Exams should normally be submitted in the labs with a TA. However, if you need to submit your exam over a weekend or holiday when TAs are not working, emailing your exam files to the head TA can serve as a time stamp for the end of your exam. The exam packet should still be turned in to a TA in the labs as soon as possible.

For a take-home exam, exams are picked up one day and are due 1-2 days later (depending upon the time given for the exam) 15 minutes prior to the end of the TA hours for the day. Any student on the passoff list prior to that time will be given credit for finishing that day. Points for a take-home exam will be deducted at the rate of 20 points per day for each day late an exam is completed. A maximum of 60 points will be deducted for a late exam. Take-home midterms submitted more than four days after the close of the exam period will not be accepted or graded.

For an in-lab exam, points will be deducted for late exams at the rate of 2 points per hour while TAs are working + 10 points per night (e.g. if an exam is due at 5:00 P.M. on Thursday and it is turned in Friday at 10:00 A.M., 16 points will be deducted from the overall exam score).

Help for students on exams is very limited. Students may NOT DISCUSS the exam with ANYONE other than TAs. The TAs can help clarify exam problems and review general programming concepts. However, they cannot give specific advice on the exam, nor write or debug any code.

Final Grades

Students may check their grade at any time by selecting "View Grades" in the Administration Menu.

  • Final Grades are determined on a 600 point scale, earned as follows:
Labs Points Labs Points
Lab 1 20 Lab 8 30
Lab 2 20 Lab 9 20
Lab 3 30 Lab 10 20
Lab 4 30 Lab 11 40
Lab 5 30 Exam 1 100
Lab 6 30 Exam 2 100
Lab 7 30 Final 100
  • Extra Credit is available for many labs and exams. Any extra credit earned will be added to the final total points
  • Each unused early day will be worth one extra credit point, up to 24 points.

  • Final Grades are determined as follows (but your final grade will be not more than one and one half letter grades higher than your final exam grade):
Grade Points Grade Points
A 570+ C 438-461
A- 540-569 C- 420-437
B+ 522-539 D+ 402-419
B 498-521 D 378-401
B- 480-497 D- 360-377
C+ 462-479 E Below 360
I = Unexpected events that occur after the 12th week of the semester or 6th week of the term and prevent completion of the course.

Success Factors in CS 14

A large survey correlated several factors with grades in CS 142. It produced the top 7 behavior patterns that lead to success in CS 142:

  • Perseverance in completing programming assignments
  • Sufficient time devoted to 142
  • Working with, and learning from, other students in 142
  • Turning lab assignments in on time
  • Being married
  • Wise course load
  • Previous programming experience

Announcements

It is the student's responsibility to check the home page for announcements about changes or important notices that could be made throughout the semester for the course. Students are responsible for knowing the information posted.

Collaboration Policy

All work a student submits for this course must be his/her own individual work. Students are encouraged to help each other understand concepts, plan out program organizations, and resolve programming issues. However, each student must write his/her own designs, algorithms, and programs. Do not turn in work copied from someone else without attributing it!! On tests students may not use any other student's code, even if the other student's work is cited. Students may be reported to the Honor Code Office for any violation or dishonest work.

We have provided appropriate means of getting help and understanding from TA's and other students. Students are free to discuss various programming topics with anyone (except during examinations). The purpose of doing the labs is to help students apply programming concepts. If a student completes, and understands, all the lab assignments, he/she will do very well in this course. All can get A's. However, it does require a lot of time and effort.

Preventing Sexual Harrasment

Title IX of the Education Amendments of 1972 prohibits sex discrimination against any participant in an educational program or activity that receives federal funds. The act is intended to eliminate sex discrimination in education. Title IX covers discrimination in programs, admissions, activities, and student-to-student sexual harassment. BYU's policy against sexual harassment extends not only to employees of the University but to students as well. If you encounter unlawful sexual harassment or gender-based discrimination, please talk to your professor; contact the Equal Employment Office at 422-5895 or 367-5689 (24-hours); or contact the Honor Code Office at 422-2847.

Students with Disabilities

Brigham Young University is committed to providing a working and learning atmosphere that reasonably accommodates qualified persons with disabilities. If you have any disability that may impair your ability to complete this course successfully, please contact the University Accessibility Center (422-2767). Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the student and instructor by the UAC. If you need assistance or if you feel you have been unlawfully discriminated against on the basis of disability, you may seek resolution through established grievance policy and procedures. You may contact the Equal Employment Office at 422-5895, D-282 ASB.

Designed by Andy Griffin