In a previous article, I posted my schedule and about my decision to double major in mathematics and computer science. The computer science department seems to be quite backed up at the moment, so I have not received any official response yet.

I can see why the CS department is really backed up. In most of my experience at Cornell, I had class sizes of 10-30, with larger class sizes (150-250) only at introductory level courses such as Sociology 1101 or Astronomy 1102. It would be quite rare to have an advanced level course with that many people in them.

But, CS easily has 150-250 people in each class. In the first few days of class, even in large lecture halls, there were no seats left and the late-arrivers had to sit in the aisles. I think students here see CS as too lucrative of a skill to pass up. Some difficult or otherwise time-consuming homework assignments have caused class sizes to drop significantly, but there are around 150-250 people in the CS classes. On the other hand, my math classes have 14 and 6 people respectively.

**Math 4340 – Abstract Algebra**

Professor: Shankar Sen

This is a fairly trivial class so far. We are covering basic group theory and it is quite a relief compared to some of the more intense math I did last semester (*cough* topology). The course is supposed to move on to rings and modules later; however, in linear algebra we actually covered much of the foundations of ring theory and modules.

However, given the lack of difficulty of the topic so far, the homework grading has been quite harsh. I usually skip writing down every rigorous step if I think some part is obvious. Learning the material is more important than writing down every detail of the proof, in my opinion.

**Math 7370 – Algebraic Number Theory**

Professor: Shankar Sen

There are no exams, no prelims, and no homework. However, it is a graduate level seminar-type class and it is pretty insane. I have put up my lecture notes on Scribd, and even if you know nothing about college math, if you click that link, you can probably see how much more difficult 7370 is than 4340.

It is a really good thing I had a basic introduction to ring theory and modules before taking this course. Knowing what *PID* (principal ideal domain) and *UFD* (unique factorization domain) mean, knowing the difference between *prime* and *irreducible*, etc., was extremely helpful.

This class is even more difficult than the graduate Complex Analysis course that I took last year. Before I took complex analysis, I actually knew quite a bit about complex variables, complex functions, and contour integrals. I had even studied the Riemann zeta function in high school. And on top of that, I was not the only undergraduate in that class—there were at least 3 others.

But for algebraic number theory, this is really new material, most of which I haven’t seen or even heard of, and moreover, I am the only undergrad in the class. However, I talk with the professor outside of class and I am confident that I can learn the material if I really try.

**Math 4900 – Independent Research/Reading – Elliptic Curves**

Since I felt that I was doing too much CS and not enough math, I decided to add on an independent reading class. The book is *The Arithmetic of Elliptic Curves* by Joseph Silverman.

I have seen elliptic curves in complex analysis in the form of the Weierstrass P-function and equating points in the complex plane by a lattice. To see the algebraic side of it will be interesting though, especially because I am interested in number theory for possible research.

In addition to this official reading, I am also reading and doing problems from Tom Apostol’s *Introduction to Analytic Number Theory*, so that I can get both the algebraic and analytic sides to it.

**CS 4820 – Introduction to Algorithms**

Professor: Dexter Kozen

This is a really fun theoretical and mathematically oriented class. After all, Kozen is practically a mathematician.

Given my mathematical background, especially the combinatorics class I took last semester, this algorithms course is not too difficult and in fact fairly trivial so far. But, I expect it to get more sophisticated once we get over the introductory stuff. For instance, on our discussion board on Piazza, one student asked how to use a contradiction proof. In just topology alone, I probably used about a hundred.

In addition, Kozen shares some very interesting stories during lecture. Just last Friday, he was talking about dynamic programming and discussed a project using body scan data to analyze the number of dimensions it took to store the size information of a human body. “Are women 2-dimensional? I don’t think so,” said Kozen. In fact, he recalled from the study that women were around 5-dimensional and men were fewer.

Also, when he was explaining the growth of the Ackermann function *A*(*n*), he noted that even *A*(4) was an extraordinarily large number, and in fact that it was “even higher than Hopcroft’s IQ.”

**CS 4850 – Mathematical Foundations for the Information Age**

Professor: John Hopcroft

From the title of this course, one might think it is really easy, but even as a math major, I find it nontrivial (that means hard, in math terms). In fact, I’d say at least 30-40% of the class has dropped since the first day. The fact that Hopcroft won a Turing award makes the class no easier.

It is essentially a mathematical and statistics course with applications. We proved the Central Limit Theorem on the first day of the class and then looked at spheres in high dimensions, with the intent of generating random directional vectors in high dimensions. As it turns out, most of the volume of a high-dimensional sphere is on a narrow annulus or shell, and when a given point is taken to be the north or south pole, the rest of the volume is located at the equator.

Currently we are studying properties of large random graphs, in particular, properties that appear suddenly when the edge saturation of the graph passes a certain threshold. For instance, below a certain number the components of the graph are all small, but above that number, a giant component arises. For an assignment I showed how this giant component phenomenon arises in connections of the Reddit community.

**CS 3410 – Computer System Organization and Programming**

Professor: Hakim Weatherspoon

In contrast to the high-level programming I have done in the past, this course is about low-level programming and the hardware-software boundary. The programming language for this course is C.

We are building up a processor from the ground up, one could say, with basic logic gates to begin with. The first project was to design a 32-bit arithmetic logic unit (ALU) using Logisim, a circuit simulation program. For instance, for a subcircuit we needed to create a 32-bit adder with overflow detection.

The above picture is actually a screenshot of the overall ALU that I designed for the class. The subcircuits are not shown (this project is not due yet, so it would break academic integrity to show a more coherent solution).

/*two weeks late*/

Sounds like an interesting but intense schedule 😀 Are you still in the marching band?

We used Logisim in the machine structures class I took. If you haven’t realized it yet, it does crash sometimes, I’d recommend saving often. It’s pretty awesome to look at the giant mass of wires and tunnels and muxes and splitters at the end of the class and realize you made an actual working [virtual] processor.

Your lecture size is relatively small compared to the CS courses at Berkeley D: I’m taking the CS department’s version of discrete math, and the enrollment as of 2/24 is “Limit:449 Enrolled:445 Waitlist:4 Avail Seats:4 ,” and this is after the Great Purge that happened in the second week of class. The algorithms class which follows immediately in the series (and is probably equivalent to 4820) has 327 students after the waitlist purge.

Of course, Berkeley has nearly twice as many undergrads as Cornell, so I guess it’s roughly proportional. The lower-divs have seen some substantial enrollment growth though. As of last semester our intro programming class now has two lectures (at least in the fall) in order to accommodate the 700+ students who took it O__O

LikeLike

Thanks for stopping by, Margaret!

Logisim seems to randomly stop working for us. A wire will turn red and we can’t turn it back to green other than by saving, closing, and reopening Logisim. However, I don’t think I’ve encountered a crash yet, quite fortunately.

Those classes sound absurdly huge. Do you know what fraction of people enrolled go to lecture?

The schedule’s intense but not too intense yet, as I still have time to write blog posts. There isn’t much marching in the spring, or what Ithaca residents call winter.

LikeLike

It depends on whether or not the lecture is webcasted. I would guess that for non-webcasted classes, maybe 2/3 to 3/4 attendance, for webcasted classes, depending on the time of day and how good the lecturer is, it seems like less than half of enrolled students attend lecture.

LikeLike