MCS 178: Introduction to Computer Science II (Fall 2012)

Course Description


In this course, we will continue sampling the perspectives and methods of computer science. The first and most apparent difference you will observe is the change in notation for expressing algorithms, namely Java instead of Python. Although there will be some review of elementary matters in order to get you up to speed in Java, a major focus of the course will be the use of object-oriented analysis and programming, and we will try to get there as soon as possible. Along the way, we will develop tools to analyze the efficiency of algorithms, methods for writing more efficient algorithms, and ways to write more complicated data structures. This course will involve much programming, since I view this as an important way for you to understand the topics we will be studying. Furthermore, I will give you a broad range of programs from many disciplines, since I believe it is important for computer scientists to apply their knowledge to other ares. Finally, we will consider the notion of computations with changing state by looking "under the hood" at computers.

Instructional Staff and Contact Information

San Skulrattanakulchai will be the classroom instructor and Max Hailperin will be the lab instructor. For information about our availability, see our contact info.

World Wide Web

All course materials will be available through my World Wide Web page. The URL for this course is After this syllabus I will give hard-copy hand-outs only to those students who ask for them.


Our main textbook is Introduction to Programming In Java: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne. I recommend that you order a copy in advance, either through The Book Mark or through another seller of your choice. The Book Mark cannot be counted on to have a copy on the shelf if you don't pre-order. The textbook authors maintain a website for the book at

We will also use selected sections of Concrete Abstractions: An Introduction to Computer Science by Max Hailperin, Barbara Kaiser, and Karl Knight. You will not have to buy this, since it is available for free on the web.

Class and Lab Attendance Policy

Attendance, both physical and mental, is required. I reserve the right to lower your grade if I feel you are missing or showing up late too often. Should you need to miss a class or lab for any reason, you are still responsible for the material covered in there. This means that you will need to make sure that you understand the reading for that day, that you should ask another student for the notes from that day, and that you make sure that you understand what was covered. If there is an assignment due that day, you should be sure to have someone hand it in. You do not need to explain why you missed a class unless there is a compelling reason to do so.

Projects and Lab Days

In the course of the semester, you will complete 8 projects. In each case, I will indicate what I expect of you, though not as completely as was done in MCS-177. A project report that meets those expectations is due at the start of class on the date specified. If you turn in the report late, your grade will drop 5% per day late or fraction thereof. If you are too sick to complete a report on time, you will not be penalized. Simply write "late due to illness" at the top of the report, sign your name and hand it in. Other circumstances will be evaluated on a case-by-case basis.

On Tuesdays and Thursdays, we will meet in the OHS 326 computer lab. One or more of those lab days will be provided for you to work on each project. However, you will generally need to spend additional time on the project outside of class.

Some of the lab days are not for project work. Instead, the syllabus lists a topic from the textbook with the prefix "In lab:". On these days, I will be covering material from the book, somewhat like on a class day, but in an environment where I can ask each of you to try things out on your individual computers. (By contrast, in the classroom, only one student at a time can use the keyboard of our shared computer.) For each of these days where a textbook topic is covered in lab, the same topic is listed on the following class day. We will have this extra class time to go over the topic some more if you need it. Any remaining time will be available for us to talk about topics that are not in the textbook.


I do not currently intend to assign you homework, but reserve the right to do so, should I fell that it would benefit you.


There will be two intra-term tests and a final. I am expecting to do at least one these in two parts: a written part and a programming part done on separate days. If not, I will schedule a 2-hour block in the evenings (with alternate times for those who have obligations in the evening). The final will be two hours, and all of the tests will count the same value in you final grade (see below). I will publish the time for the final when it is set.


You will receive a score out of a 100% scale for each of your tests and projects. These scores will be on the standard 90-80-70-60 scale. Your test and final scores will be averaged, and that will be half or the course grade. The other half will be the the average of your project scores. However, there are two caveats to the rules given above:

  • If I believe certain of the labs are significantly longer than the others, I will give them a higher weighting factor.
  • If I do assign homework, I will modify the computations slightly, probably by reducing the projects part.

Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if you feel I have been especially unjust.

As noted above, I reserve the right to lower your grade if I feel you are missing or showing up late too often to classes or labs.

Academic Integrity

You are expected to to adhere to the highest standards of academic honesty, to uphold the Gustavus Honor Code and to abide by the Academic Honesty Policy. A copy of the honor code can be found in the Academic Bulletin and a copy of the academic honesty policy can be found in the Academic Polices section of the Gustavus Guide.

Any substantive contribution to your project report by another person or taken from a web site or publication should be properly acknowledged in writing. Failure to do so is plagiarism and will necessitate disciplinary action.

The same standards regarding plagiarism apply to team projects as to the work of individuals, except that the author is now the entire team rather than an individual. Anything taken from a source outside the team should be be properly cited.

One additional issue that arises from the team authorship of project reports is that all team members must stand behind all reports bearing their names. All team members have quality assurance responsibility for the entire project. If there is irreconcilable disagreement within the team it is necessary to indicate as much in the report.

Disability Services

Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College's services, then you should speak with the Disability Services Coordinator, for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services is located in the Advising and Counseling Center.

Disability Services Coordinator Laurie Bickett (6286) can provide further information.

Help for Students Whose First Language is not English

Support for English Language Learners (ELL) and Multilingual students is available via the College's ELL Support staff person, Andrew Grace (7395). He can meet individually with students to consult about academic tasks and to help students seek other means of support. The ELL Support person can also consult with faculty members who have ELL and multilingual students enrolled in their classes. The College's ELL staff person can provide students with a letter to a professor that explains and supports academic accommodations (e.g. additional time on tests, additional revisions for papers). Professors make decisions based on those recommendations at their own discretion. In addition, ELL and multilingual students can seek help from peer tutors in the Writing Center.