CS 312: Algorithm Design and Analysis - byu-cs/wiki GitHub Wiki

Back to Courses

General Information

Attribute Value
Semesters Taught ?
Typical number of sections ?
Technologies Used C#, Visual Studio (Windows) or Xamarin Studio (Mac OS) (required for GUI creation)

Workload

Reasonably high. You'll spend a decent amount of time on the projects and studying for the tests if you want a good grade.

Learning Outcomes

This class is meant to increase your knowledge of different algorithms and methods for approaching common CS problems, but you can end up getting bogged down with learning C# and using Visual Studio unless you're familiar with them already. Students have expressed their desires to code the algorithms used in this class in the language of their choice.

Homework

Homework is reasonably easy but good preparation for the tests. You may want to talk to the TAs to make sure you're doing it right.

Projects

The projects are time consuming. They may be easier if you say what you're thinking, code on a whiteboard, and work with a group.

Professor Ventura gives 0% credit for late projects.

Tests

Tests are more important to focus on in this class. The tests tend to be harder to do well on than the projects.

Other comments

From Joseph Hansen on BYU CS Slack

Well, I can't make assumptions about which ways you prefer to learn, but I can tell you the advice I would tell myself:

  1. Have fun with the content of the class, because it's interesting stuff even during times when it is vexing. Shake off frustrating things and just have fun with what you can.

  2. The class breaks down into three things: homework + reading + lectures (for exposure to the material), programming projects, and exams (a midterm and a final). Unfortunately, if you have to cut corners on your time, you have to do it on the homework + reading + lectures side. This doesn't sit well with me personally because I'm so curious and like to learn. However, keep positive about it by reminding yourself how beneficial it will be for you to get cool programming experience. Make sure you sacrifice to adequately prepare for the two tests! I say all this because you can really hurt your grade with slight mishaps on your programming projects and exams. (About 2/3 of the way through the semester, the average exam grade was 76 and the average project grade was 80.)

  3. When I took it recently from Dr. Ventura, there were no late days for project submission. Be aware. 100% drop in grade if it's late. I repeat: that means no credit. lol. Just gotta make that clear.

  4. If you do your programming projects in a relaxed setting, with a whiteboard and another person taking the class, you will enjoy them and they will go very fast. You aren't required to code many lines but it can still be a little difficult. It becomes really easy if you are forced to say some of your ideas. Also, it sort of requires Windows for C# in Visual Studio because they give you some pre-built programs to add functions to. I have heard of students who did the projects on Mac with other C# IDEs, but most of us were too scared to try