MCS-178: Introduction to Computer Science II (Spring 2018)

Overview

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 areas. Finally, we will consider the notion of computations with changing state by looking "under the hood" at computers.

Instructional Staff and Contact Information

Louis Yu will be the classroom instructor for this course. Jeff Engelhardt will be the lab instructor. For more information on our availability, please see our contact info.

World Wide Web

All course materials will be available on the course website and on Moodle. The URL for the course is http://homepages.gac.edu/~lyu/teaching/mcs178-s18/.

Textbook

Our main textbook is Introduction to Programming In Java: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne. The textbook authors maintain a website for the book at http://www.cs.princeton.edu/IntroProgramming.

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.

Projects and Lab Days

For this course, you will need to complete 7 projects. In each case, I will indicate what I expect of you. A project report that meets those expectations is due before the start of class on the date specified. If you submit the report late, your grade will drop 5% per day late or fraction thereof (with the exception of the last project, in which no late project will be accepted). If you are too sick to complete a report on time, you will not be penalized. However, you need to talk to me or email me as soon as possible, and provide the necessary doctor's note. Other circumstances will be evaluated on a case-by-case basis. In general, you should talk to me or email me (asap) around the time of the incident.

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 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. For each of these days where a textbook topic is covered in the 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.

Homework

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

Tests

There will be two intra-term tests during the semester and a final exam as scheduled by the registrar. If you have a conflict with a testing time, please contact me as soon as possible to make an alternative arrangement.

Each intra-term test consist of two parts: a written part and a programming part done on separate days. In general, the written part will be held during lecture time and the programing part will be held during lab time. Please see the course schedule on when each part of the intra-term tests is scheduled. The final will be two hours, I will publish the time for the final when it is set.

One of the most common things students had told me is that they know the material, they just don't do well on exams. I've met students who claim that, but when you press them, it turns out they don't know the material after all. If you can't answer questions about the material or apply the knowledge in an unfamiliar context, you do not know it. You might have vague impressions of specific ideas, but if you can't describe them in detail and relate them to other ideas, you don't know the material.

For this reason, I am introducing a cut-off point for MCS-178 this semester. If the average score for all your tests (two programming tests and two written tests) and the final exam is lower than 60%, you will automatically recieve an F for your final letter grade; I will not consider the rest of the components (such as projects, attendance and participation) when computing your final grade. If the average score for all your tests and the final exam is greater than 60%, I will then compute your final percentage and letter grade according to the grading guide below.

In general, if the average score of all your tests (two programming tests and two written tests) before going into the final is lower than 70%, and you are considering to be a Computer Science major, you need to schedule a meeting and talk to me before the final.

Attendance and Participation

Attendance, both physical and mental, is required. I reserve the right to further lower your grade if I feel you are missing or showing up late too often.

Should you miss a class for any reason, you are still responsible for the material covered in there. If there is a project report due that day, you should be sure to submit it (electronically, via Moodle ) on time (thus, do not leave your work untill the last minute).

If you have influenza-like symptoms (temperature over 100 with headaches, sore throat, or cough), please call Health Service. If they say you should stay home, you should do so, and I require that you email me.

This course relies heavily on participations. Students are expected to actively participate in classroom discussions. You may use your laptop in class. However, the use of the computer is restricted to activities deemed appropriate by the instructor. Playing games, watching YouTube, reading e-mail, checking Facebook, and working on assignments for other courses are a few examples of inappropriate activities that can be distracting to the instructor and other students in the course. Any repeat instances from an individual of such will result in further grade deduction.

Finally, one thing I have found during my past 4 years of teaching at Gustavus is that a student's grade is directly related to how deligent he/she is. That is, if a student attends classes regularly, puts efforts into homework and projects, pays attention during classes (as opposed to doing other activities), participates in discussions, and goes to my office hours whenever he/she needs help, it is guranteed that he/she will recieve a good grade. It seems like an obvious concept, but I am constantly surprised by how some students do not seem to connect efforts with results, and that some still insist on taking short cuts.

For this reason, I am introducing the attendance and participation grade sheet. It is available on Moodle. On the gradesheet, I have listed all the attributes I expect a student in MCS-178 should have in order to do well in this course. During the semester, if I observe that you are lacking in a particular attribute, I will make a note of it. At the end of the semester, I will send a summary email to each student and discuss if he/she had met the requirements. For each attribute missing, I will take off 1% of the course total. In total this is worth 5% of the final grade. More importantly, I hope that the discussion I have with you will help you with work and study in the future.

Bonus Points

For this course, I encourage questions, discussions, peer-helping, and explorations. So, I am bringing back the bonus point system. During the semester, you are strongly encouraged to ask questions (during or after lectures) and to take part in discussions. If I feel that you had made a good contribution, you will recieve one bonus point.

Another way of earning bonus points is for you to take a leadership position during group work or classroom coding exercises.

Finally, you will earn bonus points if you have ideas about extra work (such as open questions) you can do and have done them outside of class. You can talk to me about what you had done and show me your work. I will give you bonus points accordingly.

The maximum amount of bonus points per student is 12. They are worth 3 percent of your final grade. That is, if by the end of the semester you had received 12 bonus points from me, you can raise your final percentage by 3%.

Effort

For this course, ideally your grade should be a reflection of the effort you had spent. At the end of the semester, if you tell me that you have put in a lot of efort but you recieved a bad grade, I will ask you the following: "did you attend all the lectures?", "did you attend all the labs?", "did you pay attention in classes?", and finally, "did you take advantage of the overabundance of help offered to you?". If your answer to any of those questions is "no", then you did not put enough efforts into the course.

Please keep in mind that there is no such course which allows you to miss lectures, labs, projects or homework, but somehow miraculously implant the necessary knowledge in your head; no matter how "good" or "bad" the course is. Academia demands decipline.

The Bonus Points System on Tests and Final

It should be very clear to you that there is help available most days of the week (from either me or the tutors). What's more, you are just an email away from arranging a tutoring session with me or the tutors at a time which works for you. In other words, I had made it such that at any time, if you spent the effort into seeking, help should come to you; so the deciding factor here is clearly the effort you spent.

To help keeping track of the effort you had put into the course, other than the participation and attendance grade sheet, you can earn 3% bonus points on tests and the final by doing the following:

You must use the following progress form to record your entries. Please use one form for each test.

Grading

The grade breakdown for the course is as follows:

The perfect score for this course is 100%. Each component of the course will be calculated from its raw score to its corresponding weight in the total grade. Your letter grade for the course will be recorded as follows:

A: 94-100 B+: 87-89 C+: 77-79 D+: 67-69 F: < 62
A-: 90-93 B: 83-86 C: 73-76 D: 63-66
B-: 80-82 C-: 70-72

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.

Finally, this semester we are using Moodle (http://moodle.gac.edu/) to keep track of your scores. The pro of doing so is that you know your score for a component as soon as it is graded. This will give you a pretty good idea of your current standing going into a test or exam. Please see The Guide for Checking Your Grades Using Moodle for the general updating schedule and the instructions for checking your scores.

Honor

Any substantive contribution to your project report by another person or taken from a website or publication should be properly acknowledged in writing (by citing the source). 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 properly cited.

As a guideline for collaboration, it is ok for students to get together in small groups to go over material from the lectures and text, solve problems from the text, study for exams, and discuss the general ideas and approaches to projects. However, work to be turned in, including projects and homework exercises, must be done independently. This means that the work you or your team turns in must represent only your own work. It must not be based on help from others or information obtained from sources other than those approved by the instructors (e.g., the text, the course webpage, and materials provided in the lectures). Effective learning is compromised when this is not the case.

Accordingly, you should never read or copy another student's code or solutions, exchange computer files (or pieces of papers with solutions written on them), or share your code/solutions with anyone else in the class until after both parties have submitted the assignment. Under no circumstances may you hand in work done by someone else under your own name.

As a student at Gustavus you are expected to uphold the Honor Code and 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 Policies section of the Gustavus Guide.

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 staff, 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 (www.gustavus.edu/advising/disability/) is located in the Academic Support Center. Disability Services Coordinator, Kelly Karstad, (kkarstad@gustavus.edu or x7138), can provide further information.

Help for Students Whose First Language is not English

Support for English learners and multilingual students is available through the Academic Support Center's Multilingual Learner Academic Specialist, Sarah Santos (ssantos@gustavus.edu or x7197). The MLAS can meet individually with students for tutoring in writing, consulting about academic tasks, and helping students connect with the College's support systems. When requested, the MLAS can consult with faculty regarding effective classroom strategies for English learners and multilingual students. The MLAS can provide students with a letter to a professor that explains and supports appropriate academic arrangements (e.g., additional time on tests, additional revisions for papers). Professors make decisions based on those recommendations at their own discretion. In addition, English learners and multilingual students can seek help from peer tutors in the Writing Center ( www.gustavus.edu/writingcenter/).