MCS-178: Introduction to Computer Science II (Fall 2024)

Overview

In this course, we will continue sampling the perspectives and methods in computer science. A major focus of this course will be on 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, I will give you a brief introduction on the software development process during labs.

Instructional Staff and Contact Information

Professor Louis Yu will be the classroom instructor for this course. Guarionex Salivia and Jeff Engelhardt will be the lab instructors (and for MCS-177, as the lab sections are now combined). 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 (https://moodle.gustavus.edu/). The URL for the course is http://homepages.gac.edu/~lyu/teaching/mcs178-f24/.

Textbook

Our textbook is called "MCS-178: Introduction to Computer Science II". It is customized for this course from Zybooks. The textbook contains a list of topics I selected and hoped to cover. It also contains some exercises and projects you will do. Thus, the textbook is required for this course. You must buy the textbook through the Book Mark and Slingshot.

Class and Lab Formats

There will be in-person lectures on Mondays, Wednesdays, and Fridays from 9:15am - 10:20am in Olin 328. In some cases (for example, if I get sick) lectures may be online (via Google Meet). I will make an annoucement in class for those cases and send out emails to you.

The labs will be on Tuesdays or Thursdays during the time slots in which you registered. Each MCS-178 lab session is two-hours per week and is combined with a corresponding MCS-177 lab session. The labs will be held in-person in Olin 326. There will not be an online option for labs, so attendance is important.

During each lab, activities will follow the Agile (Scrum and/or Extreme Programming) methodology best practices. Starting with a daily stand-up meeting, a mini lecture (from the lab instructor), followed by work time for 177 students (with 178 students helping following the pair programming principles), then a break, then work time for 178 students (with 177 students observing following the pair programming principles) and ends with a student written reflection.

Class and Lab Attendance

The attendance for all lectures and labs are required. I will be recording attendance at the start of each lecture and lab and they will be worth points in your final grade. This is because we will be covering materials that are essential to the course in both labs and lectures; thus it is important for you to attend both.

Everyone will start with 6 points of attendance grade at the beginning of the semester (attendance is worth 6% of the final grade, 3% for lectures and 3% for labs). During the semester, one point will be deducted if you miss either a lecture or a lab session. You are allowed 5 "free points" during the semester. You may use those "free points" for sick days, or simply "I am feeling overwhelmed and need a mental health day" (as mental wellbeing is important). 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 use one of your "free points".

If you foresee yourself needing more "free points" (for example, if you have an on-going health issue that you see may affect your attendence during the semester), you need to discuss that with me asap, and I have the right to accept or reject your requests based on the circumstances.

If you show up more than 10 minutes late (and miss the period in which you are to record your own attendance) to a lecture or a lab, I will make a note of it, and each case will result in one point deduction. If you forgot to record your attendance at the start of a lecture or a lab, I am not responsible to record your attendance for you (you would then need to use one of your "free points" and make sure to record your attendance next time).

Should you need to miss a class or a 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 or reading assignment due that day, you should be sure to submit it (electronically) on time (thus, do not leave your projects or reading assignment to the last minute). If you did not come to the lecture during which I have given out a project or reading assignment, you are still responsible to check for them yourself on Moodle, do them, and submit them.

Finally, we will be doing group work (such as daily stand-ups and pair programming) based on software engineering principles during labs. This means you will work with other students in your lab section. If you plan to miss a lab, your absence may affect other students in the lab. Please communicate with your team mates if you plan to miss a lab. If your absence affects your team mates' work, I have the right to lower your project points.

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 recieve an approval from me. 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 or 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.

Reading Exercises

Most weeks you will be given reading exercises as indicated by the Schedule (under "Reading Exercises Due"). These reading assignments serve as previews for the materials we will cover during following week. That is, before we cover the materials during lectures, you should read the corresponding Chapters in the textbook (as indicated under "Reading" in the the Schedule ) and do the requested exercises (as indicated under "Reading Exercises Due").

The reading exercises need to be done before the start of lecture on the date indicated by the schedule. There is no late submission for reading exercises. If you miss a submission deadline, you will recieve a "zero" for the corresponding reading exercises. Thus, you should always try to finish the reading exercises as soon as possible (and not wait until the last minute).

In total, the reading exercises are worth 10% of your final grade and are calculated based on the fractions of "correct" answers submitted (as autograded by the textbook).

Tests

There will be two intra-term tests during the semester and one final test at the end (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 may consist of two parts: a written part and a programming part. The two intra-term tests during the semester are one hour each and will be held during lectures (please see the course schedule on when each intra-term test is scheduled). The final test is held during the exam period. It is two hours long and consist of two parts: a written part and a programming part.

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.

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%.

The Bonus Points System on Tests

It should be very clear to you that there is help available most days of the week (from either me or the tutors). 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 each test by doing the following:

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. Please note that the final percentage calculated by Moodle is incorrect as it weights everything equally. To estimate your final grade in progress, you'll need to do your own calculation based on the grading scheme above.

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. At the minimal, you will recieve zero on the course component in which plagiarism is violated. For more serious cases, you will recieve zero in the course.

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 turn 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.

Gustavus Adolphus College is proud to operate under an honor system (for more information, please see here). The faculty and students have jointly created an Honor Board to enforce the Honor Code and the Academic Honesty Policy. Each faculty member is responsible for stating course penalties for academic honesty violations, and for defining the level of authorized aid appropriate to the work in their courses. Each faculty member is also required to report violations of the Academic Honesty Policy to the Provost's Office. It is your responsibility, as a student, to ask questions if you are not sure about situations such as when to cite a source, how to cite a source, sharing data with lab-mates, and avoiding inadvertent cheating when working in groups. It is also your responsibility to learn about the policy and the consequences for violations so please ask questions!

The overarching principle of the Academic Honesty Policy is that students shall submit their own work, in fairness to others and to self. Your Professor wants you, a developing scholar, to be able to take pride in your own academic work and to maintain your academic integrity. Citations must accompany any use of another's words or ideas that are not common knowledge. Quoting or paraphrasing from electronic sources without proper citation is as serious a violation as copying from a book or other printed source. A student may not submit work that is substantially the same in two courses without first gaining permission of both instructors if the courses are taken concurrently, or permission of the current instructor if the work has been submitted in a previous semester. Ask your Professor if you have questions about a particular assignment or kind of work. Please make sure you fully understand the rules related to online work, as it pertains to this course. Unauthorized aid during online exams and assignments is every bit as serious and inappropriate as it would be in an in-person course. In fact, in the online environment it is sometimes easier for faculty to detect violations.

The sanction in this course for a violation of the Honor Code involving plagiarism, copying another student on an exam, or other kinds of cheating on a single assignment will usually be an "F" on the plagiarized assignment or exam. For a more significant event, I, your Professor, reserve the right to assign you a grade of "F" for the course. In addition, for any Honor Code violation, I will notify the Provost's Office. A letter will be generated by the Provost's Office and sent to you. The letter will remain on file. There will be no further consequence, beyond the course penalty and the letter, if you do not commit any further Honor Code violations. Repeat offenses could ultimately lead to dismissal from the College. You have the right to appeal any Honor Code violation through an Honor Board hearing process. In this course, your Professor aims for you to learn how to cite sources properly, do your own work on all exams, and function as a scholar with integrity. Please feel welcome to ask questions about the important matter of Academic Honesty and let me know how I can best support your learning.

Academic Accommodations

Gustavus Adolphus College is committed to ensuring equitable and inclusive learning environments for all students. If you have a disability and anticipate or experience barriers to equal access, please speak with the accessibility resources staff about your needs. A disability may include mental health, attentional, learning, chronic health, sensory, physical, and/or short-term conditions. Students with a documented elevated risk of COVID-19 may also request academic accommodations. When appropriate, staff will guide students and professors in making accommodations to ensure equal access. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact them as early as possible. Accessibility resources staff are located in the Academic Support Center (https://gustavus.edu/asc/accessibility/) (x7227). Accessibility Resources Coordinator, Corrie Odland (codland@gustavus.edu), can provide further information.

Multilingual Student Support

Some Gusties may have grown up speaking a language (or languages) other than English at home. If so, we refer to you as "multilingual."" Your multilingual background is an incredible resource for you, and for our campus, but it can come with some challenges. You can find support through the Center for International and Cultural Education's (https://gustavus.edu/cice/) Multilingual and Intercultural Program Coordinator (MIPC), Pamela Pearson (ppearson@gustavus.edu). Pamela can meet individually for tutoring in writing, consulting about specific assignments, and helping students connect with the College's support systems. If you want help with a specific task (for example, reading word problems on an exam quickly enough or revising grammar in essays), let your professor and Pamela know as soon as possible. In addition, the Writing Center (https://gustavus.edu/writingcenter/) offers tutoring from peers (some of whom are themselves multilingual) who can help you do your best writing.

Mental Wellbeing

The Gustavus community is committed to and cares about all students. Strained relationships, increased anxiety, alcohol or drug problems, feeling down, difficulty concentrating, and/or lack of motivation may affect a student's academic performance or reduce a student's ability to participate in daily activities. If you or someone you know expresses such mental health concerns or experiences a stressful event that can create barriers to learning, Gustavus services are available to assist you, and include online options. You can learn more about the broad range of confidential health services available on campus at https://gustavus.edu/counseling/ and https://gustavus.edu/deanofstudents/services/.

COVID Policies in the Classrooms

All classrooms will follow the most up-to-date COVID policy of the college with regard to masking, social distance, food and beverage in the classroom, and sanitizing of technology and spaces. Individual faculty members may ask for additional COVID precautions at their discretion.