CSE 502N: Fundamentals of Computer Science


[Handouts]  [Lectures]  [Assignments]

Essential Information

Lecture Time: Tuesdays and Thursdays, 5:30 p.m.-7:30 p.m. Laboratory Time: Thursdays, 7:30 p.m.-9:30 p.m.
Lecture Location: Eads, Room 215 Laboratory Location: Lopata, Room 400

Instructor: Robert Glaubius TA: Qianqian Lin
Email: rlg1@cse.wustl.edu Email: ql2@cec.wustl.edu
Office: Lopata 526 Office: Lopata 400 (during lab)
Office Hours: Tuesdays, 7:30 p.m.-9:30 p.m. or by appointment Office Hours: Thursdays, 7:30 p.m.-9:30 p.m.

Required Textbooks:

Course Description

This course, intended for graduate students without a computer science background, covers the core components seen in a computer science undergraduate curriculum on which our graduate level courses rely. Topics include fundamental algorithms, data structures, proof techniques, computational models, machine organization, and software design and implementation. Prerequisites: graduate standing; CS 504N or prior programming experience; some mathematical sophistication highly desirable. No credit towards CS graduate degree. Credits: 3 unit.

Course Philosophy

It is expected that your education and experience to this point has taught you the value of critical thinking, problem solving, and creativity. It is also expected that you have a reasonable mastery of programming in an object-oriented language (C++ or Java). This course aims to give you a good grasp of the core disciplines that you will be expected to have at your command while studying and working within the fields of computer science and computer engineering. There is a definite theoretical bent to the course, but a fair amount of computer architecture and real-world applications will be presented to provide balance and perspective. This course is fast-paced and, as a result, can be overwhelming, especially if you get behind. I understand that there are many forces competing for your time, and have attempted to create a workload and class policy that will challenge and encourage you, while allowing you to balance your class work with your other responsibilities.

Attendance Policy

In the spirit of having you take responsibility for your learning, attendance is not mandatory in lecture or lab. However, you are responsible for all material and administrative announcements presented in the lectures and labs. Also, keep in mind that you are only guaranteed computer time during the scheduled lab periods.

Come to class! If you get into a situation where you are missing a lot of classes for whatever reason, you could miss out on lecture material (we will not necessarily be following the textbook exactly, and, for certain sections, the material will not be covered at all in the main textbooks), miss out on your chance to participate in discussions about homework and labs (good questions and clarifications often arise in class), miss out on important administrative announcements.

Grading Policy

Grade letters will be determined by a sliding scale. The following scale will serve as a base for assigning letter grades: 90% and above is an A, 80% and above is a B, 70% and above is a C, 60% and above is a D, anything below 60% is failing. At the discretion of the professor, this scale may slide (only lower) to better reflect the overall performance of the class. For any student taking the course Pass/Fail a C or higher is considered passing.

Each of the major components of the class will be weighted as follows:
Written Homework25%
Laboratory Assignments25%
Midterm Exam20%
Final Exam30%

Late Policy

All homework assignments are due at the beginning of lecture (5:37 pm) on the due date. All programming assignments are due by the end of the day (11:59 pm) of the due date. Unless prior arrangements were made with the professor, the following penalties will apply:

Days Late Penalty
110% of the possible points
225%
350%
4+100% (no credit)

Since we expect assignments to be turned in promptly, we will make every reasonable effort to grade your work promptly and return it to you. The professor may grant extensions on assignments in extreme circumstances. When in doubt, contact the professor. For example, in the case of extended unavailability of CEC facilities, short lab extensions may be granted; however, brief outages are part of the game and you should plan ahead to avoid trouble. No extension is granted without the professor's express permission.

Submitted Code Standards

This course involves a substantial amount of programming. Programming is not just about getting the machine to do what you want; it is also a form of communication. Consequently, a small but significant portion of every lab grade will be devoted to coding style and presentation. We require that the following guidelines be met, or else penalties will be assessed:

Academic Integrity Policy

All students are asked to read and understand the academic integrity policy of the School of Engineering and Applied Science. We strongly encourage students to form study groups and share ideas. Discussions should be high-level, focusing on theory, problem solving approaches, analysis techniques, mathematical foundations, etc. All submitted solutions to homework assignments and laboratory assignments must be your own work. Collaboration on any graded assignment beyond the point of discussing initial approaches to the problem (such as comparing answers) is prohibited. There is also no collaboration whatsoever allowed on any exam. If you are unsure if you are crossing the line, it is your responsibility to ask! Anyone found cheating on any assignment will receive an F for this course and may be subject to further disciplinary action.