Marquette University, view of Wissonsin Avenue  

Introduction to Computer Science

Introduction to the Course

This class is about computing from many different angles. Part of the class is an overview of the discipline as it is right now. Another part of the class is an introduction to programming for non-programmers. We utilize Python, as Python is useful for digital humanities as well as the sciences. Finally, you will experiment with a small system, an Arduino, to introduce you to the world of embedded computing and electronics. The aim of this class is not to make you a programmer, but to allow you to understand the world of programming.

As Marquette students, you should have signed the honor's code. Violation of the honor's code will be dealt with in the humane way that the university committee on academic misconduct offers. If you collaborate with a person on homework, make a statement to this purpose. If you collaborate with a person on examinations or quizzes, you are violating the honor's code.

This class is intended to be an inverted class and I expect you to study the topic of the class before we meet. As we might have to move to a complete on-line format, you will have to attend zoom meetings at the scheduled class time. We will spend the class time deepening your understanding by lectures on particular difficult topics, activities, and quizzes. There is no make-up for missed quizzes.

The university has a policy of automatic drops for non-attendance, equivalent to two weeks of classes. This means that you will be dropped from the class, if you have not attended 6 class sessions. Your attendence is measured by your participation in the quizzes.

Homeworks are due on time. If your homework has mistakes, I might give you a chance to improve your answer.

Please monitor your grading, the interface of D2L makes it easy to loose freshly entered grades.


Here is the complete syllabus. --Click here.--

Office Hours

  • Thomas Schwarz MTW 1:30 pm - 2:30 pm or by appointment. (I am serious about the latter, just send me email.) I am going to host a zoom meeting with link and Passcode: 834069. Meeting ID: 812 5846 1828 Passcode: 834069

Piazza Discussion Board

Week 1


Week 1

Monday, Jan 25, 2021

Wednesday, Jan 27, 2021

Friday, Jan 29, 2021

Week 2

Monday, Feb 1, 2021: Python scripts

Wednesday, Feb 3, 2021: Conditional Execution

Friday, Feb 5, 2021: Theoretical Computer Science

Week 3

First Project: Due Feb. 28, 2021

Monday, Feb. 8, 2021: Python for loops

Wednesday, Feb. 10, 2021: Python for loops

Friday, Feb. 12, 2021: Computer Organization

Week 4

Monday, Feb. 15, 2021: Python Functions

Wednesday, Feb. 17, 2021: Python Lists

Friday, Feb. 19, 2021: Software

Week 5

Monday, Feb. 22, 2021: Python Strings

Wednesday, Feb. 24, 2021: Operating Systems

Friday, Feb. 26, 2021: Software

Second Python Project

Due March 15

Week 6

Monday, March 1, 2021

Wednesday, March 3, 2021

Friday, March 5, 2021

Week 7

Monday, March 8, 2021

Friday, March 12, 2021

Population data pop file Population data pop file

Week 8

Monday, March 15, 2021

Wednesday, March 17, 2021


Friday, March 19, 2021

Third Python Project

Due March 28, 2021

Week 9


Monday, March 22, 2021

Wednesday, March 24, 2021

Friday, March 26, 2021

Fourth Python Project

Due April 5, 2021

Week 10

Monday, March 29, 2021

Wednesday, March 31, 2021

Monday, April 5 2021

Wednesday, April 7 2021

Friday, April 9 2021

Monday, April 12 2021

Embedded Systems using the Arduino Platform

Wednesday, April 14 2021

Friday, April 16 2021

Monday, April 19 2021

Wednesday, April 21 2021

Friday, April 23, 2021

Monday, April 26, 2021

Wednesday, April 28, 2021


Friday, April 30, 2021

Monday, May 3, 2021

Friday, May 7, 2021


The final (Tuesday, 8:00 - 10:00 ) will be administered via the usual Zoom and a Zoom dropbox. There is no "presence Final".


Mandatory Arduino Project (due April 26)

Program the Arduino to mimic a traffic light with a green, a yellow (amber), and a red LED. The phases are

  • A solid red light for 6 seconds
  • An amber light for 2 seconds
  • A green light for 4 seconds
  • A flashing green light for 2 seconds
  • An amber light for 2 seconds
  • A solid red light and the cycle starts over again

You need to hand-in a pdf containing your sketch, an image of the set-up and a mp4 of your project via a D2L drop-box. Alternatively, you can show it to me after class.

Final Arduino or Python Project

Create either an Arduino project that uses both output and input. Hand-in as before. Alternatively, create a graph based on real world data that allows to draw comparisons, e.g. infant mortality over the last decades for different countries. Make sure your graph has a title and axes labels.

An Advanced Project in Lieu of Final

A sufficiently more involved project can replace your last project and the final. You need to obtain approval from me.


Please submit solutions to the final in the dropbox. Please create a pdf.