Class logistics
| Sections | section 1: MWF 8:30, and 2: MWF 9:40, both in OLRI 258 |
| Website | Moodle |
| Instructor | Dan Drake |
| Office | OLRI 112 (121, if you must) |
| ddrake1@macalester.edu | |
| Office Hours | MW afternoons; see my Google calendar and make an appointment – but, in practice, just stop by my office. (This may change if needed – tell me if something else would work better.) |
| Textbook | How to Think like a Computer Scientist (available for free online) |
| Software | Python, a high-level programming language. We’ll edit and develop Python code with the PyCharm Python programming environment |
There is also sections 3 and 4, MWF 10:50 and 12:00 with Lian Duan. They will closely track our sections.
Course content
This course will introduce you to the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw from the breadth of computer science, with an emphasis on two major application areas: multimedia processing (images, sound, and text) and manipulating text and spreadsheet data. Course work will use the Python programming language and the PyCharm development environment.
Learning goals
Here are (some!) of the learning goals for this course. In rough order from the most low level, simplistic cognitive skills, attitudes, and abilities, to those that are more complex and sophisticated:
- Learn to write Python code to solve programming problems.
- Learn about basic concepts of computer science.
- Gain skills related to debugging programs and develop problem-solving skills from investigating their behavior and finding bugs.
- Gain a better understanding of computers and technology in general and be able to make good decisions in that realm.
- Analyze the broader effects of algorithms and technology on our society and culture.
- Foster an attitude that technology is something you can create and control.
Grading
Preparation, participation & in-class activities: 15%
This component will reflect several things, weighted roughly equally.
- Your preparation for class, including your reading reflections and related activities. These will be evaluated based on effort & completion.
- Your progress on the Engagement and participation contract. You will first complete that “contract”; there will be several assignments during the semester when you will reflect on and assess your progress; finally, at the end of the semester, you and I will collaboratively assign yourself a grade for this part of the grade component.
- In-class activities. These will be graded complete/not complete: if your submission reflects a genuine, thorough, and good-faith effort to complete the activity, you will receive full credit.
Homework: 30%
This component is essential to develop your understanding. Homework should challenge you to master new material, focusing on the main concepts of the course. Homework assignments will be individual work.
Quizzes: 30%
Every other week you will have a 30 minute quiz on recent materials. You may use paper resources to take the quiz. All quizzes will be weighted equally.
Project: 15%
At the end of the semester, you will work on a project in a group of two or three students, creating a larger-scale program focusing on a program of your choice. Your project score will be an average of scores from each component of development: proposal, design, progress report, final result, and class demonstration.
Final exam: 10%
There will be a cumulative final exam held during the designated final exam period. So that I have a sense of how many students are actually reading this syllabus, please email me about some music you like that I might play during class.
Policies
MSCS Community Guidelines
All students in MSCS courses are expected to follow the community guidelines laid-out in this document.
These guidelines were created by the MSCS faculty and staff in our ongoing efforts to create a community that is more welcoming, supportive, and inclusive. They describe our expectations and how to respond to or report issues that arise.
Late work: All work is due by the date and time indicated on the assignment in Moodle. Reflective activities & in-class activities will NOT be accepted if turned in late. For homework, I understand that sometimes problems arise, therefore you have “flex days” to use in any way you choose before a late penalty of 10% a day will be applied. You have 3 flex days for the entire semester – you do not need to provide me with a reason for using a flex day – simply email me and tell me how many of your flex days you would like to use. Please contact me if you will be absent from class for any reason so that work can be completed in a timely manner.
Attendance: Attendance and participation in class is expected. Students are responsible for all material assigned and discussed in class. If you are unable to attend class for any reason, please contact me so that we can work out a schedule for you to complete your missed work in a timely manner.
Preceptors: There will be preceptors available in class and outside of class times. I will post a schedule on Moodle as soon as it is available.
Special Accommodations for Students: I am committed to supporting the learning of all students in my class. If you are encountering barriers to your learning that I can mitigate, please bring them to my attention. Reasonable accommodations are available for students with documented disabilities. It is important to meet with someone from the Center for Disability Resources early in the semester to ensure that your accommodations are approved and in place to begin the semester successfully. Contact the Center for Disability Resources by emailing disabilityresources@macalester.edu or by calling 651-696-6974 to schedule an appointment and discuss your individual circumstances.
Academic Integrity & Artificial Intelligence (AI) Use Policy: The work you turn in must be your own. Discussion of concepts is encouraged; however, you must have a full understanding of all work you submit as your own. Copying or viewing of other’s work is prohibited (either a classmate or online). Violation of this policy will result in no credit for the work in question.
AI can both interfere with and enhance our capacity to learn. We must be mindful of when it might hinder us and when it might provide us with new understanding or assistance.
A guiding metaphor is becoming stronger by lifting weights. You lift the weight into the air and become stronger. Using AI coding assistance is like using a robot to lift the weights into the air – yes, the outcome seems the same in some way (the weights are in the air) but you do not become stronger.
In this course, you “get stronger” (learn Python programming and related ideas) by “lifting weights” (thinking about how to write Python code and solve programming problems). In the context of this course, using any kind of AI assistance to write code eliminates that thinking, and you will be correspondingly weaker.
At this stage of learning, the hard work of figuring things out is a crucial, utterly necessary part of learning.
As is the case for all courses at Macalester College, Work submitted by you for this class must be your own work. For the purpose of academic integrity, solutions generated by AI of any kind are considered the use of a prohibited source. Note that our PyCharm development environment (and the related IntelliJ IDEA application) has some AI-related features that can be configured, and use of those is a violation of this policy.
If you have any questions about what constitutes academic honesty in this course please feel free to contact me to discuss your concerns.
Support
See https://www.macalester.edu/academic-success for a nice landing page with links to many of the resources Macalester provides to ensure your success.
I am committed to providing assistance to help you succeed in this course. I love programming, and I hope you will love it too.
If anything poses a risk of interfering with your ability to thrive in this course or on this campus, please discuss it with me. This includes health issues (both mental and physical), disabilities (both documented and undocumented), schedule conflicts, competing obligations, life changes, and personal challenges. We will talk about what you need, and form a strategy for this course together. You don’t need to share any more personal detail than you are comfortable sharing. Just let me know that you need support, and I will do my best to support you.
Official accommodations are available for students with documented disabilities. Visit Macalester’s Disability Services site for more information on the accommodations process or to make an appointment.. Note that even if you do have an official accommodation, it is still your responsibility to contact me.
The golden rule:
| ⚠️ Never suffer in silence! |
And I guess this is the silver rule:
| ⚠️ Talk to me earlier rather than later. |
Do not wait! These kinds of problems are always much easier to solve when we work on them earlier in the semester, rather than later.
A bit more about me
My journey to teaching at Macalester isn’t quite like that for typical faculty: the usual path is undergrad → graduate school → perhaps a postdoc or 1-2 year visiting position → Macalester.
My own path includes a PhD in mathematics from the U of M; five years at KAIST, a science and technology university in Daejeon, South Korea; other positions at the rather Macalester-like University of Puget Sound and the not-at-all-Macalester-like University of Wisconsin–Madison.
Then I worked as a software developer at Epic, a health care software/tech company, for nearly ten years.You can expect lots of ancedotes and war stories about surgery, implants, scheduling, hospitals, operating rooms, anesthesia, and so on.
And now here I am at Macalester and in COMP 123 with you.
The more personal side
- I like origami and crochet; both really appeal to me as a math person.
- I’m a super morning person. If you want to meet and can do it, very early works for me.
- I’m a bit on the autism spectrum. In practice, this likely will not even be noticeable (being a bit on the spectrum, as they say, is very common among math and CS faculty) but I do sometimes find noisy, crowded environments a bit challenging.
- Let’s play a version of “two truths and a lie”. At least one of the following statements is true, and at least one is false.
- I have crashed a Segway in Crete.
- I have crashed a bike in Hokkaido.
- I have fallen off a mule in the Andes mountains.
- I got hit by a car at the Arc de Triomphe.
- I once accidentally set myself on fire.
- I can juggle four flaming torches.
Come to my office hours and tell me which ones you think are true or false!