peaceful-raven-7785
Edited
• 3 Credit Hours
Loading charts...
Key adjectives used by students — color intensity reflects sentiment
peaceful-raven-7785
Edited
swift-dragon-0688
Edited
humble-crow-5630
Edited
humble-cobra-7245
Edited
zesty-parrot-3657
Edited
honest-moose-5858
do not take this course if u are on the OMSCS track. good luck to the ppl taking it as a REQUIREMENT for OMSCY. the class is a joke. lessons/modules are no help at all. ur better off reading the book that’s notes from a previous student. the TAs and prof are not nice at all. she will curve some students but not all students. how is that fair? dont know. good luck. this class should not be a requirement for OMSCY students.
Edited
calm-starling-9534
The tears of nerds like us keep the population at large safe.
Edited
polite-jaguar-9236
Edited
swift-dragon-6210
Edited
loyal-tiger-8775
Edited
Taken Spring 2025. I studied math in undergrad. Made this a lot easier.
Would be a 5/5 except the TA and grading is honestly a pita. It is extremely unclear and thier definition of a 'proof' and what can and cannot be assumed is very misguided tbh.
A lot of the problems are left extremely vague and you arent allowed to ask questions, but you are punished for making the 'wrong' assumption. I literally wrote down 2 possible solutions based on 2 different assumption sets for a vauge problem, and was marked down on BOTH solutions (one was 'incorrect assumptions' and the other had a small syntax mistake). This completely defeats the point of a proof based assignment - you should be assessing the logical reasoning and deductions not weather we can guess what you want for a given problem?
No cryptography background needed for this course. This course was not exceptional but not bad either. If you want to learn how to do proofs this, albiet not the best avenue, is probably your best shot in this program.
CS 6260 - AC - is the most enjoyable class I've taken in the OMSCS program so far. Essentially what you'll be doing is taking the role of a hacker and try to break various presented encryption schemes. For the 2 exams and the 5 written assignments you'll be presenting theoretical hacks on paper, and for the 2 coding assignments you'll be designing and implementing hacks in Python. In other words, you will mostly be solving puzzles. So, you need to be comfortable with relying on your intuition and the provided examples - if you're experienced in playing Zachtronics or similar computer games you should be fine.
The textbook is not required reading, but the professor is extremely clear and rigorous in her explanations, to the point where sometimes I would zone out of the lectures. Grading is overly strict - if you do not use exact language expected or do not fully show your work you will get points deduced, though you can dispute with the TAs. The cutoff for an A is at 80% score to make up for it. The assignments were very helpful in understanding the lecture content.
I'm not giving 5 stars because the second half of the class (dealing with asymmetric encryption) had a noticeable drop in quality due to getting bogged down in the details of number theory. There was not enough time to cover the topic in depth, in sharp contrast to the first half of the class. Additionally, I wish we spent more time on practical applications and got to see real life examples. Finally, on the same note, the class did not seem to be rigorous enough for a master's level course. For instance, there were no (mandatory) readings assigned and we never had to prove that a scheme was secure (only insecure).
Those of you who are privay concious be warned - you will have to install Honorlock spyware to take the 12 quizzes and 2 exams! Recommend using a live USB.
This was my first course in OMSCS. I made a decent A.
This review may be a slight outlier because my academic background influenced how I approached this course (I have a master's degree in mathematics). If you don't have a mathematics background, it can be a bit difficult to adjust to how this course flows, because it's essentially a mathematics course in the formalism.
ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i video.m3u8 -c copy -bsf:a aac_adtstoasc video.mp4 (here, video.m3u8 is whatever you saved it as)My overall grade:
Despite the name, this course definitely leans very theoretical. Those who have a strong math background or did well in discrete structures/algorithms in undergrad (ie people who have experience reading/writing proofs) will have an easy time in this course. Those who do not might struggle with the proof-writing aspects of this course in addition to the course material itself.
There are weekly quizzes (no more than 5 minutes each), 4 proof-based homeworks, and 2 programming homeworks. The programming assignments should be 100%-ed. Each proof-based homework will likely have a problem you do not how to solve. This is OK: The curve for this course is very generous (A is 80%+)
Overall, I really enjoyed this course. I recommend it to anyone who is comfortable writing formally/mathematically.
It's a good class for covering the foundations of cryptography, it helps build intuition about insecurity and misuse of existing tools without going into the full blown implementation details of such tools (for the most part). Which is fine, given that most likely you will just be using an existing cryptographic library most of the time in your job or elsewhere.
There are 6 homeworks. 4 do not have any programming involved, 1 is only programming based, and the last one has a small programming section. For the most part you will be writing hypothetical attacks/proofs, analyzing the insecurity of proposed schemes (again, the goal is to build intuition). You can work in groups, but I chose to work alone because I didn't want to rely on others due to my changing timezones and found it very manageable (I got around 80% on the HWs putting around 1 day's worth of effort into writing them out/thinking about them).
There are 2 exams, challenging but fair for the most part. Open book. They will pretty much determine whether you get a B or A. The curve is quite generous (B is 60%+).
The quizzes are the most frustrating part of the course. You start second guessing yourself after falling for a few gotchas. That said, their weighting isn't that heavy so it'll probably piss you off more than it should.
I fell off short of an A by 0.2%, but nevertheless I still recommend it. I paired with GIOS and the deadlines turned out to be quite complimentary and manageable. If you're the kind of person who enjoys brainteasers and that sort of thing, you will enjoy the class. I think the importance of understanding proofs themselves is overblown, it's more about building intuition.
THERE WAS NO CURVE THIS SEMESTER. CUTOFFS WERE 81%=A and 61%=B.
People like to compare this class and Graduate Algorithms. They are similar, but not quite in the ways you expect. It’s more that the vast majority of the workload is personal study time.
(My background). I did a math minor and EE in undergrad. This is my 13th or 14th class and I think the most relevant ones to prepare were GA and IHPC (mainly for runtime analysis and writing pseudocode), some of the machine learning classes (for reading math notation), and IIS (for understanding modular math and RSA beforehand). In the past I also worked on a personal project that heavily involved encryption, which was a key motivation for me to take this class. All this is to say my experience will not be representative for you if you haven’t studied the topics before.
(Learning objectives). I want to counter the previous two reviews, which I think have no idea what this class is about. It’s common wisdom to nEvEr WrItE yOuR oWn EnCrYpTiOn LiBrArIeS, but what I found with my personal project is that all the “reputable” cryptographic libraries in both Java and Python are hot garbage written in such a way to blame you the user for "using them wrong" when you inevitably get hacked. I haven’t looked at other languages yet, but I assume they’re the same. You need to take a class like this one to understand how to use the libraries. Which options are the current best practices, and which are terrible but kept around for compatibility? Which options are more future-proof? How much efficiency are you giving up achieving a particular level of security? What constraints and gotchas do each method have? In which situations are various methods secure or insecure? What are the different definitions and levels of “security”? This is a math/pseudocode heavy class because it’s supposed to make you better at reading the documentation of cryptographic libraries, rather than a better coder.
(Difficulty). I haven’t taken the final yet, but my current grade is such that I’ll need a 70% on it to keep an A, or 12.5% for a B. There are 12 quizzes (18%), 6 homework (20%), a midterm (27%), and a final (35%). Your lowest quiz and homework are both dropped. The quizzes are proctored and closed-everything. When I took them, it felt like there were lots of frustrating gotcha questions. After reviewing them before exams, they seem more obvious, and I now think they’re mostly fair. They are worded way differently from the lectures/books so that you must sit and reason them out carefully, and you’re still probably going to miss 1 question on average every single week. The homework are less frustrating, but like for GA class you need a “eureka” moment to avoid getting docked most of the points. The exams are like the quizzes and homework, but open notes (still closed internet) so hopefully you’ll do slightly better unless you succumb to the time pressure.
(Tips to succeed). For the quizzes, I found that watching the lectures at 1.5x-2.0x speed and then reading the relevant sections of George’s notes was the best time/value and was good enough to get most of the points on quizzes. Sit and reason through the questions, because they are worded to break your ability to pattern-match from the lessons. For homework you’ll spend a lot of time doing CTRL+F through the allowed textbooks, most of which are massive. Not much more to say other than hopefully you find the “eureka” moment quickly. The exams are open notes, so the best way to prepare is to put together good notes. Take screenshots of the office hours to get the solutions for all the homework and quizzes and practice exams, write out a table of each encryption/signing method and what definitions of security they meet or don’t meet, write out factoids you think are important based on where you struggled with the quizzes/homework, look at your homework feedback in gradescope to get a sense of the rubric. You are provided links to lecture slides and textbooks during the exam, but you should organize what you need beforehand to save time during the honorlock session.
(Overall thoughts). A much lower workload than I expected, due to the emphasis on knowing what factors lead to what levels/types of security, as opposed to knowing the innards of any practical algorithms. They do not let you work ahead, so I was forced to relax and forget about class for a few days each week. There’s a lot of prerequisite knowledge for reading math notation, analyzing the runtime and correctness of algorithms, and understanding what makes a good mathematical proof. If you don’t have those, that’s where you’ll get stuck spending extra time.
This is the single worst class I have ever taken.
The quizzes are all trick questions with one word changed that changes the answer. They are all 5 or 6 question T/F questions where if you get one wrong you're already down a whole letter grade. The TA are very intitled and gatekeep grades. If you don't write it exactly they have in their notes then it is wrong. The professor purposely leaves out info on the slides and only talks about them out loud so if you don't take notes on what she says that isn't on the slides then you get things wrong. There is "optional" readings that have required material in them. We were told "exam questions resemble homework problems" and then told us "oh well" when we pointed out that we have a week and 3 person group to do the homework problems and we have 2 hours to do exams on our own. Office hours are all during working hours. Grades are inflated from the beginning for how terrible people do in the class.
Hands down the absolute worst experience and waste of a class. This is was disappointing. This is very clearly a research-based class and not for working professionals. Awful, awful class that I got absolutely nothing from.
This is probably the worst quality course in the entire OMS-* program. It is extremely similar to GA but with even less real-world applicability and TAs that behave with the same entitled attitude. In fact the course has virtually nothing to do with computer science or cybersecurity; it is a math course in disguise.
The instructor's accent is near unintelligible and the notes are only handwritten (illegible). Thus this requires the student to have a huge amount of patience otherwise you are out of luck. Avoid it if you have a choice.