General Information
Instructor:
Geoffrey Towell259 Park Science Building
526-5064
gtowell at brynmawr dot edu
http://cs.brynmawr.edu/~gtowell
Class:
Lecture | 10:10 - 11:30 MW | Park 264 |
---|---|---|
Lab | 2:40 -- 4:00 W | Park 230 |
Office Hours | M 12:30 - 2:00, Th 3:00-4:00 Also by appointment |
Park 259 |
Zoom | Meeting code: 232 840 6920. |
Password: given in class |
Course Description | This course examines the applications of algorithms to the accomplishments of various programming tasks. The focus will be on understanding of problem-solving methods, along with the construction of algorithms, rather than emphasizing formal proving methodologies. Some of the algorithms we will study/implement include: searching, sorting, search engine indexing, Page Rank, pattern recognition: nearest neighbor, decision trees, neural nets, graph algorithms, error correcting codes, data compression, digital signatures, database algorithms, cryptographic hash functions, etc. Additionally, we will learn how to measure program performance, programming pitfalls, code optimization, advanced programming structures, etc. Prerequisites: CS151 and CS231 (Junior/Senior standing in the major preferred). This is a Writing Intensive (WI) course. | |
Computer Lab | Park 230 & 231 | Instructions for using the lab
computers
Remote accessible lab computer status Register your secret identity Unless you do so I will not be able to associate this with a grade. You need to do this for every assignment (after lab 1). |
Text
Important Dates
- Jan 22, First class
- Schedule This is a key document. It show all of the readings; has links to all of the labs, and shows who is presenting on which days -- about what.
Assignments
There will be assignments every week. Assignments will be due at the beginning of class -- typically on Monday.Assignments will be late and not accepted 5 minutes after the beginning of class. I will return assignments on Wednesday.
Labs
Labs will be the basis of assignments. However, it will certainly be easier to do the assignments if you get a good start in lab.Register your secret identity Unless you do so I will not be able to associate this with a grade. You need to do this for every assignment (after lab 1).
- Jan 24: Lab 1 -- SearchWriteup due Jan 29 before start of class
Sample essay for this lab
Comments about Lab1 - Jan 31: Lab 2 -- Sorting Writeup due Feb 5 before start of class
Approximate grading rubric for Lab 2.
Comments about Lab2 - Feb 7: Lab 3 -- Dynamic Programming Writeup due Feb 12, before the start of class.
- Feb 14: Lab 4 -- Indexing Writeup due Feb 26, at the start of class. Yes, 2 weeks!!!! Start early, there is a decent amount of coding.
Your alias should be "Night Creatures" -- bats, owls, aye-ayes, etc. - Feb 28 : Lab 5 -- Hashing Writeup due March 4, at the start of class.
- March 6: Lab 6 -- Graphing Writeup due March 25, at the start of class. Identity: Two broadway plays
- March 27: Lab 8 -- Dijkstra's shortest path algorithm Writeup due April 1, at the start of class. Identity: two dinosaur species.
- April 3: Lab 9 -- KMeans clustering Writeup due April 15, at the start of class. Identity: two extant cities that you would like to visit (but have not)
- April 17: Crypto Hashing Writeup due April 22, at the start of class. Identity: two species of cats
- April 24: Compression Writeup due April 29, at the start of class.
Classes
Much of this course will be student led discussion. So a schedule with lecture notes is not terribly relevant.
Schedule This is a key document. It shows all of the readings; has links to all of the labs, and shows who is presenting on which days -- about what. Below are powerpoint slides, if/when appropriate.- Jan 22 -- Introduction
Lecture notes - Jan 24 -- More algorithmic thoughts -- graphs
Lecture notes
A sample document from latex for font and page size reference - Jan 29 -- Lab 1 recap, Presentations
Lecture notes - Jan 31 -- HW 1, Presentations, algorithms
Lecture notes
Lab 1 thoughts (A class handout)
Lab 1 thoughts from 2023 - Feb 5 -- Student presentation on Sorting
Optimizing mergesort ... with code! - Feb19 -- An algorithmic interlude
Interlude slides - Feb 26 -- optimizing IR
My slides - Mar 4 -- Hashing
My slides hashing - Mar 6 -- Introduction to graphs
Emma and Maha's graphs slides - Mar 18 -- Introduction to graphs
Me -- Decision Trees
Decision trees handout - Mar 27 -- Introduction to graphs
Cycles - April 3 -- HierarchicalClustering
Clustering slides
Course Policies
Communication
Attendance and active participation are
expected in every class. Participation includes asking questions,
contributing answers, proposing ideas, and providing constructive
comments.
Please
stay in touch with me, particularly if you feel stuck on a topic
or assignment and can't figure out how to proceed. Often a quick
e-mail, or face-to-face conference can reveal solutions
to problems and generate renewed creative and scholarly energy. It
is essential that you begin assignments early.
Grading
Grades will be awarded based on the number of points earned and according to the percentage breakdowns shown.Labs & written work | 45% |
Presentations | 30% |
Class Participation | 20% |
Attendance | 5% |
Incomplete grades will be given only for verifiable medical
illness or other such dire circumstances. Incomplete grades must be approved through the Dean's
office.
ALL work submitted for grading should be entirely YOUR OWN. Sharing of programs, code snippets, etc. is not permitted under ANY circumstances. That said, I encourage you to discuss assignments at an algorithmic level with other students. That is, talk about the problem, and general approaches to problems. Do not share or discuss actual code.
Links
- APA Citation guide, Seventh Edition This page shows how to cite un-authored web pages and the like
- Citing web pages with no authors
- making good charts 5 Principles For a lot more see Edward Tufte The Visual Display of Quantitative Information.
- A very brief document showing charts and figures
Learning Accommodations
Students requesting accommodations in this course because of the impact of disability are encouraged to meet with me privately early in the semester with a verification letter. Students not yet approved to receive accommodations should also contact Deb Alder, Coordinator of Accessibility Services, at 610-526-7351 in Guild Hall, as soon as possible, to verify their eligibility for reasonable accommodations. Early contact will help avoid unnecessary inconvenience and delays.This class may be recorded.
Generative AI
All work submitted in this course must be your own. Contributions from anyone or anything else, including AI sources, must be properly quoted and cited every time they are used. Failure to do so constitutes an academic integrity violation, in accordance with the College’s Honor Code.Creating a Welcoming Environment
All members of the Instruction Staff are dedicated to the cause of improving diversity, equity, and inclusion in the field of computing, and to supporting the wellness and mental health of our students.Diversity and Inclusion
It is essential that all members of the course community – the instructor, TAs, and students – work together to create a supportive, inclusive environment that welcomes all students, regardless of their race, ethnicity, gender identity, sexuality, or socioeconomic status. All participants in this course deserve to and should expect to be treated with respect by other members of the community. Class meetings, lab sessions, office hours, and group working time should be spaces where everyone feels welcome and included. In order to foster a welcoming environment, students of this course are expected to: exercise consideration and respect in their speech and actions; attempt collaboration and consideration, including listening to opposing perspectives and authentically and respectfully raising concerns, before conflict; refrain from demeaning, discriminatory, or harassing behavior and speech.Wellness
Additionally, your mental health and wellness are of utmost importance to the course Instruction Staff, if not the College as a whole. All members of the instruction staff will be happy to chat or just to listen if you need someone to talk to, even if it’s not specifically about this course. If you or someone you know is in distress and urgently needs to speak with someone, please do not hesitate to contact BMC Counseling Services: 610-526-7360 (610-526-7778 nights and weekends). If you are uncomfortable reaching out to Counseling Services, any member of the Instruction Staff will be happy to contact them on your behalf. We understand that student life can be extremely difficult, both mentally and emotionally. If you are living with mental health issues such as anxiety, depression, ADHD, or other conditions that may affect you this semester, you are encouraged to discuss these with the Instructor. Although the details are up to you to disclose, the Instruction Staff will do their best to support and accommodate you in order to ensure that you can succeed this course while staying healthy.Created on January 2024. Subject to constant revision.