Course Information

Welcome to CSC 210! Understanding the staff's expectations will make this course more engaging, effective, and fun for you. Please post your questions to Piazza so that we can clarify.

(This information is subject to change.)


CSC 210 is a rigorous upper-division course that assumes familiarity with both basic computer science concepts and the pragmatic details of programming in a command-line environment. Its prerequisite is CSC 172, which we will enforce. Why is that course a pre-req? Because we assume that you already know how to code and can easily pick up new programming languages on-demand. This course will not teach you how to code.

Since this is an upper-division course, be prepared to take a lot of initiative to fill in the gaps in your prior knowledge. The staff will be available during lab sessions, office hours, and on Piazza, but it's up to you to proactively seek out help.

This course will focus mainly on server-side backend systems. If you're looking for a basic Web design and frontend course, we strongly recommend that you take CSC 170 or 209 instead.

Course overview and philosophy

Read the welcome page for an overview of this course and its philosophy. This page deals mostly with logistics.

Course Format

We will meet in class twice a week for 75 minutes during the first half of the semester. During each lecture, Professor Guo will introduce a new set of concepts that will be tested on one of two exams. Please do the assigned readings beforehand.

During the second half of the semester, we will have much fewer scheduled in-class meetings. Rather, you will be meeting regularly with your TA so that they can grade and give feedback on your final project milestones.

Grading Policy

  • 25% – Exam 1
  • 25% – Exam 2
  • 50% – Class Project, split into:
    • 5% for each of 4 milestones
    • 10% for private project demo and oral exam
    • 5% for in-class final presentation
    • 15% for quality of finished product

50% of your grade will come from two exams, which assess your declarative knowledge of Web application development principles. There is no cumulative final exam.

The other 50% will come from the class project, which will assess your procedural knowledge of how to create a Web application that embodies the principles from this course.

Thus, your final grade will equally reflect both key types of knowledge: declarative (“knowing what”) and procedural (“knowing how”).

Now take a deep breath and repeat to yourself: Even though you will be spending a lot of time on the project, merely doing a good job on the project is not sufficient to earn an A grade in this course. You must excel at both the exams and the project to earn an A.

There is no hard cutoff for final letter grades. Your grade will be determined by the staff during an end-of-semester grading meeting where we discuss every student's performance in detail. Thus, it is to your benefit to meet regularly with your TA and inform them of your group's progress.

However, we understand that you might be nervous about your final grade. To alleviate this concern, here is our promised worst-case grading scale. If you get above these percentages, then you're guaranteed at least the following letter grades:

  • 95.0% – A
  • 92.0% – A-
  • 85.0% – B
  • 82.0% – B-
  • 75.0% – C

These percentages look high, but that's on purpose. For example, if you get a 97%, then you're guaranteed an A. What about if you get a 91%? Or an 89%? Depending on the results of our grading meeting, we might give you an A, A-, B+, or B, but we make no promises. You'll at least get a B, since you're above 85%.

If you end up below the percentage for the grade that you want, don't panic. This is a worst-case scale, not an absolute cutoff.

Grading Questions and "No-arguing-about-grades" policy

Grading questions may be asked only at Professor Guo's office hours. Do not ask your TAs or post those questions on Piazza.

The course staff will meet at the end of the term to discuss everyone's performance in detail and try to assign grades as fairly as possible. As in any class you take, there will be people who are not satisfied with their final assigned grades; this is true not only in school but for the rest of your life as well.

Thus, I have instituted a "no-arguing-about-grades" policy (unless there is an obvious typo in our data entry, feel free to ask to double-check) because that is the only way to be fair and equitable to all students. Otherwise it will give incentives for students who have been conditioned (both personally and societally) to argue more forcefully, and put other students who grew up in different backgrounds at a relative disadvantage. There is no perfect system in grading (or in general life outcomes!), but to give special treatment for arguing will provide an adverse set of incentives, and also reduce equity for all students.

What Will Be On The Exams?

Exams will cover material from:

  • Lectures
  • Assigned Readings
  • Code from Lectures
    • You'll be expected to know how to read all of the code and understand what is happening at a conceptual level, but not how to write new code with the exact details of syntax and function names.

If you don't come to lecture and take good notes, then you will be at a severe disadvantage when studying for exams.

Exam questions require deep understanding at a level that is achievable only after you've internalized the nuances of lectures and readings. In other words, it won't just be “fill-in-the-definition” kinds of questions. You will need to think critically and creatively, much like what you will be asked to do in your future jobs where the answers aren't known in advance.

Do I really have to do the assigned readings before each lecture?

Yes, definitely do the assigned readings before coming to each lecture. If you don't do the readings, then lecture won't make much sense. Don't worry if you're confused by the readings the first time around. Coming to lecture will help clarify your confusion. And then when you re-read later to study for exams, things will suddenly make sense. There is often no substitute for this sort of “repeated exposure” method of learning.

Laptop, Tablet, and Cell Phone Usage In Class

Our policy for using electronic devices in class is simple: Be considerate of your classmates. We're fine with you using them silently by yourself, and we will sometimes present code-related demos where you are encouraged to follow along.

But remember that you are packed closely together with dozens of other students in the lecture hall. For your classmates who are trying to pay attention in class, it's really distracting to see flashy pictures and videos out of the corner of their eyes. Also, some students might be offended by certain images. So try to stay off of image- or video-heavy sites. Text is much easier to ignore.

Also, device usage sometimes spurs whispered conversations and laughter amongst friends, which can be contagious. Those sounds can distract and break the concentration of your classmates. So please remain quiet unless you are asking or answering a question (which we definitely encourage!).

All electronic devices are banned during exams.

Academic Honesty Policy

Exams must be taken alone without the assistance of any people, notes, or electronic devices.

The class project is a group project, so you can freely collaborate with your groupmates. We expect you to write most of the code on your own but recognize that it is sometimes useful to copy and paste small snippets from other sources. If you choose to copy small snippets of code, you must attribute the sources appropriately as comments in your code. However, copying large pieces of code or trying to pass off someone else's project components as your own are definitely violations of academic honesty. When in doubt, ask the staff about your specific situation. (This policy is somewhat analogous to citation and plagiarism policies for writing courses.)

If violations occur, it is our duty to take actions according to the University's official academic honesty policy. Do not put us in this position, since it is not pleasant for anyone involved.


CSC 210 Piazza is where all electronic communications occur. It is your responsibility to check Piazza regularly. Email Professor Guo if you cannot activate your account.

If you email the staff, we will probably just tell you to post on Piazza instead so that your classmates can benefit too. You can also post privately so that only the staff sees your message.

Minimal use of Blackboard

We will not be posting any information on Blackboard other than your grades. Thus, this website and Piazza are the primary sources of info for the class.

No Extensions

All project-related due dates are final. Late submissions will receive a 0, since giving special treatment for lateness is not fair to your classmates.

We understand that you're busy with other classes and activities, but this course's due dates are set at the beginning of the semester, so you should manage your time appropriately. And since you are working in a group, it is unlikely that all of your group members will simultaneously miss a deadline.

Finally, in our experience, the best way to address personal issues that affect your academic work is to seek help, either from your peers or via official student support resources (e.g., CARE, Student Support Network).

No Textbook

There is no required textbook. All learning materials will be drawn from freely-available websites.

Last updated: 2015-11-29