CSCI 131 / Fall 2017
Techniques of Programming
1: Tuesday / Thursday 9:30 - 10:45 (Swords 321)
2: Tuesday / Thursday 11:00 - 12:15 (Swords 328)
Labs in Swords 219
A: Wednesday 10:00 - noon
B: Wednesday noon - 2:00
C: Wednesday 2:00 - 4:00
Teaching Assistant Office Hours:
Access to a MathCS NUC:
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.
An Introduction to Programming In JAVA: An Interdisciplinary Approach
Robert Sedgewick and Kevin Wayne
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 will be about 12 lab assignments, each due at the end of the lab section. Lab assignments are weighted equally for grading purposes.
There will be about six individual programming projects and one group project. You will have one to three weeks to complete each one. Programming projects are weighted according to difficulty. The first individual project is worth 10 points, the remainder of the individual projects will likely be worth between 40 and 70 points each.
The final grade will be computed approximately as follows:
|Programming Projects||30% (individual and group)|
|Midterm Exam #1||20%|
|Midterm Exam #2||20%|
There will be two afternoon/evening mid-term exams and one final exam.
If you have a conflict, please see the instructor immediately.
Lab assignments should be turned in at the end of each lab session. However, most labs will have a grace period allowing you to turn in the lab later with no penalty. (See the assignments page for the grace period expiration.) After that point, late labs will not be accepted.
Programming projects are generally due at 9: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.
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 after the graded assignment is returned to the class.
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). The lab is generally open:
Monday through Thursday, 8:00 a.m. to midnight;
Friday and Saturday, 8:00 a.m. to 6:00 p.m.;
Sunday 10:00 a.m. to midnight.
If the main doors to the science complex are locked, use the rear glass door on the third floor of Smith Labs. You can access the radius server remotely from the O'Kane B-32 lab (open 24 hours, use your student ID to access), the Haberlin 136 lab (one computer in the back of the room), 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.