Alma College’s mission is “to prepare graduates who think critically, serve generously, lead purposefully, and live responsibly as stewards of the world they bequeath to future generations.”
Advanced data structures and algorithms, algorithmic analysis, and an introduction to distributed and parallel algorithms.
At the successful completion of this course, you will:
The required textbook for this course is Introduction to The Design and Analysis of Algorithms, 3rd edition, by Anany Levitin.
We will be using python at various points throughout the semester; I will generally expect you to learn enough python to get by, though we'll spend some time in class on some of the "algorithmically interesting" elements of python. I strongly encourage you to use Think Python, 2nd ed. as you come up to speed with python. You might also get something out the tutorials at hourofpython.com
I also endorse the use of PythonAnywhere; please sign up for a free account there to make it easy for us to share work and code. If you are inclined to install python on your personal machine—which I may ask you to do later in the semester—go all the way and install JupyterLab, which is a pretty nifty environment for working with python. (Alternatively, we may use a hosting service for JupyterLab that won't require you to install anything particular.)
I may record virtual meetings of this course. Any recordings will be available to students registered for this class. Students are expected to follow appropriate College policies related to the use of the recordings. You may only use these recordings to supplement your learning in this class. You are not permitted to reproduce, share with those not in this class, retain, or uploaded to other online environments these recordings. Doing so would be a breach of the Student Code of Conduct as it is not permitted by this syllabus addendum. If we plan any other uses for the recordings beyond this class, we will obtain appropriate consent from students identifiable in the recordings.
I am using some "nontraditional" approaches to grading in this course. Some are new to me (in that this is the first course I've used them with), and they may be new to you. My goals in arranging the course this way are twofold:
I don't want this to feel confusing or complicated, so please ask me questions about things that aren't clear. (You'll be helping me understand what isn't clear in the way I'm explaining things.)
Our time this semester will be divided into 6 roughly equal units (we will not be addressing all topics in the readings for each unit):
Our time in class will be organized along the lines of the pedagogy known as Team-Based Learning (you can also read a quick description of this here). You'll be organized into teams (probably two teams of 5-6 students each) for the entire semester; these teams only "exist" officially during class meetings; there is no team-work to be done outside of class. (In particular, "homework" you turn in must be your own work.)
Each unit will run as follows:
30% of your course grade will depend on this work: 10% will be your indidivual quiz scores, 10% will be your team quiz scores (every team member will get the same score), and 10% will be an end-of-semester peer evaluation that reflects your teammates' judgment of your contribution to the success of the team.
As I said above, 30%of your course grade will depend on what we do in class; the remaining 70% will depend on problem sets.
For the problem sets, we will use a mode of grading generally known as Specifications Grading. In essence this means:
You may be familiar with "Bloom's Levels of Learning," or "Bloom's Taxonomy," which is a way of thinking about how we acquire and apply knowledge (otherwise known as "learning"). This revised version of the taxonomy is a useful way of thinking about what you should expect to get out of a course on algorithms. For each unit this semester, you will have a problem set consisting of some "Remember/Understand" problems, some "Apply/Analyze" problems, and some "Evaluate" problems. In addition, you will have a couple options for tackling "Create" problems.
In general, "Remember/Understand" problems will be "drill"-type exercises with purely objective answers (i.e. answers that are either correct or not). "Apply/Analyze" problems will be those that ask you to apply an algorithm (or a variant) to a problem, or to explore some property, such as efficiency, of an algorithm (or a variant). "Evaluate" problems may ask you to prove important properties about an algorithm, compare it to other algorithms, identify "real world" uses of an algorithm, or develop variants of an algorithm. "Create" problems will ask you to do something such as solve a nontrivial programming problem with an algorithm. Many of these questions will not require programming to solve, but some will (especially as we go "up" the taxonomy"). In general, problems higher up in the taxonomy will require more time and independent thinking of you.
In this course, you are in control of your grade: you decide how much work you want to do, and you get the corresponding grade. The idea is that if you do a minimum amount of successful work, you'll earn a D; if you do a bit more, you'll earn a C, and so on. Here is how grades break down:
Given that this is an important course in the CS major, I hope each of you will aim for at least a B, but I won't judge anyone on their choices!
If you are aiming for an A, you should begin considering algorithms you'd like to present on. Chapters 4 and 7 are obvious places from which to draw. But we will not be covering every algorithm in the assigned reading, so if you're interested in one of those, talk with me about it ASAP. You may also wish to present on an algorithm or topic not directly addressed in the book; that's OK, but again you must start talking with me about your idea early on. We'll discuss what makes a satisfactory presentation early in the semester—among other things, I'll do a couple example presentations as part of my lecturing. (Note that I'm not claiming that my presentations will help you learn the material; rather, creating a presentation will help you learn the material [just as it helps me...].)
We will likely have an exam around two-thirds of the way through the course, but it will be designed as an opportunity to get additional units' credit for "Remember/Understand" and "Apply/Analyze" problems. We'll discuss this together midway through the semester. An exam like this would likely focus on the 2 or 3 units that seemed most challenging. I would advise not relying on this exam as a mechanism to "bump up your grade," but it will be an opportunity to fill in any missing areas in your gradesheet.
Your problem-set grade will be converted to a numeric value (95, 85, 75, 65) and combined as a weighted average with your in-class grade. So, you can think of your in-class grade as a modifier of your problem-set grade, if you want. Here's a little table that shows you some possibilities (you can do your own calculations for more nuanced scenarios):
In-Class Grade | |||
---|---|---|---|
Problem-Set Grade | 30 | 20 | 10 |
A | A | B | C |
B | AB | BC | CD |
C |
B | C | D |
D | C | D | E |
You are more than welcome to accomplish these tasks in advance of these deadlines—there's no reason you couldn't do an A-level presentation before the break. But, barring serious medical/family issues, these are absolute deadlines; I will not accept work after these dates.
Coming to my office hours is the best way to get my undivided attention. When you can't make it to office hours to ask a question, contact me through Moodle messaging or my college email address. If you message me after 5pm or on the weekend, I may not respond until the next weekday.
Our course content obviously lends itself to the classroom use of laptops, tablets, and phones; I expect to make use of Moodle during class as well. However, I expect you to demonstrate your respect for yourself and others by limiting your use of these devices to classroom-relevant activities. In particular, use of email, social media, or the general web is not acceptable unless I specifically ask you to. I reserve the right to impose a grade penalty, after a warning, for inappropriate device use during class.
Below is the final exam policy from page 53 of the MOE:
4. Examinations: a. Course examinations and quizzes are to be given during the regular class period as specified in the syllabus. Instructors should not give a unit exam during the last week of classes if they have scheduled a final exam during exam week. b. Final examination week is included in the calculation of credit hours required by the College’s accreditor. Therefore, exams must be administered during the designated time period of each final exam week. Early final examinations are not permitted. If the course does not require a final exam, a class meeting must be scheduled during the designated period or another assignment requiring no less than 2.5 hours of student work per course credit must be scheduled.
Students are expected to read their Alma College email on a daily basis. Important (and time-sensitive) messages about this class and other campus updates could be sent at any time, and email is one of the most common channels for sharing that information. I may not respond to emails sent after 5pm or on the weekend until the next business day.
Disciplinary action following dishonesty is handled by the faculty member. It may result in failure of the course involved. All infractions and actions will be reported to and recorded in the Provost’s Office. Repeated evidence of academic dishonesty is reviewed by the Provost and may involve more severe penalties.
In general, I will encourage collaboration during class, but I also expect you to demonstrate your ability to work effectively on your own. If you have questions about my policies and/or the College's policies, don't hesitate to ask.
I am committed to creating an inclusive classroom that respects a wide range of experiences, viewpoints, and abilities. Please don't hesitate to talk with me or the Center for Student Opportunity (see below) if there is anything I can do to increase your opportunities for learning in our classroom.
Alma College is committed to providing equal opportunity for participation in all programs, services and activities for persons with disabilities. If you have a disability and you would like to request accommodations, please see Rhonda Lynn (linnrm@alma.edu) in the Center for Student Opportunity (CSO) so that such accommodations can be considered. If you currently receive accommodation letters from the CSO, please meet with me outside of class to discuss the provisions of those accommodations as soon as possible.
For support with your writing projects, please visit the Alma College Writing Center, which strives to assist Alma student writers at all levels of experience and in any course or major. Peer writing consultants work one-to-one with students to help at any stage of the writing process -- from brainstorming to drafting to revising to editing a final draft. The Writing Center is located in the library near the Smith Room, and it is open during the fall and winter semesters: Mondays thru Thursdays from 2-5 and 6-10 pm and on Sundays from 7-10 pm. Hours are limited during exams week. To schedule an appointment, please stop by during the Center's open hours or visit www.alma.mywconline.com.
Tutoring is available for this course through the Center for Student Opportunity (CSO). Please stop by the CSO and complete a tutor request form (yellow) located by the front door. You will be matched with a faculty recommended tutor within a couple of days of your request. If you have any questions or concerns regarding tutoring, please contact Rhonda Linn (linnrm@alma.edu).
Career development can do more than help you with the job application process. Our Career Coaches are equipped to help you figure out what academic pathways make the most sense given your goals for after graduation. If you have questions about how to prepare for life after college please make an appointment with Maddie Moeggenborg (moeggenborgmm@alma.edu).
The Office of Diversity and Inclusion at Alma College strives to provide opportunities for students to learn about self and others while creating spaces for each of us to be our most authentic selves. The diversity programming should challenge and encourage us to move beyond our comfort zones. The Office of Diversity and Inclusion is a space and resource for all students, staff, faculty and administrators to learn about our differences and how to be intentionally inclusive. For more information, or to get involved, please contact the Director of Diversity and Inclusion, Dr. Donnesha Blake at blakeda@alma.edu.
Alma College complies with all relevant federal and state laws banning discrimination in private institutions of higher education. Titles VII and IX of the Civil Rights Act are designed to protect equality of educational opportunity for all students and of employment for all faculty and staff. The full set of policies and procedures that the college has established to protect these rights are consolidated into a single document available at this link: https://www.alma.edu/live/files/3195-civil-rights-policy-november-2018. For more information, please contact our Civil Rights and Title IX Coordinator Kevin Carmody at carmodykd@alma.edu.
Alma cares about your success! This course utilizes the Starfish Student Success platform. Starfish is an online notification system used by faculty to communicate with students and support personnel regarding academic achievements and to identify areas for improvement. In addition to awarding kudos to acknowledge excellent performance, Starfish is also used by faculty and staff to raise early alerts and to direct students to free resources such as tutoring, supplemental instruction, or career services. Starfish referrals are designed to help students identify strategies to achieve their academic goals. Students are encouraged to take advantage of the many opportunities offered at Alma to promote academic success. To access Starfish, log into inside.alma.edu and click the Starfish link. To learn more about Starfish, contact Rhonda Linn (linnrm@alma.edu) in the CSO.