CSc 127B (Introduction to Computer Science II) Syllabus
Fall 2015
[Catalog] == [Personnel] == [Resources] == [Outline] == [Dishonesty] == [Grades] == [Class Policies] == [University Policies] == [Caveat]
General Catalog Information:
Description: | Continuation of CSc 127A. Topics include classes, sorting, algorithm analysis, recursion, program development, and implementation of abstract data types using linear structures and binary trees. Weekly laboratory. This course cannot be taken if a student has credit in a higher level computer science course (CSc 245, 252, and all 300- and 400-level courses). These students will be dropped. Students with unusual circumstances should consult with a department advisor. | ||||||||||||||||||||||||||||
Lecture: | Mondays and Wednesdays, 3:30 p.m. - 4:45 p.m., MLNG 350 | ||||||||||||||||||||||||||||
Recitations: | Here are the section times and locations: | ||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||
See the Personnel section, below, for section leader contact info. | |||||||||||||||||||||||||||||
Each recitation section is led by an undergraduate section leader (SL). We require attendance at the weekly section meetings to give you the opportunity to work on more examples that tie in with the lecture topics, to allow you to ask questions about things you saw in recent lectures that you didn't fully understand, and to allow us to offer clarifications on homework and programming exercises. Other things are likely to happen in section, too, such as quizzes, group projects, and returning and reviewing assignments and exams. | |||||||||||||||||||||||||||||
Prerequisite(s): | Completion of CSc 127A, or its equivalent, with a grade of 'C' or better. | ||||||||||||||||||||||||||||
Credit is allowed for either of CSc 127B or CSc 227, not for both. | |||||||||||||||||||||||||||||
Credits: | 4 | ||||||||||||||||||||||||||||
Final Exam: | Wednesday, December 16, 2015, 3:30 p.m. - 5:30 p.m. The final is required, comprehensive, and will be given on this date at this time. Make your end-of-semester travel plans accordingly. |
Class Personnel:
Name | Office | Email(.arizona.edu) | Phone | Fax | Office Hours | |
---|---|---|---|---|---|---|
Instructor | Lester I. McCann, Ph.D. | G-S 754 | mccann@cs | 621-3498 | 621-4246 | T & W 1:30-3pm |
SL | Jesse Bartels | G-S 228 | jessebartels@email | ----- | 621-4246 | [1] |
SL | Greg DePaul | G-S 228 | gdepaul@email | ----- | 621-4246 | [1] |
SL | Ben Gaska | G-S 228 | bengaska@email | ----- | 621-4246 | [1] |
SL | Will Grijalva | G-S 228 | wgrijalv@email | ----- | 621-4246 | [1] |
SL | Cody Jensen | G-S 228 | csjensen@email | ----- | 621-4246 | [1] |
SL | Kendall Stratton | G-S 228 | kendallstratton@email | ----- | 621-4246 | [1] |
[1]: The 127B section leaders, along with those of 127A, have lab hours in the Gould-Simpson 228 lab. The lab hours schedule will be determined during the first week of classes, and posted in the lab. You can ask questions of any of the SLs staffing 228; they (should!) all know the material.
Each of the SLs has successfully completed this class (or its equivalent) and is paid by the Department of Computer Science to help me help you learn the material. In addition to leading a section each week, they grade your programming assignments, do the bulk of grading on the exams, let me know what topics seem to be especially baffling to the students, and hold lab hours in the Gould-Simpson 228 lab. I expect that you'll find your section leader to be a valuable resource.
Please keep in that that it is possible to meet with your SL or me outside of office hours. Contact us to make an appointment.
Information Resources:
Homepage: | http://www.cs.arizona.edu/classes/cs127b/fall15/ |
Textbook: | There is no required text for this class. I have required texts in
the past, but found that most students did not use them. Instead,
here are some free, on-line data structures texts that you can
reference should you desire another point of view:
|
Class Discussions: | We will be using Piazza for outside-of-class discussions and announcements. Click here to access the CSc 127B discussion area. |
Course Objectives and Expected Learning Outcomes:
Be advised that this topic outline is just that - an outline. It does not list every topic to be covered in the class. Reliance upon it is not a good substitute for attending lectures.
Topics and Subtopics | Sections In Text | Sample Learning Objectives |
---|---|---|
1. Review of the Basics of Java | ||
a. Structure of a Java Program | - | • Know what goes where |
b. Variables, Types, and Objects | - | • Know how Java stores and works with data |
c. Control Structures | - | • Be able to use selection and iteration structures |
d. Java Methods and the Math Class | - | • Use of Java's subprograms |
• Be able to accept input and produce output | ||
• Familiarity with supplied math methods | ||
e. Character Strings | - | • Learn how Java stores and manipulates strings |
• Understand garbage collection | ||
f. Wrapper Classes | - | • Learn to distinguish int from Integer |
• Know the concepts of boxing and unboxing | ||
g. User-defined Classes | - | • Learn the basics: Constructors, public/private, arguments, etc. |
• Be able to write and test your own classes | ||
h. Array Objects | - | • Know declarations, initializations, etc. |
• Work with 2D arrays using nested loops | ||
i. Input and Output | - | • Understand the concept of a stream |
• Distinguish console I/O from file I/O | ||
• Understand how to use the Scanner class | ||
2. Exceptions and Debugging | ||
a. Java error handling | - | • Know how to catch and throw exceptions |
b. Locating logic errors | - | • Employ both output and assert statements |
3. Text and Binary File I/O | ||
a. DOS vs. UNIX text files | - | • Know how to tell them apart |
b. Text file I/O | - | • Writing to a text file with PrintWriter |
• Reading from a text file with Scanner and BufferedReader | ||
c. Binary file I/O | - | • Writing primitives with DataOutputStream |
• Reading primitives with DataInputStream | ||
4. Software Engineering | ||
a. Program Design | - | • Know the steps of the Waterfall model |
b. Data Abstraction and Information Hiding | - | • Understand the "big picture" of class design |
5. Interfaces and Class Reuse | ||
a. Java Class Interfaces | - | • Know why the extra work is worthwhile |
b. Class Reuse | - | • Understand the concept of class inheritance |
• Distinguish overloading and overriding | ||
• Know the types of class composition | ||
6. Array-based Lists | ||
a. Operations | - | • Create, Destroy, Insert, Delete, etc. |
• Know how an array representation impacts list operations | ||
b. ArrayList | - | • Be able to use this API class effectively |
7. Array-based Stacks | ||
a. Introduction to Stacks | - | • Know the basic characteristics of stacks |
b. Array Representation | - | • Know how to use an array to store stack elements |
8. Array-based Queues | ||
a. Introduction to Queues | - | • Know the basic queue concepts |
b. Array Representation | - | • Know how to hold queue elements within an array |
9. Linked Lists | ||
a. Distinguishing Array Lists and Linked Lists | - | • Understand which situations favor each |
b. Varieties | - | • Know the pros/cons of SLLs, DLLs, and CLLs |
10. Stack and Queues with Linked Lists | ||
a. Linked List Stacks | - | • Argue array vs. LL representation |
b. Linked List Queues | - | • Argue array vs. LL representation |
11. Ordered Lists and Searching | ||
a. Maintaining List Order | - | • Understand the impact of ordering on list operations |
b. Binary Search (Iterative) | - | • Know how it works, and how to implement it |
12. Recursion | ||
a. Recursion vs. Iteration | - | • Know that one can replace the other |
b. How Recursion Works | - | • Understand how the computer manages recursion |
c. Examples | - | • Understand how to view a problem recursively |
13. Binary Trees | ||
a. Hierarchical Data Structures | - | • Distinguish from linear structures |
b. Examples | - | • Types of binary trees, and their implementation |
14. Binary Search Trees | ||
a. Distinction from Binary Trees | - | • Know where data belongs in a BST, and why |
b. Operations | - | • Insertion, deletion, traversals, etc. |
c. Applications and Extensions | - | • Understand that there are extensions |
15. Sorting Algorithms | ||
a. Simple Sorts | - | • Selection, Insertion, and even Bubble |
b. Quicksort | - | • Know why it earns its name |
16. Algorithm Analysis | ||
a. Step Counting | - | • Know this handy evaluation technique |
b. Asymptotic Analysis | - | • Know "Big-O" |
Topics may be added, removed, or reordered as time and circumstances dictate. No text sections are listed because we don't have a required text.
Academic Dishonesty (i.e., Cheating):
See Also: | • The Department of Computer Science Course Policy on Collaboration: http://www.cs.arizona.edu/policies/collaboration.html |
• The University of Arizona Code of Academic Integrity: http://deanofstudents.arizona.edu/codeofacademicintegrity | |
• The Arizona Board of Regents list of Prohibited Conduct: https://azregents.asu.edu/rrc/Policy%20Manual/5-303-Prohibited%20Conduct.pdf | |
• The Arizona Board of Regents Student Code of Conduct: https://azregents.asu.edu/rrc/Policy%20Manual/5-308-Student%20Code%20of%20Conduct.pdf (in particular, see part F, "Prohibited Conduct") |
Most, if not all, of the programming assignments in this class will be individual assignments, to be worked on outside of class. All individual work assigned to you in this class is to be completed only by you. It is not acceptable for you to `borrow' (a.k.a. steal, copy, coerce, etc.) solutions or parts of solutions from other people or have other people write part or all of your solutions for you. However, it IS acceptable (and encouraged!) for students to help one another understand the assignment requirements and other high-level issues. In short, do your own work, but feel free to discuss difficulties with each other. Of course, you may always ask me or a SL for help, but don't expect that we'll just hand you solutions; we'll make you work for them. Doing is learning!
The class policy on cheating is simple: If we determine by a preponderance of the evidence that a student or students violated one or more of the policies of academic conduct governing this class, at minimum all complicit students will receive no points for the academic activity or activities in question. Additional sanctions are possible depending on the circumstances of the offense(s) and the policies of the department, university, and Arizona Board of Regents, up to and including expulsion from the university. Academic integrity infractions are reported to both the Dean of Students and the Dean of the College of Science. If you have a history of violations, the penalty is likely to be much worse than just a zero on an assignment. Multiple violations in this class will result in a recommendation of a failing course grade, at minimum. We take academic dishonesty very seriously, as you should be able to tell; we expect you to take it just as seriously.
Please take the time to read the references linked above. Ignorance of the policies is not an acceptable excuse for their violation. For your convenience, here is the section of the University's Code of Academic Integrity entitled "Prohibited Conduct":
Conduct prohibited by this Code consists of all forms of academic dishonesty, including, but not limited to: 1. Cheating, fabrication, facilitating academic dishonesty, and plagiarism as set out and defined in the Student Code of Conduct, ABOR Policy 5-308-E.6, E.10, and F.1. 2. Submitting an item of academic work that has previously been submitted without fair citation of the original work or authorization by the faculty member supervising the work. 3. Violating required professional ethics rules contained or referenced in the student handbooks (hard copy or online) of undergraduate or graduate programs, or professional colleges. 4. Violating health, safety or ethical requirements to gain any unfair advantage in lab(s) or clinical assignments. 5. Failing to observe rules of academic integrity established by a faculty member for a particular course. Attempting to commit an act prohibited by this Code. Any attempt to commit an act prohibited by these rules shall be subject to sanctions to the same extent as completed acts. 6. Assisting or attempting to assist another to violate this Code. |
The bottom line: Do your own work! If you have any doubts, please come talk to us -- before you do anything you might regret.
Grades and Grading:
See Also: | • UA General Catalog's Grades and the Grading System: http://catalog.arizona.edu/2015-16/policies/grade.htm |
Section Attendance and Activities | = | 12 | % | total |
In-Class Activities | = | 12 | % | total |
Programs | = | 30 | % | total |
2 Midterm Exams | = | 30 | % | total |
Comprehensive Final Exam | = | 16 | % | |
Total | = | 100 | % |
By department policy, the final exam is required.
I use the common 90-80-70-60 grading scale. It's possible that final grade cutoffs will be lowered a little (from 90% to 88.5% for the bottom of the 'A' range, for example) but they will never be raised. I make such determinations only at the end of the term, after the final exam has been graded.
See Also: | • UA General Catalog's Class Attendance Policies: http://catalog.arizona.edu/2015-16/policies/classatten.htm |
You will be expected to regularly attend your weekly section meetings. To help encourage you to do so, your SL will be taking attendance each week. Hopefully, you will find the sections to be useful enough that you won't need the encouragement.
A typical section meeting will start with a presentation from your section leader, followed by a pair-programming activity in which you work with another student to complete one or more programs or other tasks. Students who do not take section seriously and/or are uncooperative or disruptive risk losing credit for attending and participating in section.
About once a week, we'll have some sort of in-class activity. These will often be small-group (2-3 students) exercises that are directly relevant to that day's lecture topic(s). Sometimes, they will be individual activities, such as quizzes. Either way, unless otherwise announced, the use of electronic devices during these activities will not be allowed, and we will be collecting and grading these activities.
We do not record (and do not grade you on) attendance during lectures. That said, we strongly recommend that you attend all of the lectures, not just the ones with in-class activities. Experiencing, and participating in, "live" lectures is a valuable learning experience.
The Department of Computer Science labs in Gould-Simpson 228 and 930 will be available for your use for the programming assignments. Many students find it convenient to work on the assignments at home; I expect that all of the software we use in this class will be freely (and legally!) available for you to download and install on your home computer, or you can remotely connect to the lab systems from home. If you do decide to use a system outside of our department's control for your work, it's your responsibility to learn how to set it up and use it effectively. In addition, you'll be required to electronically transfer ("turnin") the source code to us before the due date. Expect us to compile and run your programs on CS department machines to verify their completeness and correctness, so be certain that your programs run completely and correctly on a department machine before you submit it.
Java 1.7, though 1.6 or 1.8 are fine.
My code documentation and style guidelines are available from the class web page. Documenting code is not the most enjoyable activity you'll ever experience, but it is important to do, and to do well. Program documentation/style is worth about 25% of your score on a program.
Each programming assignment will have a clearly stated due date and time. Normally, programs will be due at 9:00 p.m. Thursday nights. Electronic submissions received after that time will be considered late. Programs submitted within the first 24 hour period after the due date and time are considered to be one day late. Submissions received within the next 24-hour period are two days late, etc. Any day of the week, including Saturdays, Sundays, and holidays, count as days for the purpose of determining lateness.
At the start of the term, you are granted five no-penalty late days. Each time a program is submitted late, you will lose no points until you have exhausted your late days. When your late days have been exhausted, you will lose 20% per day the program is late. After five such deductions, your score for that program will be zero.
For example, if a program is due at 9 p.m. on the 12th but you submit your code at 9:30 p.m. on the 13th, it is considered to be two days late. If you had three late days remaining, you'd lose two of them but would still be able to earn full credit on the assignment if it works correctly and is well-structured and well-documented. If you had only one late day remaining, you'd lose it and 20% (that is, your program will be graded out of a maximum of 80%).
Final detail: No matter how many late days you have saved, no program will be accepted after 11:59 p.m. of Reading Day (a.k.a. Dead Day).
You are expected to thoroughly test your programs before submission to verify that they handle the expected variety of inputs properly. Should your program fail to perform properly when tested, points will be deducted based on the quantity and severity of the errors. The deductions for each type of error will be determined for each programming assignment and will be applied consistently to all submitted programs. If you feel that a program was graded improperly, please see your SL to discuss your concerns.
We deduct points from imperfectly-completed assignments so that you know where you need to improve on future assignments. If you don't understand why you lost points for a particular problem, or you would like to hear specific suggestions for improvement, we want you to come talk with us about your concerns.
For this discussion to be most productive, you should contact your section leader and arrange a mutually-agreeable meeting time. Come to the meeting with a list of your specific questions and concerns (so that you don't forget anything).
If, after this meeting, you are not satisfied, make an appointment to discuss your concerns with me. Always meet with your section leader first; s/he has first-hand knowledge of the grading.
To keep grading discussions from dragging out across the semester, you need to let your section leader know about your grading concerns within a week of your section (not you individually) receiving the graded assignment, unless there are exceptional circumstances. Any complaints about scores received after that week will not result in any score changes (but we'd still be happy to talk about your concerns).
Exam formats will be fairly consistent throughout the semester. Exams will consist primarily of short answer, problem-solving, and code-writing questions. The use of calculators or any other electronic devices is NOT permitted on exams unless warranted by special circumstances.
I expect all students to take the exams at the announced exam times. I give make-up exams only in extreme circumstances. I decide if a circumstance is "extreme." For example, being in a documented car accident on the way to the exam is likely to count as an extreme circumstance. Circumstances that are not considered to be extreme include losing a cell phone, breaking up with a significant other, forgetting to set/heed an alarm clock, having a cold, needing to chase after your running refrigerator, etc. Please be aware that missing a midterm exam isn't necessarily a disaster; see below.
I will schedule a midterm when I feel that we've reached a suitable point in the lecture material. Midterms will focus on the material covered in class, in section, and by the programs since the time of the previous midterm (or the start of the term in the case of the first midterm). As new material in this class usually builds upon the old, you should expect that your knowledge of material covered by previous exams will be necessary for success on subsequent exams.
Regrade Requests: After midterm exams are graded, they will be returned to you and you may keep them. We will also review the exam, usually in section. If you feel that your exam was graded improperly, prepare a brief memo that explains which problems concern you and why. Within one week of the date on which the exam was returned to the class/section, submit your exam (not a copy) and the memo to me. I will regrade the entire exam, paying particular attention to the problems you highlighted in the memo. Because errors in grading can cause scores to be too high as well as too low, it is possible that your grade will go down as a result of the regrade. Be sure to review your entire exam before you ask for a regrade.
The final exam will be given at the time stated in the class schedule. (I have also placed it near the beginning of this syllabus. If you see that I have listed the exam time incorrectly, please let me know.) The final will be comprehensive and will have a format similar to that of the midterms. If you miss the final under less-than-extreme circumstances, you will receive a score of zero for the final.
At the end of the semester, I will replace your lowest midterm exam score with a percentage-equivalent copy of your final exam score, but only if the final score is higher than at least one of your midterm scores. (Thus, this is a potential bonus but never a penalty.) I do this to reward you for demonstrating an improved mastery of the material over the course of the semester. However, it can also help you if you should miss a midterm because your car broke down, your alarm clock didn't go off, you had a disfiguring zit, or any other non-extreme quirk of fate. Please note that should you miss multiple midterms under sub-extreme circumstances, you will definitely get a zero for those additional missed midterms.
If room capacity permits, leave a seat vacant between you and your neighbor. If need be, we will reseat students before or even during an exam to maintain an honest evaluation environment for all students. Don't be surprised if you see me taking pictures of the class during the exam. That action doesn't necessarily mean that we think that someone is cheating; it also happens to be a convenient way to verify attendance.
Miscellaneous Class Policies:
The instructor and the SLs will attempt to reply to email and discussion board postings from students within 24 hours. This means that if you wait until the evening before an assignment is due to post a question, you may not get a reply before the due date and time. There's a classic sentence that covers this: A failure to plan on your part does not constitute an emergency on our part. We want to help, but like you, we have tasks other than email and discussion board postings that require our attention.
Important note: We encourage you to answer the posted questions of other students if and when you are able to do so. This is why we have a discussion board that is open to the entire class.
To help your email stand out in our inboxes, please prefix your subject lines with "CSc 127B:", as in "CSc 127B: Why did I lose points when my program is so obviously sublime?" Doing this will help reduce the chance that your email is inadvertently marked as 'spam'.
There will be no opportunities for extra credit points. Use your time to concentrate on doing well on the assigned work. If your grade in this class is important to you, start taking this class seriously now, not just after you do poorly on the first exam. Additional late days for assignments may be offered as incentives under special circumstances.
See Also: | • Accommodation of Religious Observance and Practice: http://deanofstudents.arizona.edu/religiousobservanceandpractice |
All holidays or special events observed by organized religions will be honored for those students who show affiliation with such religions. Absences pre-approved by the UA Dean of Students office will be honored. No matter the reason for missing class, the student is always responsible for the missed material.
See Also: | • Audit Policy: http://catalog.arizona.edu/2015-16/policies/audit.htm |
If you are auditing this class, you may attend lecture and you may attend your assigned weekly section. You can turn in programs and homeworks only if your SL agrees to accept them. You may not take exams.
Miscellaneous University Policies:
See Also: | • Fall 2015 Dates and Deadlines: http://registrar.arizona.edu/dates-and-deadlines/view-dates?field_display_term_value=154 |
If you find yourself thinking about dropping this (or any other) class, first make sure that that's what you really want to do. Chatting with me or your academic advisor may help. If you drop within the first two weeks of the semester, there will be no notation on your transcript; to an employer, it will be as though you'd never enrolled. During the third through the tenth weeks, a drop will be recorded on your transcript by a 'grade' of "W" ("withdrawn"). After the tenth week, dropping becomes a challenge, because you will need to provide documentation to the dean's office explaining why you were unable to drop the class during the first ten weeks of the semester.
See Also: | • Office of Curriculum and Registration Grading Policy Manual: http://www.registrar.arizona.edu/gradepolicy/incomplete.htm |
• UA General Catalog's Grades and the Grading System: http://catalog.arizona.edu/2015-16/policies/grade.htm |
The university's course catalog contains all of the details about incompletes, but here's the key sentence:
The grade of I may be awarded only at the end of a term, when all but a minor portion of the course work has been satisfactorily completed. |
The phrase "a minor portion" is accepted to mean "20%". To qualify for an incomplete, a student must have maintained a passing grade for the class until the term is nearly complete, and then, due to an unusual and substantiated cause beyond the student's control, the student is unable to complete the class work. In short, you can't get an "I" just because you aren't happy with your grade.
See Also: | • UA Disability Resource Center Student Services: http://drc.arizona.edu/students |
• UA SALT Center: http://www.salt.arizona.edu |
The university and the Disability Resource Center (DRC) have asked all instructors to include the following text in class syllabi:
It is the University’s goal that learning experiences be as accessible as possible. If you anticipate or experience physical or academic barriers based on disability or pregnancy, please let me know immediately so that we can discuss options. You are also welcome to contact Disability Resources (520-621-3268) to establish reasonable accommodations. |
Please be aware that the accessible table and chairs in this room should remain available for students who find that standard classroom seating is not usable. |
Additional help is available from the UA Strategic Alternative Learning Techniques (SALT) Center. SALT provides fee-based services for students with various learning disabilities.
Under the guidelines of the Rehabilitation Act of 1973 and the Americans with Disability Act of 1990, students are obligated to notify the school that they need accommodation.
See Also: | • Student Assistance from the Dean of Students: http://deanofstudents.arizona.edu/student-assistance/students/student-assistance |
• UA Campus Health Counseling and Psych Services (CAPS): http://www.health.arizona.edu/caps.htm | |
• UA "Notice.Care.Help." Form: https://arizona-advocate.symplicity.com/care_report/index.php/pid140439? |
If you know of a student (including yourself) who appears to be struggling and in need of help, of any form, the university offers a range of services. Help is available from the links above; please don't hesitate to take advantage of it.
See Also: | • UA Nondiscrimination and Anti-harassment Policy: http://policy.arizona.edu/human-resources/nondiscrimination-and-anti-harassment-policy |
• UA Policy on Disruptive Behavior in an Instructional Setting: http://policy.arizona.edu/education-and-student-affairs/disruptive-behavior-instructional-setting | |
• UA Policy on Threatening Behavior by Students: http://policy.arizona.edu/education-and-student-affairs/threatening-behavior-students | |
• Hazing Policy of the University of Arizona: http://policy.arizona.edu/education-and-student-affairs/university-arizona-hazing-policy |
The university takes a very dim view of antisocial behaviors on campus. In particular, if you're upset with me or the TA, please talk directly with us, calmly and with facts at hand, about your concerns.
Caveat:
The above schedules, policies, and procedures are subject to change. Whenever possible, changes will be announced to the class before the on-line version of this document is altered.