Many additional courses of interest to concentrators can be found in the Applied Mathematics, Engineering Sciences, Mathematics, Physics, and Statistics sections of the my. The SEAS 4 year course plan contains the most up to date plan for courses to be offered in the near future. Note that each of these courses is offered at least once per year:. The course is designed to accommodate both students who are starting from scratch and students with prior programming experience.

Students should consult with the Mathematics Department, Chemistry Department, and Physics Department for advice about appropriate placement in courses in those departments. CS20, Discrete Mathematics for Computer Science, teaches the mathematics needed for later computer science courses that is not covered in the calculus and linear algebra sequence in Mathematics and Applied Mathematics. Many students will not need to take CS20, but students with no background in writing mathematical proofs should consider taking this course.

The official information is in the handbook entry but we summarize here which courses count for fulfilling various requirements. The list below is not exhaustive, and if there is any conflict between this list and the handbook, the handbook information is the correct one. We generally allow a student to replace a course with a more advanced course of the same type, though you should ask us for authorization in advance for each such case.

Harvard extension school courses do not count for CS concentration courses. Harvard summer courses could potentially count if they are equivalent to courses that are counted in the concentration e. Courses taken at other universities do not count towards the concentration, unless part of an official study abroad program, or you are a transfer student.

If you are a transfer student, come talks to us and we will make the decision on which courses to count on a case-by-case basis. Theory requirement: The standard and recommended way to fulfill the theory requirement is to take CS and CS Note: As of fallAM will no longer satisfy the theory requirement. Replacing CS requires a course with a significant computational complexity requirement such as CS If a course is cross listed as both a computer science course and a course in another department then it counts even if you took the course under its other number e.

In particular, Harvard students have taken MIT courses 6. Note that MIT 6. Please visit our cross-registration page for directions on cross-registration. Courses and requirements change, and you should not assume that a course will count even if you know it did so in the past. Breadth requirement: A technical elective can count towards the breadth requirement if it is a CS course and its penultimate digit is between 3 and 8.

Courses such as CS 10x or CS 19x do not count towards the breadth requirement. AM is considered equivalent to a CS course with penultimate digit 8. Some MIT or study abroad courses might count for the breadth requirement on a case-by-case basis. See this web page for more information. The following table summarizes some course substitutions that are allowed.

It also includes the answers to some commonly asked questions about which courses satisfy certain requirements.Computation occurs over a variety of substrates including silicon, neurons, DNA, the stock market, bee colonies and many others.

In this course we will study the fundamental capabilities and limitations of computation, including the phenomenon of universality and the duality of code and data.

Some of the questions we will touch upon include: Are there functions that cannot be computed? Is randomness ever useful for computing? Can we use the quirks of quantum mechanics to speed up computation? See here for Fall student evaluationsFall student evaluationsand Fall student evaluations. See the background page for some useful resources on the mathematical background. Reading this book over the summer can be a pleasant way to prepare for the course.

While reading it cover to cover is a large undertaking, it is a great book to sample from and have by your side as a reference or as a makeshift monitor stand.

This was the textbook for CS in previous iterations. It is an extremely well-written book with very clear explanations and proofs, and can serve as a good accompaniment for about half of this course.

However, it might serve as a useful reference for some of the topics of this course especially in its second half. This is a broad overview of the connections between mathematics and the theory of computation, covering some of the topics of CS as well many advanced topics.

It can be a great read for students that want to go beyond CS and explore the theory of computation in more depth. The book will be published by Princeton University Press, and an electronic copy of it is freely available online. Summer reading suggestions: Though not directly related to this course, another fun summer read which is good for math background in general and not just specific to this course is the book How not to be wrong by Jordan Ellenberg.

Yet another very short but highly recommended general math book is Mathematics: A very short introduction by Timothy Gowers. MIT 6. CS Boaz Barak. Instructor: Boaz Barak syllabus - schedule - Ed - gradescope - background - textbook NEWS: If you are taking this class please make sure to: 1 See the background page and do Homework Zero ; in particular allow yourself enough time for brushing up on the math if needed, 2 Join the piazza forum link to be posted soon3 Put this course on your Crimson cart so that you have access to Canvas and Gradescope websites.Students can post questions and collaborate to edit responses to these questions.

Instructors can also answer questions, endorse student answers, and edit or delete any posted content.

cs124 harvard

Piazza is designed to simulate real class discussion. It aims to get high quality answers to difficult questions, fast! The name Piazza comes from the Italian word for plaza--a common city square where people can come together to share knowledge and ideas. We strive to recreate that communal atmosphere among students and instructors. Join Classes. Click here to log in to your other account.

Log out. Please enter the harvard. Please enter a valid harvard. Check your inbox for your confirmation email. Enter the validation code below so you can access your classes! Please check your bulk mail or spam folder first.

Click here to resend the email. It may take a few minutes to arrive. Please enter your harvard. We will send an email to this address with a link to validate your new email address. Your classes are not yet active. We'll notify you when they've been activated by your professor. Looking for Piazza Careers Log In. Log in Caps lock is turned on! Keep me logged in Forgot your password?

Log in Cancel. Harvard University change school. Are you a professor? Welcome to Piazza! Please enter your school email address Please enter the harvard. Email: Confirm Email: Please enter a valid harvard. Your email addresses don't match.The online world has a vast array of unstructured information in the form of language and social networks.

Learn how to make sense of it and how to interact with humans via language, from answering questions to giving advice!

Schedule Piazza Forum Canvas Material. Artificial paranoia. Artificial Intelligence, 2 1pp. Turkle, S. Authenticity in the age of digital companions. Interaction Studies, 8 3pp. Mining of Massive Datasets. Chapter 9 2nd edition. The final is: Thursday Mar 19, pmpm, Hewlett There will be an alternate final: Tuesday Mar 17, pmpm, Cubberley Auditorium You can take whichever final you prefer. You don't have to RSVP, just show up. We can not reply to email sent to individual staff members.

Announcements

If you have a question that is not confidential or personal, post it on the Piazza forum Piazza forum - responses tend to be quicker and have a wider audience. To contact the teaching staff directly, we strongly encourage you to come to office hours. If that is not possible, you can also email non-technical questions only to the course staff list, cswinstaff lists. If you have a matter to be discussed privately, please come to office hours, or use cswinstaff lists.

For grading questions, please talk to us after class or during office hours. We try to redundantly use Piazza, Canvas, and mailing lists to make sure any messages we convey to the class reach you all!

cs124 harvard

We will assume that all students read these messages. Since we occasionally reuse homeworks from previous years, we expect students not to copy, refer to, or look at the solutions in preparing their answers. It is an honor code violation to intentionally refer to a previous year's solutions. This applies both to the official solutions and to solutions that you or someone else may have written up in a previous year.The autograder will take care of the compiling the code and running it.

If you have already made a submission to Gradescope, you will need to resubmit. In particular, if your code is split across multiple files, you will need to merge it into a single file.

I hope that this makes the submission process easier for everyone, but if you continue to have to trouble, please follow up to this thread or make a private Piazza post. Best, Nenya Mar Next week's lectures are now available online. I would recommend watching them approximately at the usual time, subject to your convenience. There's no reason to binge-watch lectures, or to watch them before vacation ends, but I wanted to make them available. I have put up the lecture on Bloom filters and hashing; this covers the same material as for the lecture, but you may want to review the last 30 minutes or so, both to get back into the class, and because I got to a bit more I didn't get to in our last lecture.

The next lectures are more on randomness: fingerprinting, primality testing, and RSA. The corresponding lecture and section notes are online. TAs will be having both online office hours and "section" in the coming week; "section" will go over the section material. Times will be posted on the CS calendar and on Piazza this weekend.

Note that an online section covering this material recorded from is also available if anyone can't make an online section time.

I realize many of you are going through challenging situations. Indeed, I imagine everyone is going through a challenging situation. As we've said elsewhere, we will plan to be flexible and aim to understand people's needs. Please give feedback on Piazza. And look for other announcements there. I wanted to let you know what our current plans are with regard to the class for post-spring break.

All of this is in flux, but I think we have a solid plan moving forward. While ideally I would have come into Harvard and made fresh recordings, I am told Extension is not planning continuing on campus recording at this time. My plan is therefore to switch to more of a flipped classroom mode. We will plan to put up previous years' lectures on roughly a week by week basis.

I may release something like 2 weeks ahead, to give people flexibility to get a bit ahead if they like. The purpose of section hours is specifically to go over the material generally and not the problem setfocusing as usual through the section notes. The TAs will be revising their schedules in the coming week; we will post schedules here, but please also make sure to check the class Google calendar available at the bottom of this page.

What was previously class time will be repurposed to go over lecture material questions online, under the assumption you have watched the video and will have questions that need answering.

We expect to offer more flexibility in terms of extensions and such, but we ask that you continue to ask for extensions when needed. Ideally we'd like the class to stay "on schedule", and that means assignments keeping on schedule. For example, the TAs are leaving before we have had a chance to grade the midterms, so we will probably have to scan them and grade them online, which will take a while given much of campus is shut down. It may take a while before the midterm is graded.

I hope to manage to have it be as close to the standard final exam as possible, which will be you will have a 3-hour exam that you will have some hour period to takeand it will look something like the midterm, except at the end you will submit a pdf either scanned or from your computer that we will grade online.

Thank you for your understanding, and of course we course staff will similarly be working to provide understanding for all of you as we navigate this challenge.

Please leave questions here and I will try to address them, as I've undoubtedly I've forgotten many things that may need addressing. All extension students should have received an email with instructions and a link to the exam. If you are an extension student and have not received this, please let us know as soon as possible. Best, Eric K.

Harvard CS 51 Final Project: Handwriting Recognition

Mar Class Update Hi all. I'm glad we switched classes earlier this semesterCourse Level: Upper-level undergraduate. The course goal is to provide a solid background in algorithms for computer science students, in preparation either for a job in industry or for more advanced courses at the graduate level. I strongly encourage mathematicians, biologists, physicists, and people from other concentrations to take the course as well. Besides introducing the basic language and tools for algorithm analysis, we will also cover several specific problems and general design paradigms.

Toward the end of the quarter, we will also examine heuristic techniques often used in practice, even though in many cases formal theoretical results are not known. We will focus on the theoretical and mathematical aspects in class and on the homework assignments. But because one gains a deeper understanding of algorithms from actually implementing them, the course will include a substantial programming component.

In particular, most problem sets include at least one problem that requires implementing an algorithmic solution to be tested against our test data. More details will be available when the first programming assignment is given. As you can see from the preliminary list of topics included belowwe will be covering a great deal.

I expect the course to be challenging, both in terms of the workload and the difficulty of the material. You should be prepared to do a lot of work outside of class.

The payoff will be that you will learn a lot of both useful and interesting things. Course description ". Module Topic: How can we design models that allocate goods and services fairly? Module Author: Cat Wade. Semesters Taught: Spring Module Overview: In this module, we consider fairness in resource allocation. Real-world resource allocation problems, such as the problem of allocating hospital beds to patients, can be modeled as flow maximization problems by representing both resources to be allocated and potential recipients of those resources as nodes in a flow network.

After demonstrating how to model resource allocation problems using flow networks, the Embedded EthiCS fellow leads a discussion of what treating people fairly requires in different kinds of real-world resource allocation problems. We then discuss how to model these ethical requirements as formal constraints on flow maximization problems. Connection to Course Technical Material: In the leadup to the module, the course covers max flow problems and strategies for solving them algorithmically.

The module builds on this technical material by a demonstrating how it can be used to solve real-world resource allocation problems and b showing how to formally model ethical constraints on these problems. In order to stay tightly connected to the course technical material, the module focuses on modeling realistic resource allocation problems using formal machinery covered in an earlier class session.

Examples discussed include the problem of allocating housing to families and the problem of allocating school enrollment slots to students. Module Goals:. Key Philosophical Questions:. Key Philosophical Concepts:. Assigned Readings:. Sample Class Activity:. Students are given examples of three realistic resource allocation problems and asked to consider how they might be solved in a way that treats everyone concerned fairly.

Scenario 1 : You are an employer trying to decide who to promote. You have 5 employees up for the position. How do you pick between them in order to make a fair decision? Scenario 2 : You are a conductor for a large orchestra with over one hundred members. You have ten tickets to an upcoming concert that you know everyone would like to go to. How do you decide fairly how to distribute the ten tickets? Scenario 3 : You and your partner have to decide who among your friends should officiate your wedding.

You have different preferences. How could you resolve this fairly?Manchester United suffered their first defeat of the season last weekend - but could they lose more ground on Premier League leaders Manchester City when they face in-form Tottenham on Saturday. BBC Sport football expert Mark Lawrenson says: "United flunked at Huddersfield and, as bad as Liverpool were at Wembley, Tottenham played very well to beat them 4-1.

They rolled over in the first half against the Terriers but there is no way Jose Mourinho is going to let Spurs beat his side at Old Trafford. Lawro scored 70 points in week nine, which saw him slip to 3,152nd place out of more than 240,000 users. Lawro, who beat Joe Root last week, takes on two of his England cricket team-mates for this weekend's fixtures - all-rounder Moeen Ali and bowler James Anderson.

CS 224: Advanced Algorithms

Burnley fan Anderson predicts a 1-0 win for his side at home to Newcastle on Monday and is hopeful the club can keep hold of manager Sean Dyche, who has been linked with the Everton job. Remember you can try to beat Lawro by playing the BBC Sport Predictor game. Last week, Lawro got four correct results, including one perfect scores, from 10 matches, for a total of 70 points.

He beat England cricket captain Joe Root, who got five results correct but with no perfect scores, for a total of 50 points. For this day's fixtures we have 433 matches from 85 leagues. All Match time is in your local timezone()Premium will get you more wins.

cs124 harvard

Plus, you get Corner stats and Card stats along with CSV. Premium will get you more wins. We also provide analysis for in-play statistics, which will inform you at which point in a match a team scores or concedes their goals across the season. This feature is handy for understanding in-play dynamics of each football team. Be sure also to check out our latest football tips, selected using our data and stats, as well as enjoying a read of our football blog. We have over 300 data points per league, team, and players.

Yes that's right - three whole hundred data points.

It's quite overwhelming at first but here are some of the most used datas : Over 0. The possibilities with these data are endless. We even have odds so that you can compare them against the stats at a glance to see if they provide value. We make every single one of these data public through our API and CSVs which will be available later this year. We encourage you to use our data to do your own soccer stats analysis such as machine learning and model based predictions. Shots and posession data will be available later this year as well.

Other stats services update once a week, or once a day. We update within 10 minutes of matches ending and our users love us for it. We're also continually working to update our stats at an even faster rate. Our aim is to update our stats every 2 minutes in the future. History is the best predicting indicator of our future. Whatever patterns that happened in the past usually happens in the present. We believe that by using our statistics for your football predictions, you have a much better chance of getting them right.

There are no other services that have as much of a complete data as we do for making assumptions about what the match outcome is going to be for today's matches. For example if Manchester United has scored over 1.