CSCI 131 / Fall 2024
Techniques of Programming
Lectures:01: Tu/Th 9:30 AM - 10:45 AM, Swords 321 (Prof. Gu) 02: Tu/Th 11:00 AM - 12:15 PM, Swords 321 (Prof. Gu) 03: Tu/Th 2:00 PM - 03:15 PM, Swords 328 (Prof. King) |
Labs: Swords 219A: Tuesdays 1:30 PM - 3:25 PM (Prof. Gu) B: Wednesdays 10:00 AM - 11:55 AM (Prof. Gu) C: Wednesdays 1:00 PM - 2:55 PM (Prof. King) D: Wednesdays 3:00 PM - 4:55 PM (Prof. King) |
Prof. Laurie KingHaberlin 307LKing@holycross.edu Open Hours:
|
Prof. Ting GuHaberlin 309TGu@holycross.edu Open Hours:
|
Evening Teaching Assistant Office Hours (7:00 - 9:00 pm):
|
Lab Instructors and Teaching Assistants:
|
Access to a MathCS terminals and Logos:
|
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.
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!
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.
There are eleven 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 slightly differently. The first individual project is worth 10 points, the remainder of the projects will likely be worth between 40 and 50 points each.
There are eight review quizzes planned, some will be given during lab and others will be take home. Those given during lab will be collected during lab. Take home quizzes handed out during lecture will be due at the beginning of the next lecture session. Review quizzes are to be done individually with no external resources of any kind.
Quiz scores can be improved (up until the corresponding exam is given). Students may earn up to one-half of the points missed. For example, if a student earns 6 of 10 possible points on a quiz, the student can improve their score by 2 points (one-half of the 4 missed points is 2) to replace their score of 6 with an 8. Students must visit the instructor's office hours or make an appointment for an opportunity to improve their quiz score.
The score for a missed quiz for an excused absence will be replaced with the corresponding exam score percentage (but with no opportunity to improve the score).
The final grade will be computed approximately as follows:
Programming Projects | 11% |
Lab Assignments | 15% |
Review Quizzes | 8% |
Exam #1 | 22% |
Exam #2 | 22% |
Exam #3 | 22% |
There will be three afternoon/evening midterm exams. Tentatively, these are schedule for:
If you have a conflict, please see the instructor immediately.
Lab assignments must be turned in and are due at the end of each lab session. There is a grace period of no less than four days after which no labs will be accepted. Labs 1 through 10 will be accepted until the midnight prior to the first section of 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.
Programming projects are due on the date specified generally at 8:00 p.m. There is ample time to complete these projects; plan to finish your work several days early so that last minute illness or computer glitches do not interfere with the due date. Usually graded projects are returned the class period before the next project is due.
In the case of excused absences or academic accommodations as required by the Office of Student Accessibility Services, late projects may be accepted up until 8:00 p.m. prior to the next project due date, after which projects cannot be accepted.
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 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.
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.
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:
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.
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.
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.
The Academic Integrity Policy.
The Requests for Reasonable Accommodations can be made through the Office of Accessibility Services.
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.