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.
Louis Yu will be the classroom instructor for this course. But professor Louis Yu and Jeff Engelhardt will be the lab instructors. For more information on our availability, please see our contact info.
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-f20/.
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.
This semester, due to COVID-19, the formats for lectures and labs differ greatly from previous semesters. For the lecture portion of this course, each week video lectures will be posted before 11:30AM on Monday and on Wednesday. A synchronized ZOOM lecture will be held 11:30AM - 12:20PM every Friday.
The attendance for the Friday synchronized ZOOM lectures and all the labs are required. For the synchronized ZOOM lectures, students will typed out their names at the start of the lecture via chat to indicate their presence.
For the first few weeks students will attend the lab via ZOOM. Lab attendances are also mandatory. Your lab instructors will also record your attendance. Students will typed out their names at the start of the lab via chat to indicate their presence.
Attendance, both physical and mental, is required. I reserve the right to lower your attendance grade if you miss a class or show up late.
Everyone will start with 5 points of attendance grade at the beginning of the semester (attendance is worth 5% of the final grade). During the semester, points will be deducted according to the following:
Should you need to miss a class or lab for any reason, you are still responsible for
the material covered in there. This means you will need to make sure
that you understand the reading from that day; you should ask another student
for the notes from that day, and you should make sure that you understand what was covered.
If there is a project due that day, you should be sure to submit it (electronically) on time (thus, do not leave your projects to 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 that you stay home, you should do so,
and I request that you email me as not to receive any deduction on your attendance grade.
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 midnight on the date specified.
If you submit
the report late, your grade will drop 5% per day late or fraction thereof (please note that one second passes the due date/time is one day late).
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.
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 Monday/Tuesdays and Wednesday/Thursdays, we will meet via ZOOM (for the first few weeks at least). 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, the lab instructors will cover 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.
During each video lecture, I will give out homework questions. The homework questions are fairly simple and they are "hidden" within each video (i.e., I will give those out at some point during the video). The intention here is for you to watch each entire video lecture. For each week's video lectures on Monday and on Wednesday, the solutions for the corresponding homework problems are due on Friday by midnight (please see schedule for details). If a video contains questions to a particular homework set, I will indicate as such in the name of the corresponding video lecture. (for example: "Video Lecture 1, containing questions to Homework 1").
The homework problems are worth 11% of your final grade. Each solution for a homework problem will be graded as a "pass" or "fail". In some cases, I will also provide comments regarding your solutions. Your final score for homework is based on the fraction of "pass" you had recieved.
There will be three intra-term tests during the semester (please see schedule for details). 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. In general, the written part will be held during lecture time and the programing part will be held during lab time (with the exception of the last test where the written part and the programming part will be held together on the last day of class). Please see the course schedule on when each part of the intra-term tests is scheduled.
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.
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.
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%.
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.
To help keeping track of the effort you had put into the course, you can earn 3% bonus points on tests and the final by doing the following:
The grade breakdown for the course is 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.
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.
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.
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/).