MCS 178: Introduction to Computer Science II


In this course, we will continue our exploration of the perspectives and methods of computer science. The main difference from Introduction to Computer Science I is the change in the programming language from Python to Kotlin. In Kotlin, we will learn to develop programs in various modern programming styles: procedural, object-oriented, and functional. Along the way, we will develop tools to analyze program efficiency, methods for writing efficient algorithms, and data structures. This course will involve much programming from many disciplines, ranging from physics, biology, the visual art, music, and recreation mathematics. We will also look “under the hood” at computers and learn the rudiments of a simple assembly language.


There is no required textbook for the course. However, you need to study the lecture notes and attend classes, since the lecture notes cannot cover everything we’ll be doing in class.

If owning a textbook makes you feel more secure then you can buy Head First Kotlin: A Brain-Friendly Guide 1st Edition By Dawn Griffiths and David Griffiths. We will not cover Kotlin in the same spirit as the book though and buying it is totally optional.

In prior semesters we used the textbook Introduction to Programming In Java: An Interdisciplinary Approach by Robert Sedgewick and Kevin Wayne. The authors have since updated the book. Their second edition is still recommended for its excellent collection of programming exercises.

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


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.

Lab Days and Projects

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.

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


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


About half of the course grade will be the the sum of all your project scores. About the other half will be the sum of all your exam scores (intra-term written tests, intra-term programming tests, and the final exam). Your letter grade for the course will be recorded as follows:

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

Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it.

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 Honesty

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 must be done independently. It must not be based on help from others or information obtained from sources other than those approved by the instructors (e.g., resources linked from the course webpage and materials provided in the lecture notes). Effective learning is compromised when this is not the case.

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.

You are expected to be familiar with the college Academic Honesty Policy and to comply with that policy. Full descriptions of it and the Honor Code can be found in the Academic Catalog (online at If you have any questions about it, please ask. A first violation of the honor code will result in a grade of 0 on the project or exam in question. A further violation will result in an automatic F for the course and a notification to the Office of the Provost.

Accessibility Resources

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. 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 ( (x7227). Accessibility Resources Coordinator, Katy Clay, (), can provide further information.

Help for Multilingual Students

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 ( Multilingual and Intercultural Program Coordinator (MIPC), Carly Overfelt (). Carly 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 Carly know as soon as possible. In addition, the Writing Center ( 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. You can learn more about the broad range of confidential health services available on campus at and

Title IX: Sexual Misconduct Prevention and Resources

Gustavus Adolphus College recognizes the dignity of all individuals and promotes respect for all people. As such, we are committed to providing an environment free of all forms of discrimination including sexual and gender-based discrimination, harassment, and violence like sexual assault, intimate partner violence, and stalking. If you (or someone you know) has experienced or is experiencing these types of behaviors, know that you are not alone. Resources and support are available; you can learn more online at

Please know that if you choose to confide in me, I am mandated by the College to report to the Title IX Coordinator, because Gustavus and I want to be sure you are connected with all the support the College can offer. Although it is encouraged, you are not required to respond to outreach from the College if you do not want to. You may speak to someone confidentially by contacting the Sexual Assault Response Team (SART/CADA), Chaplains, Counseling Center, or Health Service staff; conversations with these individuals can be kept strictly confidential. SART/CADA can be reached 24 hours a day at 507-933-6868. You can also make a report yourself, including an anonymous report, through the form at

Research Help

You can always get help with your research at the library. Reference librarians will help you find information on a topic, develop search strategies for papers and projects, search library catalogs and databases, and provide assistance at every step. Drop-ins and appointments are both welcome. Visit for hours, location, and more information.