CSCI 131 / Spring 2024

Techniques of Programming

Lectures:


01: Tu/Th 11:00 AM - 12:15 PM, Swords 359 (Prof. Gu)
02: Tu/Th 2:00 PM - 03:15 PM, Swords 359 (Prof. King)

Labs: Swords 219


 A: Wednesdays 10:00 - 11:59 (Prof. Gu)
 B: Wednesdays 1:00 - 2:59 (Prof. Gu)

Prof. Laurie King

Haberlin 307
LKing@holycross.edu
Open Hours:
  • Tuesdays 11:00-noon
  • Wednesdays 2:00-4:00
  • Thursdays 3:30-4:30
  • and by appointment and Zoom

Prof. Ting Gu

Haberlin 309
TGu@holycross.edu
Open Hours:
  • Tuesday 1:00 - 3:00
  • Thursday 1:00 - 3:00
  • and by appointment and Zoom

Evening Teaching Assistant Office Hours (7:00 - 9:00 pm):

  • Sunday, Monday, Tuesday, Thursday; Location: Swords 219 in person
  • Wednesday; Location: Student Lounge, 3rd Floor Swords in person
  • Teaching Assistants: Emily Bubonovich (Su), Will Schimitsch (M), Wesley Smith (Tu), Karina Calhoun (W), Matt Jolie (Th)

Lab Instructors and Teaching Assistants:

  • Lab A, 10:00: Prof. Gu, Andres Correa and Salvatore Milano
  • Lab B, 01:00: Prof. Gu, Matt Jolie and Anthony Petrosino
  • Project Grading: Maura Switzer

Access to a MathCS terminals and Logos:

  • Swords 219: twenty-five configured NUC terminals, open Monday through Thursday 8:30 AM - midnight; Friday: 8:30 AM - 6:00 PM; Saturday 10:00 AM - 6:00 PM and Sunday 10:00 AM - midnight.
  • O'Kane B32: two configured NUC terminals, 24-hour access with keycard (note there are a variety of computers, printers, displays, seating and meeting facilities.)
  • McBrien Student Lounge (Swords 307/312): three configured NUC terminal
  • Remote access (This is completely optional.)

Course Description

In this course we will explore some fundamental concepts in Computer Science, including problem solving, algorithms and programming in Java a widely-used high level programming language. We will also cover simple data structures and the fundamentals of program style.

The course meets three times each week: two lectures and one lab section. You must register for the lecture and one of the lab sections. Attendance at the lab section is mandatory. Please attend the lab section for which you are registered. The laboratory will be held in Swords 219.

Diversity and Inclusion

We intend for every student to feel their voice is welcome in this course. Our goal is to create a learning environment that supports each of you and embraces the diversity that you all bring. All members of the class are expected to be respectful and supportive of each other's ideas and identities. Even when discussing narrow technical matters, racism, sexism, and other hidden assumptions can appear, and there are difficult ethical dimensions to all we do as computer scientists. We all make mistakes that can impact others. But we hope that by committing to listening reflectively, and without defensiveness, we can build a strong and inclusive community. Please let us know if there is anything in class meetings, in office hours, in study sessions, or elsewhere that troubles you or makes you feel uncomfortable or unvalued. We welcome and appreciate any suggestions you have pertaining to diversity, equity, and inclusion.

If you prefer to speak with someone outside the course, please do not hesitate to reach out to any other faculty, the class deans, department members of the student advisory council, or others you feel more comfortable speaking with.

Also, if you have a name and/or set of pronouns that differ from those that appear on our class roster, please let us know!

Required Textbook

An Introduction to Programming In JAVA: An Interdisciplinary Approach
Robert Sedgewick and Kevin Wayne
Addison-Wesley (Pearson)
ISBN-10: 0321498054
ISBN-13: 9780321498052

It is expected that Holy Cross students will have textbooks and other required class materials in order to achieve academic success. If you are unable to purchase course materials, please go to the Financial Aid office where a staff member will be happy to provide you with information and assistance.

Grading & Assignments

There are 11 equally weighted lab assignments, each due at the end of the lab session.

There are six programming projects. You will have one to three weeks to complete each project. Programming projects are weighted according to difficulty and size. The first individual project is worth 10 points, the remainder of the projects will likely be worth between 40 and 70 points each.

The final grade will be computed approximately as follows:

Lab Assignments and Lab Review Quizzes15%
Programming Projects10%
Exam #125%
Exam #225%
Exam #325%

Examinations

There will be three afternoon/evening midterm exams. Tentatively, these are schedule for:

If you have a conflict, please see the instructor immediately.

Late Policy

Lab assignments must be turned in at the end of each lab session. However, labs 1 through 10 will be accepted until the midnight prior to the next lab session. Lab 11 will be accepted until the last day of classes. (See the assignments page for the lab schedule.) Labs are due at the end of the lab session, there is a grace period of no less than four days after which no labs will be accepted.

Programming projects are generally due at 8:00 p.m. on the date specified. You have ample time to complete these projects; plan to finish your work several days early so that last minute illness or computer crashes do not interfere with the due date.

Project Penalties: The penalty imposed each day is 10% of the original point value of the project. Thus, the maximum possible score for an assignment will be reduced by 10% for each day or portion of a day that the assignment is turned in late. If the project is up to 24 hours late, 10% will be subtracted from your score, hence the maximum possible score for an assignment turned late is 90% of the original point value. If the project 24 or more hours late, up to 48 hours, 20% of the original point value will be subtracted from your score, and the maximum possible score for an assignment turned in up to 48 hours late is 80% of the original point value, and so on. The penalty will be determined when all parts of the assignment (both electronic and paper copies, if needed) are received by the instructor or the department administrative assistant. Late work will not be accepted past 7 days late or after the graded assignment is returned to the class, whichever comes first.

Discussion Log & Collaboration Policy

Please refer to the Math and CS Department honor code policy and the College Statement on Academic Honesty.

A typed discussion log is required for each and every lab assignment, programming project, or other submitted work. No work will be accepted without a written discussion log. The amount of collaboration allowed differs between laboratory assignments and programming projects, so please read the following guidelines carefully. If you are in doubt, be sure to ask the course instructor.

In general, you may refer to your texts, your class notes, the lab assistants, and your course instructor for help. You may consult public literature (books, articles, web sites) for general information and examples. As described below, you are also sometimes also allowed to collaborate with fellow students, for example, to discuss general strategies for solving programming assignments, or to get help on lab assignments.

In all cases you must cite each source of ideas you adopt in your discussion log for each assignment. You must never present another person's work as your own. By clearly indicating any sources you consult and the people with whom you collaborate, you are giving credit where it is due. If you borrow or adapt code, and if the code is good, then you will get some credit for having found it (you won't get credit for writing it, since you didn't). If you borrow bad code, the fault is all yours.

Clarification about online sources: It is fine to use Google to look for snippets of publicly available code that might help you with lab assignments and programming projects, and it is okay to use a limited amount of such code in your own work. You should not take entire solutions or large amounts of code from the web. And you must clearly comment your code to indicate which code and ideas are purely your own, which code or ideas are borrowed or adapted from elsewhere, and where the other code or ideas came from.

Moderate Collaboration for Lab Assignments

Moderate collaboration is allowed and even expected on lab assignments. This means you may talk to your fellow students about how to go about solving the various problems presented. However, you must write and type in your own code. No deduction is taken for this moderate collaboration, but lack of acknowledgement is considered a serious breach of conduct.

Limited Collaboration for Programming Projects

Only limited collaboration is allowed on programming projects. This means you should limit your discussion with your fellow students (or others) to general information and examples. You may discuss the logic for solving a programming problem and the meaning of compiler error messages with other students, for example, but you may not discuss specific pieces of program code with other students. A good check for this is that you must speak in standard English when discussing assignments, not using source code phrasing. You may not work with another student to write a piece of code and have each student turn in that code as if it was their own. You may not copy the file of another student (or any other source) and turn it in as your own work.

Discussion Log

For each assignment, you must keep a log detailing every collaboration you had with someone else and every source you consulted when completing the assignment. Each log entry must include: the date, the source, the length of time spent talking or reading, and a summary of discussion or material read. You don't need to include the course textbook, the lab manual, the lab assistants, or the instructor, since it is assumed you will consult these sources. Here is an example—you should use a similar format:

Even if you did not discuss anything with anybody and never consulted any other sources, you must still submit a discussion log that says just that, like so:

Because time is limited during labs, your lab discussion log can be brief—just keep a list of students you collaborate with and/or web sites you consult, and then write brief mention of what topic you were discussing or reading about. For programming projects, be more detailed. Here is a lab example:

Lab Details

Lab Access

The "sun" lab, Swords 219, is open at approximately the same times as the Science Library. It is not available when classes are scheduled in the lab (these times are posted on the door). In addition to some Friday, Saturday and Sunday hours, the lab is generally open 7:30 a.m. to midnight, Monday through Thursday. You can also access the radius server remotely from the O'Kane B-32 lab, the Haberlin 136 lab, or your own desktop or laptop computer. Accessing radius from your own computer may require some (free) software to be installed, which you can obtain from the Resources section of the course web page.

Lab Format

Two hours are allotted for each lab session. At the beginning of each session, your instructor may briefly introduce the material in the lab. Then, you will work on the lab on your own as you read through the lab material for that week. If you need help or have a question, your instructor or teaching assistant will be happy to assist you. When you have completed the lab, you are responsible for turning in the required materials for that lab. After that, you are free to leave.

Each lab should be completed during the lab session, however there is a short grace period afterward to finish and turn in any uncompleted work without penalty. After the grace period expires, no lab work will be accepted.

Responsibilities

Preparation. Read over the material for the lab session before coming to lab each week. This will enable you to use the time in lab to ask questions and get help from the instructors, teaching assistants, and your classmates.

Make up labs. Attendance at lab sessions is mandatory. In the event that you must miss a lab, arrangements must be made with your instructor well in advance to make up the lab.

Grading. Your previous lab and programming assignments may be returned at the beginning of lab. [Note: this does not imply that all labs will be graded in one week, it only means that labs will often be returned during labs.] If you have questions about your grade on a particular assignment, you must address these questions to your instructor within seven days of the day that the assignment was returned to your lab section. Re-grading requests made after this period of time will not be given serious consideration.

College Policies and Statements

The Academic Integrity Policy.

The Excused Absence Policy.

The Accessibility Services Statement.

Note: Consistent with applicable federal and state law, this course may be video/audio recorded as an accommodation only with permission from the Office of Accessibility Services.
We provide many video presentations of course material separately in CANVAS. In this way, students can preview/review material from each class period without the need to record the class interaction itself.

Note: Use of laptops in class is not allowed, unless a student has a letter from the office of disability services.

Required College Policy Information.