This FAQ is published by our department to help our faculty, staff, and students. It currently contains 27888 words of advice, but we have tried to organize it so you can find information quickly.
Contributors:
- Jeremy Buhler
- Ben Bush
- Ben Choi
- Ron Cytron
- Monét Demming
- Roch Guérin
- Nick Murray
- Melanie Osborn
- Arthur Rattew
- Dave Richard
- Jon Shidal
- Andrew Swafford
Disclaimer: The contributors have attempted to provide clear and accurate information in this FAQ. If there is a disagreement with what you see here, and what you see in the course bulletin or other official publications, they are right and this FAQ is wrong. Please help us keep this FAQ accurate by reporting discrepancies, and as always, consult with your advisors to be sure you are acting on the right information.
Corrections and suggestions for improving this FAQ are most welcome by contacting the department's associate chair. Details on submissions for this FAQ can be found by clicking on the FAQ entry below.
I have found this calendar to be very reliable. It's published by Arts and Sciences, and you can navigate to any semester.The Olin School of Business has their own schedule, but McKelvey follows the ArtSci calendar for all the important dates.
It is useful to view academic integrity at the university, school, and course levels.Recently a committee of faculty and administrators met to consider broad changes to the academic integrity process at Washington University. This response is accurate as of this writing, and it will be updated should the university decide to make changes.In overview the process for dealing with alleged vioations of integrity proceeds as follows:
- The university's Office of Student Conduct and Community Standards publishes a page on Academic Integrity which in turn references the university's Academic Integrity Policy.
That policy covers the general principles of academic integrity, but it delegates to each course the specification of allowable collaboration.
- The school is primarily responsible for prosecuting cases of alleged violation of academic integrity. The details of this process are covered below.
- Each course should publish the boundaries of allowed collaboration. Such information may be covered on the course's web page or syllabus, or on particular assignments. As covered elsewhere in this FAQ, it is important that students read and understand the boundaries of allowed collaboration, and ask questions where anything is unclear.
- An instructor, TA, or student files a complaint with the SEAS Engineering Student Services office that a violation may have occurred. The complainant provides evidence along a quote of the particular academic integrity rule that may have been violated.
- Our school's academic integrity officer requests a meeting with the person accused of the violation. The evidence is presented and the student has the option of agreeing the violation took place, or the student can request a formal hearing.
- If a hearing is convened, then the complainant presents the evidence and the student can respond. The goal here is a fair hearing in which all relevant material can be presented and heard. The hearing is conducted by an academic integrity officer of SEAS and there are usually three faculty members present to hear and decide the case.
- Under any finding that a violation has occurred, a sanction is imposed and the event is sent to the University's Office of Student Conduct and Community Standards.
The violation is part of a student's permanent record at Washington University. See below.If the process described above determines that you have not violated our community standards, then no record of the accusation is retained.
On the other hand, it is important that you understand the short-term consequences of being found in violation of our community standards:
- A lower grade may be issued for the assignment.
- A lower grade may be issued for the course.
- You may be suspended from the university for one or more semesters.
- You may be expelled.
But there are long-term consequences as well. When you are found in violation of our community standards, the university retains the event on your permanent record. The following entities frequently ask the university if you have had problems of this sort, and the university is obligated to report these events to those who ask:
- Graduate schools
- Medical schools
- Law schools
- Employers
- Government agencies
In short, no.
Cheating not academically breaks the trust of your professors and your peers, but it also impairs the person that matters the most: yourself.
If you take a shortcut on an assignment, then you are robbing yourself of that next level of understanding, of potential growth and of the pride of having done something yourself.
Completing an assignment and doing well in a class should come with a sense of accomplishment, which will in turn push you to accomplish more. If you ever feel the need to cheat or do something dishonest, then take a step back and look at the bigger picture.
You are at a top level university with great academic resources and you should be here not only to receive a degree, but also to learn as much as possible. There are a number of alternative options you can take before you cheat:
- Talk to your professor, and ask for an extension. There is no harm in asking.
- Commit to a new schedule, start early, go to TA hours.
- Fail the assignment or receive a lower grade. It is perfectly fine to not do well on an assignment as long as you can evaluate what went wrong. Maybe you need to start earlier, cut back on extracurriculars, or perhaps you are in the wrong class.
- Drop/Withdraw from the class.
In the short-term and long-term, it is never worth it to cheat. There is always another way, and that alternative path will always be more beneficial. Do not risk your personal integrity for one assignment or one class.
There are several principles at work here:In light of the above, it is important that there be clear rules in our courses concerning when and how you are allowed to collaborate. This burden has portions for both faculty and students:
- Computer science and engineering is by its nature a collaborative discipline. Because collaboration skills are valuable in its practice, many of our courses explicitly encourage collaboration.
- We are obligated to assess student performance on an individual basis. Thus, even those courses that feature collaborative assignments also contain assignments that must be completed individually.
- The university, school, and departmental policies on academic integrity state the standards of our community and the consequence that can follow from violating those standards. Academic integrity proceedings are covered elsewhere in this FAQ.
The goals here are to allow as much collaboration as possible while making sure that the limitations of such collaboration are clear and followed by students.
- Faculty are obligated to state on their syllabi, web pages, and assignments the extent to which collaboration is allowed. Faculty try to be as clear as possible, but prose is prone to ambiguity.
- Students are therefore responsible for asking questions in cases where they are not sure about the rules.
Following are some examples of collaborative scenarios from our courses. These are not necessarily the policy in any given course. You must check a given course page's syllabus or web pages for what is allowed in that course. These examples are drawn from many of our courses, and they are only examples for use here:
- A lab allows pair programming, with the stipulation that partners are to contribute equally and that each partner must be able to explain fully the functionality of any portion of the submitted work.
- A studio assignment involves a team of four students who work collaboratively to complete the assignment. A TA is assigned to mentor the team, and part of that mentoring is to ensure that individuals contribute equally to the team's work product.
- A homework assignment allows students to bounce ideas off of other students before writing up a solution, with the requirement that anybody involved in such discussions wih the students is listed at the top of the submitted solution.
- A homework solution allows discussion of problems among students, as long as nothing is written down. The student must wait at least an hour after all such discussions have ended to write up the solution.
Yes! The ACM is an international organization for those who study or practice computer science or computer engineering. ACM is an umbrella organization for varoius special interest groups, each of which concentrates on a specific area of computer science. For example, SIGPLAN is th special interest group on programming languages.Many colleges and universities have student-organized ACM chapters, and we are fortunate to have a vibrant WashU ACM chapter here. We strongly encourage you to check out their web page, follow their twitter feed, and attend events. The chapter typically organizes speakers, trivia nights, movie nights, registration discussion, and a fireside chat each semester with faculty.
Our ACM chapter is one of many throughout the country, and the international ACM sponsors its ICPC programming contest every year.The international contest level is reached by teams competing successfully in local, regional, and state contests.
Washington University has performed well at these contests, having at this writing won 2 international contests. Our success is due to the students' interest in preparing and entering these contests. Our local ACM chapter is responsible for organizing and preparing for these contests. A FAQ entry exists elsewhere for ACM, and you are encouraged to contact them and become involved in the planning and competitions. Also, look for offerings of CSE 232, which is a 1-unit pass/fail course in which you can register to prepare for a contest.
While the goal of this group is winning contests, students involved in such preparation report a stronger connection with other students, with our department, and with the larger CSE community. The students have fun as they prepare, and while software engineering rarely requires solving so many problems so quickly, the experience and training builds confidence.
Yes! The Women in Computer Science (WiCS) group welcomes all women interested in computer science or computer engineering. Our chapter is just one of many, with the goal of increasing the participation and representation of women in CSE, as they are currently in our discipline.This group provides mentoring, talks, preparation for job interviews and graduate school. Our department sends a group of students from WiCS to the annual Grace Hopper conference, and there have been incredibly positive and life-changing results from attending that meeting.
If you identify as a women then we urge you to join WiCS so that you can learn from and contribute to this vibrant group of students.
The title of dean is usually given to an individual who has significant oversight or responsibility for an academic unit, in our case a school of our university.Amoung our schools, there appears to be no consistency between the flavors of dean titles, but an easy way to describe the main dean of a school is to say that he or she reports directly to the provost. These provost-reporting deans are each responsible for all activites of their respective schools: salaries, teaching, research infrastructure, planning, fundraising. The current dean of SEAS is Aaron Bobick, and he is also a faculty member in CSE.
Each school also has a dean who supervises the academic activities of that school. Chris Kroeger is that dean for SEAS, and his office hosts staff who also carry the dean title and who advise and oversee the school's academic programs.
The provost is the chief academic officer at a university. The schools of our institution are organized to be relatively independent. The provost looks for opportunities for advancement of teaching, scholarship, and learning across our schools. The web page for our provost Beverly Wendland shows the nature and breadth of activities associated with our provost's office.
- For graduate admissions, meaning master's and doctoral studies, the department decides on admissions. If you have questions you are enouraged to look at our graduate program pages.
- For transfers between schools (Olin, SEAS, ArtSci, etc.) for students who are already here, the receiving school decides whether or not to admit the transfer student. The conversation should begin with your advisor in your current school. Transfers are usually handled at the end of each semester.
If you are interested in a program in a school other than your prime school, where you are currently advised, then you are encouraged to seek out an advisor in the school of interest as a contact point for questions about that school's programs and procedures. The Undergraduate Engineering Student Services (UESS) office currently housed in Lopata 303 is the place to go.
- For undergraduate students who are not already here, meaning first-year applications or transfer students from other universities, admissions are decided by the University Admissions Office.
The department has no say in these admissions, but if you have a point of contact in the department, that person can furnish a reference letter for you, if that person knows you well enough to provide a letter of value. Even so, it is unclear the role such letters play in the admissions decisions.
You are assigned a departmental advisor when you choose to major or minor in any of our department's programs. If you are a first major in our department, then your advisor must explicitly approve your ability to register for courses. Each semester, there is an advising period during which it is expected that you will make an appointment to meet with your advisor.While approval for registration is one subject for such meetings, you and your advisor will likely engage in conversations concerning
In truth, some students will seek their advisor's approval for registration without such meetings, and some advisors are willing to give such approval. Those students are not making best use of the resources offered by our department, so you are strongly encouraged to meet with your advisor each semester prior to registration.
- other majors or minors that might interest you
- research opportunities
- internships and job search
- difficulties you may be facing
- letters of reference for employment, graduate school, or fellowships
Your advisor can offer advice at other times as well, and if you find yourself in need of such advice, send an email to your advisor and arrange for a conversation to address any concerns you have. Some examples of situations that might trigger a conversation with your advisor are as follows:
- You are struggling in a course and are not sure how to get help.
- You are finding yourself in a difficult semester and you need to lighten your load.
- You are finding yourself with extra time available and would like to consider some activities to enrich your studies.
- You are trying to choose between multiple job or internship offers.
- You have been accused of violating the rules for academic integrity.
- You need a letter of reference.
In all of the above situations, your advisor is best able to help you if your advisor knows you well, and the best way to establish a solid relationship with your advisor is to meet with the advisor regularly, show up promptly for any meetings you have scheduled, and be as prepared as possible for such meetings.
While second majors and minors do not require explicit approval from their advisors to register, they are encouraged for all of the above reasons to meet with their advisors regularly and as needed.
Students at Washington University are assigned many advisors, and it is helpful to know where to turn for advice in particular situations. Generally, your advisors can be split into residential advisors and academic advisors. For academic advisors, you are assigned a 4-year advisor in your primary school. You are also assigned a departmental advisor for any major or minor program in which you are enrolled.Your 4-year advisor can provide information about the requirements, rules, and procedures of your primary school. They can also often give you good advice about your major or minor programs of study, but they are understandably unable to know the details of all of those for every program of study.
Thus, you should turn to your departmental advisor to answer questions about courses specific to your major or minor.
Here are some examples:
- Your 4-year advisor
- Can Personal Finance count toward my social sciences distribution requirement?
- I'd like to study abroad in Lichtenstein. How do I do that?
- I'm thinking of a second major in math. How can I take courses efficiently that count toward my first and second major? What differences are there between similar courses offered by different departments?
- I'm thinking of transferring your schools. How do I do that?
- I have AP credits but I am not sure how they are counting toward my graduation.
- I am struggling in Calculus (or CSE131, or ...). What kind of help can I get?
- I would like to take some courses elsewhere and have them count here. Where can I do that and what courses would count?
- I have been accused of violating academic integrity policies in a course. What should I do?
- Your departmental advisor
- Of course, we are hoping this FAQ answers the most frequently asked questions, but following are examples of questions for your departmental advisor
- What courses should I take if I am interested in Machine Learning?
- I have heard CSE417T is really hard. What can I do to prepare for that course?
- I'd like to be involved in research in the department. How do I go about that?
- How do I best prepare for job interviews, internships, and full-time employment?
- How do I think through my options after finishing my undergraduate programs: master's programs, doctoral studies, immediate employment?
Let's talk about the preparation you should have, and then the sequence of courses you might consider taking.
- Preparation
- Machine learning require a strong background in probability, especially Bayesian analysis. Elsewhere in this FAQ is a listing of probability and statistics courses and the topics they cover. Matrix algebra, linear algebra, and background in algorithms and programming area also necessary.
You can acquire the necessary background by taking courses at our university or by taking courses elsewhere, including online courses. We hope to expand this FAQ by providing more resources along those lines.
- Our department's courses
- Once you have the proper background, following are the courses and their current descriptions. Generally, the courses ending in a T are more theoretical in nature; the courses ending with an A are more practical.
- 417T is the gateway to machine learning in our department. As a T course, it is primarily theory, and it establishes the formal foundations for machine learning. This course carries a heavy (but interesting!) workload, so you should be sure to budget at least 15 hours a week to work on your assignments.
- 517A requires 417T and then goes on to study the application of machine learning technique.
- 511A is a broad-spectrum course on artificial intelligence techniqes. You do not need 417T to take this course, and it serves to introduce you to various approaches of applying AI techniques to solve problems. Currently, those techniques are studied in the context of playing (and winning) at Pac-Man.
- 514A is a course on data mining. It does not require 417T. It explores approaches to processing and analyzing large amounts of data, both structured and unstructured.
- 427S is a course on cloud computing. Here you learn how to apply the MapReduce paradigm to solve large problems more efficiently.
CSE347 is our Analysis of Algorithms course. A discussion of whether it is required for you appears below; however, you should strongly consider taking it even if it is not required. It is a challenging and extremely worthwhile course.CSE347 is a requirement for first- and second-major students who use our current bulletin as the specification of their requirements. While a student at our university, you are are allowed to follow any bulletin dating back to when you would have been a first-year on campus. Some of those programs do not require 347 specifically, but require a T course; 347 counts as a T course. Other programs do not require a T course or 347.
The life of a student at an institution such as Washington University can at times be difficult. Course work, student groups, obligations to family, part-time employment—all of these can conspire to make your plate quite full. Then, too, we know that depression as an illness can and does develop in colleage-age students.It is important first and foremost to take care of yourself. If you, your instructors, your advisors, or your friends develop concerns about your well-being, you are encouraged to explore the services available for counseling, starting with this page.
If somebody you know is in crisis (including, of course, yourself), then information for quick response can be found here. If help is needed immediately, you should call 911.
Please, one question at a time.There are generally two ways you might already know the material in a course:
- Perhaps you have taken a similar course elsewhere. In that case, you should look at the FAQ for transfer courses, so that we can count the course you took elsewhere as the equivalent of a course here.
Study abroad is treated differently, so if the course under scrutiny here was taken while you were officially studying abroad, take a look at the FAQ for studying abroad.
- Perhaps you have studied independently or made use of online resources, but you have not taken a course we can transfer directly into your program here. In that case, read on.
Our faculty would not want you to take a course if you already know that course's material. Questions you should first ask yourself are:
It will help to view the syllabus and any prior information you can find on the web about a course that you believe you need not take.
- How well do you know the material?
- What fraction of the course's material do you know?
From there, our deparatment must evaluate whether you are able to place out of the course. This is handled as follows:
- For CSE131:
If for whatever reason you are placed out of CSE131, there is no other class you have to take in its stead. We hope you will move forward in one of our major or minor programs of study.
- if you have a 4 or 5 on the AP Computer Science test, then you are automatically placed out of CSE131.
- Otherwise, you are invited to take the placement test for CSE131, which determines one of the following outcomes:
- You need not take CSE131, but we hope you will TA it.
- You should take CSE131 and we look forward to seeing you in that class.
- You are borderline, and we prescribe some outside work you should do so that you are at the same point in your studies as those students who take CSE131. You do this work on your own and show it to the person who administered the placment test.
- If you have a 4 or 5 AP score and still want to take the placement exam, we won't stop you.
- For all other courses: You must arrange an interview and perhaps a written test with the department's associate chair, who will have you meet with a professor who has recently taught the course.
If the outcome of this process determines you need not take the course, then it will be waived as a requirement, but you will be required to take some other course in its stead. The actual course you take should be determined by agreement with your academic advisor.
If you are eligible to take the CS A AP exam, and you score a 4 or 5, then you do not have to take CSE131 and you should be able to arrange credit for it when you are on campus through any of your academic advisors.We strongly urge students who place out of CSE131 not to take the course. It is a course meant for students with no background. Every year, some students still want to take it, for comfort of familiar material or to experience our version of the material. That's fine, but we would prefer you move on to another course. We also would consider having you serve as a TA for the course. In that way you can learn the material we teach as well as help other students.
Let's talk about the preparation you should have, and then the sequence of courses you might consider taking.
- Preparation
- Machine learning require a strong background in probability, especially Bayesian analysis. Elsewhere in this FAQ is a listing of probability and statistics courses and the topics they cover. Matrix algebra, linear algebra, and background in algorithms and programming area also necessary.
You can acquire the necessary background by taking courses at our university or by taking courses elsewhere, including online courses. We hope to expand this FAQ by providing more resources along those lines.
- Our department's courses
- Once you have the proper background, following are the courses and their current descriptions. Generally, the courses ending in a T are more theoretical in nature; the courses ending with an A are more practical.
- 417T is the gateway to machine learning in our department. As a T course, it is primarily theory, and it establishes the formal foundations for machine learning. This course carries a heavy (but interesting!) workload, so you should be sure to budget at least 15 hours a week to work on your assignments.
- 517A requires 417T and then goes on to study the application of machine learning technique.
- 511A is a broad-spectrum course on artificial intelligence techniqes. You do not need 417T to take this course, and it serves to introduce you to various approaches of applying AI techniques to solve problems. Currently, those techniques are studied in the context of playing (and winning) at Pac-Man.
- 514A is a course on data mining. It does not require 417T. It explores approaches to processing and analyzing large amounts of data, both structured and unstructured.
- 427S is a course on cloud computing. Here you learn how to apply the MapReduce paradigm to solve large problems more efficiently.
This question presumes you are in one school and are thinking about transferring to another.Why would you want to do such a thing?
Some programs (e.g., computer science and math) offer a first or second major, giving you the following options:
Where students have a choice of first or second major, the considerations students must use in choosing their school usually pertain to the requirements of the school outside of the main program of study. For example, you can earn a computer science first or second major, and the program requirements are the same for the computer science portion. If you do this as a first major, then you must satisfy SEAS distribution requirements. If you do this as a second major, then you must satisfy your primary school's distribution requirements.
- You earn a major in that area of study as a first major, in which case that department's school is your primary school. If you are a first major in computer science or computer engineering, SEAS is your primary school.
- You earn a major in that area of study as a second major, in which case you must have some other major as your first major. If you are primarily a math major and you are earning a second major in computer science, then ArtSci is your primary school.
Thus, the decision of school should be made by thinking about all of the programs (majors and minors) you wish to complete, and then finding the best fit. That fit may be based on the requirements of a particular school, the flexibility it offers to complete programs outside of that school, and the advising and other support you receive.
CSE and SEAS aim to provide you the maximum flexibility in your studies across the university, but your best option will depend on your particular situation. You are encouraged to consider all options and discuss them with your advisors and other mentors.
It is helpful to begin this exploration with your academic and 4-year advisors, but you should also talk with other students, in your current and potential future school, to get as much input as possible to make your decision.
Each school is allowed to have its own rules concerning how courses count toward its programs of study. For example, ArtSci prohibits double counting of almost all courses, so that if a student takes discrete math within the math department (Math 310), then it can count toward a math program or toward computer science, but not both from the ArtSci perspective.However, it is up to each school to reason about whether a given course is necessary for students in its programs of study. Thus, if a student has taken Math 310 there is no reason our department would require that student to take another course (say, CSE240) in discrete math. We indicate this by waiving the discrete math requirement for that student's computer science program, by saying it has been satisfied by studies outside our department. This avoids double counting Math 310, which allows the student to use that course in a math program (or once in any program of study in ArtSci that requires or counts Math 310 as an elective).
Similarly, if a student takes an upper level math course, say Number Theory and Cryptography, we would say that the student then has 3 fewer units to satisfy for elective credit by virtue of studies outside of our department. This allows the Number Theory and Cryptography course to count within ArtSci without any problems.
Our web pages with advising advice for master's students can be found here.You may currently be an undergraduate studying computer science. You may not have begun your studies in computer science. In either case, earning an MS degree in computer science is something you should consider.
Regardless of your specific area of academic study, experience and credentials in computer science are extremely valuable for employment. An MS in computer science may well be your ticket to a job in your area of interest outside of computer science (e.g., economics, business, political science).
Current information should appear here on our web pages. Information speific to the BS/MS program can be found here. Here is an overview and some guidelines:
- A combined undergraduate and masters program requires a total of 150 credits.
- Admission to our masters program is conditional on your performing well in CSE131 and CSE247, also listed as CSE501N and CSE502N, respectively. If you are already a minor or major in computer science, and you have a reasonable GPA, you would almost certainly be admitted to our program. If you do not have 131 or 247, you would be admitted conditionally on taking those courses (501 and 502) and earning a decent grade (B or better) in them.
Thus you can prepare for masters studies in our department, even if not currently a SEAS or CSE student, by taking 131 and 247 and earning a B or better in them.
- There are two flavors of masters degrees: M.Eng. and M.S. and there is more detail on those below.
- Either masters program requires 30 units of credit.
- If you do the undergrad / masters program without interruption, you are allowed to choose up to 6 units to count toward both the undergrad and masters portions. You must still reach 150 total units of credit. Of the units you designate in this way, each unit must ordinarily count toward each program. For example, 361S cannot be applied in this way because masters courses must be 400-level or higher. But 547T can be designated to count toward your undergraduate and masters programs.
- If you are already a Washington University undergraduate, you do not need to take the GRE to apply for our masters programs.
- Washington University students may also qualify for a tuition discount, which is based on your GPA, as shown here (under Scholarship and Financial Aid).
- If you can get a letter of recommendation from a faculty member in CSE, then that letter is the only one you need. Otherwise, three letters are required.
- You must apply for the undergraduate / masters program by the deadline.
ArtSci students We welcome you to our masters' programs, but the arrangements here are more involved. Here are some guidelines:
- ArtSci will count at most 30 units outside their school toward your undergraduate graduation. Nonetheless, you can take as many courses as you like outside of ArtSci and bank those toward whatever programs you intend to complete. You would still require 90 units within ArtSci to graduate from their school.
- othr stuff
M.Eng. vs M.S.
At one time, the distinction between these two degrees was:
The above distinctions don't hold any longer. First, any student can go on for doctoral studies, and it is not necessary to complete an M.S. degree on their way to a PhD (though many do). Second, at one point M.Eng. was considered a 15-month program, but we no longer think of it as any quicker than the M.S. degree.
- M.Eng. was considered terminal, in that students completing this degree were not going to pursue doctoral studies.
- M.S. was considered a way point toward doctoral studies; some students might continue, but some might not.
So how do you choose? Take a look at the requirements for M.Eng. and M.S. (and there is a version of M.S. for Computer Engineering). The primary distinctions are now:
Our intention is that the M.Eng. degree is more interdisciplinary, allowing explicitly for credit outside our department. The associated project is required, to demonstrate mastery of engineering in computer science or computer engineering.
- The M.Eng. requires a 6-unit project. Thus our faculty are obligated to supervise M.Eng. projects so you can complete your degree.
- The M.Eng. is more flexible about 400-level courses. It allows you to take up to 15 units of 400-level credit. The M.S. degrees allow at most 9 such units.
- For the M.S., you can finish using courework alone. Or you can spend up to 6 units on an M.S. project or an M.S. thesis. More on this below.
Project or thesis or just courses? For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project. The issues related to project or thesis are covered elsewhere in this FAQ.
These days it is easy to appreciate the role computers play in our lives. Our communications with each other, our planning, our entertainment are made possible or made better by using computers. Social media has made it possible to stay in touch with friends in ways that were previously infeasible. Models that predict dangerous weather events are saving lives as people who face hurricanes and tornadoes can prepare for their arrival.Computer science, computer engineering, computer programming, computational thought, computational science—job postings are increasingly asking for experience or skills in those areas. Academically we find that programs of study across the university are seeing benefits for those students who undertake studies in those areas. While the ability to put pen to paper for the purpose of creating clear and persuasive prose was the universally sought skill of our past, the ability to harness the power of computers and computation is the universally sought skill of our future. Commputers are allowing us to ask, and sometimes answer, questions that are far beyond what was deemed possible even two decades ago. The very basis of our life, DNA, was beyond understanding until computers could piece together the human genome.
Beyond the pragmatic need to understand the use of computers and computation for problem solving, computers are the embodiment of logic. Students who study computer science and engineering find that they think differently as a result of those studies. In a lecture given at our university, Carl Wieman claimed that every discipline you study at a university is actually trying to train you to think as they do. As exmplified by many jokes, a physicist, mathematician, and computer scientist will approach problems differently.
Whatever your primary interests, whatever your majors or minors, some study of computer science and engineering will provide you with greater ability to practice your primary interests, cause you to approach problems in new and useful ways, and provide you with skills that are considered valuable in the marketplace.
- Get interested/inspired.
- Read lots of code. Look at what others have done and learn from them.
- Write lots of code. It doesn't have to be efficient or very good.
- Explain your code to someone else. This step will test your understanding and show you what you don't completely understand.
- Make mistakes. Learn from them. Optimize your code. Repeat.
Before you look at which courses to take or your curriculum plan, it is also a good idea to understand what it takes to become a programmer or computer scientist. Peter Norvig, a well-known American computer scientist and director of research at Google, wrote a brief article “Teach Yourself Programming in Ten Years” that highlights the steps to success.
He first discusses a key idea that is central to any discipline or skill: deliberate practice. You don‘t want to just do something repetitively, but instead challenge yourself with increasing difficult tasks that push your current ability. Make mistakes, learn and analyze them, then correct them.
Repeat ad nauseam and understand that mastering computer science/programming will NOT happen in a week, over the course of a semester, or even over the course of your college career. Research has shown that it takes about TEN years, or Malcolm Gladwell‘ 10,000 hours, to develop expertise in your area of interest.
So, if you have decided to become a programmer/computer scientist, then here‘s a shortened and adapted list of Peter Norvig‘s “recipe for programming success” that can help you reach those 10 years/10,000 hours.
- Get interested in programming, and do some because it is fun. Take a look at areas of research in computer science here at WashU. Start with simple, easy to understand programs and look for something you enjoy doing.
- Program and learn by doing. It is appropriate to mention this brief parable from “Art and Fear” by David Bayles and Ted Orland. “The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot - albeit a perfect one - to get an "A". Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes - the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.”
- Talk with other programmers. Your fellow students, TAs, and professors will be your greatest resource. Read other programs and ask lots of questions. As Peter Norvig says, “This is more important than any book or training course.”
Peter Norvig has more great advice in his article, and you can read more of his writing here.
On a final note, your real expertise as a programmer/computer scientist comes from consistency and an effort to improve over the long-term. So start programming!
You should consider the kind of materials you have and the best way of making sure you don't lose them, should your laptop fail.
- Personal pictures, movies, and music should be backed up to the cloud. Apple and other companies offer cloud-based services that can host your media so that you never lose anything and so that your media is available across multiple devices, such as your laptop and your phone.
- Many of our courses use a repository, which is hosted at a site such as bitbucket. You should get into the habit of working on your software projects using the following approach:
If you follow these instructions, then if your laptop should fail you will lose no work.
- When you are ready to work, pull any changes from the repository to your laptop.
- When you are at an articulation point in our work, or if you have spent an hour working toward an articulation point, commit and push your code back to the repository.
- Other files can be backed up to dropbox or box or other such providers.
Let's talk about the preparation you should have, and then the sequence of courses you might consider taking.
- Preparation
- Machine learning require a strong background in probability, especially Bayesian analysis. Elsewhere in this FAQ is a listing of probability and statistics courses and the topics they cover. Matrix algebra, linear algebra, and background in algorithms and programming area also necessary.
You can acquire the necessary background by taking courses at our university or by taking courses elsewhere, including online courses. We hope to expand this FAQ by providing more resources along those lines.
- Our department's courses
- Once you have the proper background, following are the courses and their current descriptions. Generally, the courses ending in a T are more theoretical in nature; the courses ending with an A are more practical.
- 417T is the gateway to machine learning in our department. As a T course, it is primarily theory, and it establishes the formal foundations for machine learning. This course carries a heavy (but interesting!) workload, so you should be sure to budget at least 15 hours a week to work on your assignments.
- 517A requires 417T and then goes on to study the application of machine learning technique.
- 511A is a broad-spectrum course on artificial intelligence techniqes. You do not need 417T to take this course, and it serves to introduce you to various approaches of applying AI techniques to solve problems. Currently, those techniques are studied in the context of playing (and winning) at Pac-Man.
- 514A is a course on data mining. It does not require 417T. It explores approaches to processing and analyzing large amounts of data, both structured and unstructured.
- 427S is a course on cloud computing. Here you learn how to apply the MapReduce paradigm to solve large problems more efficiently.
This minor is typically of interest for our students who want to study medicine or biology, as it combines studies in both departments. The requirements can be found here, and all bioinformatics minors are advised by Prof. Jeremy Buhler.
Our web pages with advising advice for master's students can be found here.You may currently be an undergraduate studying computer science. You may not have begun your studies in computer science. In either case, earning an MS degree in computer science is something you should consider.
Regardless of your specific area of academic study, experience and credentials in computer science are extremely valuable for employment. An MS in computer science may well be your ticket to a job in your area of interest outside of computer science (e.g., economics, business, political science).
Current information should appear here on our web pages. Information speific to the BS/MS program can be found here. Here is an overview and some guidelines:
- A combined undergraduate and masters program requires a total of 150 credits.
- Admission to our masters program is conditional on your performing well in CSE131 and CSE247, also listed as CSE501N and CSE502N, respectively. If you are already a minor or major in computer science, and you have a reasonable GPA, you would almost certainly be admitted to our program. If you do not have 131 or 247, you would be admitted conditionally on taking those courses (501 and 502) and earning a decent grade (B or better) in them.
Thus you can prepare for masters studies in our department, even if not currently a SEAS or CSE student, by taking 131 and 247 and earning a B or better in them.
- There are two flavors of masters degrees: M.Eng. and M.S. and there is more detail on those below.
- Either masters program requires 30 units of credit.
- If you do the undergrad / masters program without interruption, you are allowed to choose up to 6 units to count toward both the undergrad and masters portions. You must still reach 150 total units of credit. Of the units you designate in this way, each unit must ordinarily count toward each program. For example, 361S cannot be applied in this way because masters courses must be 400-level or higher. But 547T can be designated to count toward your undergraduate and masters programs.
- If you are already a Washington University undergraduate, you do not need to take the GRE to apply for our masters programs.
- Washington University students may also qualify for a tuition discount, which is based on your GPA, as shown here (under Scholarship and Financial Aid).
- If you can get a letter of recommendation from a faculty member in CSE, then that letter is the only one you need. Otherwise, three letters are required.
- You must apply for the undergraduate / masters program by the deadline.
ArtSci students We welcome you to our masters' programs, but the arrangements here are more involved. Here are some guidelines:
- ArtSci will count at most 30 units outside their school toward your undergraduate graduation. Nonetheless, you can take as many courses as you like outside of ArtSci and bank those toward whatever programs you intend to complete. You would still require 90 units within ArtSci to graduate from their school.
- othr stuff
M.Eng. vs M.S.
At one time, the distinction between these two degrees was:
The above distinctions don't hold any longer. First, any student can go on for doctoral studies, and it is not necessary to complete an M.S. degree on their way to a PhD (though many do). Second, at one point M.Eng. was considered a 15-month program, but we no longer think of it as any quicker than the M.S. degree.
- M.Eng. was considered terminal, in that students completing this degree were not going to pursue doctoral studies.
- M.S. was considered a way point toward doctoral studies; some students might continue, but some might not.
So how do you choose? Take a look at the requirements for M.Eng. and M.S. (and there is a version of M.S. for Computer Engineering). The primary distinctions are now:
Our intention is that the M.Eng. degree is more interdisciplinary, allowing explicitly for credit outside our department. The associated project is required, to demonstrate mastery of engineering in computer science or computer engineering.
- The M.Eng. requires a 6-unit project. Thus our faculty are obligated to supervise M.Eng. projects so you can complete your degree.
- The M.Eng. is more flexible about 400-level courses. It allows you to take up to 15 units of 400-level credit. The M.S. degrees allow at most 9 such units.
- For the M.S., you can finish using courework alone. Or you can spend up to 6 units on an M.S. project or an M.S. thesis. More on this below.
Project or thesis or just courses? For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project. The issues related to project or thesis are covered elsewhere in this FAQ.
For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project, and the MS degrees allow a project or a thesis.The differences are described below, but it's worth saying that our dean's office supports students moving between thesis and project credits with the agreement of their advisors. So a student may start out with a project, but if the work develops along the lines of a thesis, the advisor and student can ask the credit to be changed. Similarly, the change can go in the other direction.
So you can spend up to 6 units on a project or thesis for the M.S. degrees. Here are some thoughts and guideline about that:
It takes discpline and a strong work ethic to complete either a project or a thesis. If you work better in a structured class-like environment, then perhaps the course-only option is best for you. However, students express satisfaction and experience growth doing theses or projects.
- In either case, you must secure the supervision of a faculty member for a project or thesis. The work involved would have to be of mutual interest.
- A thesis requires a written document, and must represent original work, usually of publishable quality. The writing and substance of your thesis is defended orally in front of a committee in an open forum.
While this is arguably more work that coursework or a project, it is recommended for students interested in research and for whom doctoral studies may be in their future.
- The project requires a two-page extended abstract of your work, and the result of your work is presented to a committee in a closed or open forum.
A project demonstrates your mastery of computer science. It is akin to independent study, in that the hours you spend are determined by you. However, we usually say that 3 units of credit is about 10 hours of work a week. Thus, a 6-unit project over two semesters should consume about 300 hours of your time.
So consider the options carefully, talk with your colleagues and advisors, and make an informed decision.
The answer here depends on the courses in computer science you wish to take and the other majors or minors you are completing at the university.ESE 326 is our school's course in probability and statistics. It's a great course and you are welcome to use that to satisfy our requirement.
But if you are a major or minor outside our school, you should consider other departments' probability/statistics offerings, which we count as follows:
- Students studying Math may be required to take Math 3200, which we count.
- If you are considering a program in the Olin Business School, most of those require QBA 120 and QBA 121. If you take both of those courses, then Our department considers your probability/statistics requirement satsified.
- If you are considering a major or minor in Psychology, you may be taking Pysch 300, which we count.
In cases where the course you take is outside our school, look elsewhere in this FAQ for double counting to learn how that is handled.Another important consideration is to think about the courses you want to take in computer science. Which topics do those courses require and which probability/statisics courses cover those topics? Here is a table to help you make an informed decision:
TBD
I have found this calendar to be very reliable. It's published by Arts and Sciences, and you can navigate to any semester.The Olin School of Business has their own schedule, but McKelvey follows the ArtSci calendar for all the important dates.
An open program is a major or minor that you have in progress. WebSTAC can show you your open programs, and most changes to your programs can be done there too. You can declare second majors, switch from one major to another within the school, declare a minor program—all within WebSTAC.Some changes require approval of an advisor or two, and emails are generated automatically by the changes you request to obtain such approvals.
How do you know how your classes you've taken fit into a new major you might choose? WUAchieve can show you that. If you can't get it to show you the program you want, please see Dean Tobin Harris in the Undergradute Engineering Student Services office.
Some changes require a more personal touch. Would you like to switch your major program to the one that was in the Bulletin at the start of your sophomore year? If you cannot manage to do that via WebSTAC, then you should correspond with Dean Tobin Harris in the Engineering Student Services office. He has magic powers to make WebSTAC and WUAchieve follow the programs of your dreams.
Transferring schools? That's a bigger deal and requires more meetings, emails, and approvals, but it also begins with WebSTAC. Look for the Change WU School link. I'm told it's there but because I'm not a student, I can't verify its existence. Why transfer schools? That's the subject of another FAQ.
An open program is a major or minor that you have in progress. WebSTAC can show you your open programs, and most changes to your programs can be done there too. You can declare second majors, switch from one major to another within the school, declare a minor program—all within WebSTAC.Some changes require approval of an advisor or two, and emails are generated automatically by the changes you request to obtain such approvals.
How do you know how your classes you've taken fit into a new major you might choose? WUAchieve can show you that. If you can't get it to show you the program you want, please see Dean Tobin Harris in the Undergradute Engineering Student Services office.
Some changes require a more personal touch. Would you like to switch your major program to the one that was in the Bulletin at the start of your sophomore year? If you cannot manage to do that via WebSTAC, then you should correspond with Dean Tobin Harris in the Engineering Student Services office. He has magic powers to make WebSTAC and WUAchieve follow the programs of your dreams.
Transferring schools? That's a bigger deal and requires more meetings, emails, and approvals, but it also begins with WebSTAC. Look for the Change WU School link. I'm told it's there but because I'm not a student, I can't verify its existence. Why transfer schools? That's the subject of another FAQ.
It is useful to view academic integrity at the university, school, and course levels.Recently a committee of faculty and administrators met to consider broad changes to the academic integrity process at Washington University. This response is accurate as of this writing, and it will be updated should the university decide to make changes.In overview the process for dealing with alleged vioations of integrity proceeds as follows:
- The university's Office of Student Conduct and Community Standards publishes a page on Academic Integrity which in turn references the university's Academic Integrity Policy.
That policy covers the general principles of academic integrity, but it delegates to each course the specification of allowable collaboration.
- The school is primarily responsible for prosecuting cases of alleged violation of academic integrity. The details of this process are covered below.
- Each course should publish the boundaries of allowed collaboration. Such information may be covered on the course's web page or syllabus, or on particular assignments. As covered elsewhere in this FAQ, it is important that students read and understand the boundaries of allowed collaboration, and ask questions where anything is unclear.
- An instructor, TA, or student files a complaint with the SEAS Engineering Student Services office that a violation may have occurred. The complainant provides evidence along a quote of the particular academic integrity rule that may have been violated.
- Our school's academic integrity officer requests a meeting with the person accused of the violation. The evidence is presented and the student has the option of agreeing the violation took place, or the student can request a formal hearing.
- If a hearing is convened, then the complainant presents the evidence and the student can respond. The goal here is a fair hearing in which all relevant material can be presented and heard. The hearing is conducted by an academic integrity officer of SEAS and there are usually three faculty members present to hear and decide the case.
- Under any finding that a violation has occurred, a sanction is imposed and the event is sent to the University's Office of Student Conduct and Community Standards.
The violation is part of a student's permanent record at Washington University. See below.If the process described above determines that you have not violated our community standards, then no record of the accusation is retained.
On the other hand, it is important that you understand the short-term consequences of being found in violation of our community standards:
- A lower grade may be issued for the assignment.
- A lower grade may be issued for the course.
- You may be suspended from the university for one or more semesters.
- You may be expelled.
But there are long-term consequences as well. When you are found in violation of our community standards, the university retains the event on your permanent record. The following entities frequently ask the university if you have had problems of this sort, and the university is obligated to report these events to those who ask:
- Graduate schools
- Medical schools
- Law schools
- Employers
- Government agencies
In short, no.
Cheating not academically breaks the trust of your professors and your peers, but it also impairs the person that matters the most: yourself.
If you take a shortcut on an assignment, then you are robbing yourself of that next level of understanding, of potential growth and of the pride of having done something yourself.
Completing an assignment and doing well in a class should come with a sense of accomplishment, which will in turn push you to accomplish more. If you ever feel the need to cheat or do something dishonest, then take a step back and look at the bigger picture.
You are at a top level university with great academic resources and you should be here not only to receive a degree, but also to learn as much as possible. There are a number of alternative options you can take before you cheat:
- Talk to your professor, and ask for an extension. There is no harm in asking.
- Commit to a new schedule, start early, go to TA hours.
- Fail the assignment or receive a lower grade. It is perfectly fine to not do well on an assignment as long as you can evaluate what went wrong. Maybe you need to start earlier, cut back on extracurriculars, or perhaps you are in the wrong class.
- Drop/Withdraw from the class.
In the short-term and long-term, it is never worth it to cheat. There is always another way, and that alternative path will always be more beneficial. Do not risk your personal integrity for one assignment or one class.
There are several principles at work here:In light of the above, it is important that there be clear rules in our courses concerning when and how you are allowed to collaborate. This burden has portions for both faculty and students:
- Computer science and engineering is by its nature a collaborative discipline. Because collaboration skills are valuable in its practice, many of our courses explicitly encourage collaboration.
- We are obligated to assess student performance on an individual basis. Thus, even those courses that feature collaborative assignments also contain assignments that must be completed individually.
- The university, school, and departmental policies on academic integrity state the standards of our community and the consequence that can follow from violating those standards. Academic integrity proceedings are covered elsewhere in this FAQ.
The goals here are to allow as much collaboration as possible while making sure that the limitations of such collaboration are clear and followed by students.
- Faculty are obligated to state on their syllabi, web pages, and assignments the extent to which collaboration is allowed. Faculty try to be as clear as possible, but prose is prone to ambiguity.
- Students are therefore responsible for asking questions in cases where they are not sure about the rules.
Following are some examples of collaborative scenarios from our courses. These are not necessarily the policy in any given course. You must check a given course page's syllabus or web pages for what is allowed in that course. These examples are drawn from many of our courses, and they are only examples for use here:
- A lab allows pair programming, with the stipulation that partners are to contribute equally and that each partner must be able to explain fully the functionality of any portion of the submitted work.
- A studio assignment involves a team of four students who work collaboratively to complete the assignment. A TA is assigned to mentor the team, and part of that mentoring is to ensure that individuals contribute equally to the team's work product.
- A homework assignment allows students to bounce ideas off of other students before writing up a solution, with the requirement that anybody involved in such discussions wih the students is listed at the top of the submitted solution.
- A homework solution allows discussion of problems among students, as long as nothing is written down. The student must wait at least an hour after all such discussions have ended to write up the solution.
Take a look here.
Take a look here.
We are the Department of Computer Science and Engineering, and we offer majors in both computer science (CS) and computer engineering (CoE) . How do students decide which major they prefer?While it's generally true that computer science is more focused on software and computer engineering on hardware, the differences are not that simple. One colleague (Jon Turner) puts it this way:
Computer engineers are able to consider more options for applications that have performance, response, or error tolerance constraints.
- Computer scientists think about solving problems using software.
- Electrical engineers think about solving problems using hardware.
- Computer engineers think about the tradeoffs of deploying various parts of an application in hardware or software.
Because there is substantial overlap between the two majors of study, students can move fluidly between the two programs. Students should use WebSTAC to switch majors, and they will typically keep the same departmental advisor when switching.
The requirements for the majors can be found here, and you can see that the CoE program requires more background in math and in basic electrical engineering than does the CS program.
There are several principles at work here:In light of the above, it is important that there be clear rules in our courses concerning when and how you are allowed to collaborate. This burden has portions for both faculty and students:
- Computer science and engineering is by its nature a collaborative discipline. Because collaboration skills are valuable in its practice, many of our courses explicitly encourage collaboration.
- We are obligated to assess student performance on an individual basis. Thus, even those courses that feature collaborative assignments also contain assignments that must be completed individually.
- The university, school, and departmental policies on academic integrity state the standards of our community and the consequence that can follow from violating those standards. Academic integrity proceedings are covered elsewhere in this FAQ.
The goals here are to allow as much collaboration as possible while making sure that the limitations of such collaboration are clear and followed by students.
- Faculty are obligated to state on their syllabi, web pages, and assignments the extent to which collaboration is allowed. Faculty try to be as clear as possible, but prose is prone to ambiguity.
- Students are therefore responsible for asking questions in cases where they are not sure about the rules.
Following are some examples of collaborative scenarios from our courses. These are not necessarily the policy in any given course. You must check a given course page's syllabus or web pages for what is allowed in that course. These examples are drawn from many of our courses, and they are only examples for use here:
- A lab allows pair programming, with the stipulation that partners are to contribute equally and that each partner must be able to explain fully the functionality of any portion of the submitted work.
- A studio assignment involves a team of four students who work collaboratively to complete the assignment. A TA is assigned to mentor the team, and part of that mentoring is to ensure that individuals contribute equally to the team's work product.
- A homework assignment allows students to bounce ideas off of other students before writing up a solution, with the requirement that anybody involved in such discussions wih the students is listed at the top of the submitted solution.
- A homework solution allows discussion of problems among students, as long as nothing is written down. The student must wait at least an hour after all such discussions have ended to write up the solution.
It is useful to view academic integrity at the university, school, and course levels.Recently a committee of faculty and administrators met to consider broad changes to the academic integrity process at Washington University. This response is accurate as of this writing, and it will be updated should the university decide to make changes.In overview the process for dealing with alleged vioations of integrity proceeds as follows:
- The university's Office of Student Conduct and Community Standards publishes a page on Academic Integrity which in turn references the university's Academic Integrity Policy.
That policy covers the general principles of academic integrity, but it delegates to each course the specification of allowable collaboration.
- The school is primarily responsible for prosecuting cases of alleged violation of academic integrity. The details of this process are covered below.
- Each course should publish the boundaries of allowed collaboration. Such information may be covered on the course's web page or syllabus, or on particular assignments. As covered elsewhere in this FAQ, it is important that students read and understand the boundaries of allowed collaboration, and ask questions where anything is unclear.
- An instructor, TA, or student files a complaint with the SEAS Engineering Student Services office that a violation may have occurred. The complainant provides evidence along a quote of the particular academic integrity rule that may have been violated.
- Our school's academic integrity officer requests a meeting with the person accused of the violation. The evidence is presented and the student has the option of agreeing the violation took place, or the student can request a formal hearing.
- If a hearing is convened, then the complainant presents the evidence and the student can respond. The goal here is a fair hearing in which all relevant material can be presented and heard. The hearing is conducted by an academic integrity officer of SEAS and there are usually three faculty members present to hear and decide the case.
- Under any finding that a violation has occurred, a sanction is imposed and the event is sent to the University's Office of Student Conduct and Community Standards.
The violation is part of a student's permanent record at Washington University. See below.If the process described above determines that you have not violated our community standards, then no record of the accusation is retained.
On the other hand, it is important that you understand the short-term consequences of being found in violation of our community standards:
- A lower grade may be issued for the assignment.
- A lower grade may be issued for the course.
- You may be suspended from the university for one or more semesters.
- You may be expelled.
But there are long-term consequences as well. When you are found in violation of our community standards, the university retains the event on your permanent record. The following entities frequently ask the university if you have had problems of this sort, and the university is obligated to report these events to those who ask:
- Graduate schools
- Medical schools
- Law schools
- Employers
- Government agencies
In short, no.
Cheating not academically breaks the trust of your professors and your peers, but it also impairs the person that matters the most: yourself.
If you take a shortcut on an assignment, then you are robbing yourself of that next level of understanding, of potential growth and of the pride of having done something yourself.
Completing an assignment and doing well in a class should come with a sense of accomplishment, which will in turn push you to accomplish more. If you ever feel the need to cheat or do something dishonest, then take a step back and look at the bigger picture.
You are at a top level university with great academic resources and you should be here not only to receive a degree, but also to learn as much as possible. There are a number of alternative options you can take before you cheat:
- Talk to your professor, and ask for an extension. There is no harm in asking.
- Commit to a new schedule, start early, go to TA hours.
- Fail the assignment or receive a lower grade. It is perfectly fine to not do well on an assignment as long as you can evaluate what went wrong. Maybe you need to start earlier, cut back on extracurriculars, or perhaps you are in the wrong class.
- Drop/Withdraw from the class.
In the short-term and long-term, it is never worth it to cheat. There is always another way, and that alternative path will always be more beneficial. Do not risk your personal integrity for one assignment or one class.
There are several principles at work here:In light of the above, it is important that there be clear rules in our courses concerning when and how you are allowed to collaborate. This burden has portions for both faculty and students:
- Computer science and engineering is by its nature a collaborative discipline. Because collaboration skills are valuable in its practice, many of our courses explicitly encourage collaboration.
- We are obligated to assess student performance on an individual basis. Thus, even those courses that feature collaborative assignments also contain assignments that must be completed individually.
- The university, school, and departmental policies on academic integrity state the standards of our community and the consequence that can follow from violating those standards. Academic integrity proceedings are covered elsewhere in this FAQ.
The goals here are to allow as much collaboration as possible while making sure that the limitations of such collaboration are clear and followed by students.
- Faculty are obligated to state on their syllabi, web pages, and assignments the extent to which collaboration is allowed. Faculty try to be as clear as possible, but prose is prone to ambiguity.
- Students are therefore responsible for asking questions in cases where they are not sure about the rules.
Following are some examples of collaborative scenarios from our courses. These are not necessarily the policy in any given course. You must check a given course page's syllabus or web pages for what is allowed in that course. These examples are drawn from many of our courses, and they are only examples for use here:
- A lab allows pair programming, with the stipulation that partners are to contribute equally and that each partner must be able to explain fully the functionality of any portion of the submitted work.
- A studio assignment involves a team of four students who work collaboratively to complete the assignment. A TA is assigned to mentor the team, and part of that mentoring is to ensure that individuals contribute equally to the team's work product.
- A homework assignment allows students to bounce ideas off of other students before writing up a solution, with the requirement that anybody involved in such discussions wih the students is listed at the top of the submitted solution.
- A homework solution allows discussion of problems among students, as long as nothing is written down. The student must wait at least an hour after all such discussions have ended to write up the solution.
Computers continue to drop in price as they increase in both speed and available storage. If you are interested in studies in our department, here are some guidelines about a computer:
- We recommend a laptop over a desktop, so that you can more easily collaborate by bringing your laptop to work in groups. Laptops are also convenient in class for taking notes and for experimenting with ideas presented in some classes.
- Working on code usually is easier with a larger screen. While this does increase the size and weight of your laptop, you will probably appreciate the extra screen real estate so that you can look at various portions of code at the same same time.
- If you buy a new laptop, then he clock rate of the CPU is not all that important. Unless you plan to do some heavy computation on your laptop, something at or above 2 GHz is fine.
- If you have a choice of a solid state disk (SSD) you should pick that over the older moving-head disks. The SSD will make your computer perform much faster. They are generally more expensive, but like all disks, their price is correlated to the space they provide.
- How much disk space do you need? At least 256 GB for your work in courses. Remember the disk has to accommodate all your system software as well as applications you install for courses and the data you generate for your courses. If you like lots of music and want it resident on your laptop, consider a 512 GB SSD drive. If you are feeling flush or if you like lots of musics resident on our laptop, consider a 1 TB drive.
- Some students seem to find cheaper installations of operating systems via nonstandard vendors. Please steer clear of those, as the software we use does not always work well on nonstandard installations. If you stop by EIT they can often provide you with standard installations of common software.
You should consider the kind of materials you have and the best way of making sure you don't lose them, should your laptop fail.
- Personal pictures, movies, and music should be backed up to the cloud. Apple and other companies offer cloud-based services that can host your media so that you never lose anything and so that your media is available across multiple devices, such as your laptop and your phone.
- Many of our courses use a repository, which is hosted at a site such as bitbucket. You should get into the habit of working on your software projects using the following approach:
If you follow these instructions, then if your laptop should fail you will lose no work.
- When you are ready to work, pull any changes from the repository to your laptop.
- When you are at an articulation point in our work, or if you have spent an hour working toward an articulation point, commit and push your code back to the repository.
- Other files can be backed up to dropbox or box or other such providers.
This question is more in the area of religious studies and philosphy than computer science. It doesn't really matter in terms of your studies in computer science, but you will find that students and faculty alike can be passionate about their choice of computer.
These days it is easy to appreciate the role computers play in our lives. Our communications with each other, our planning, our entertainment are made possible or made better by using computers. Social media has made it possible to stay in touch with friends in ways that were previously infeasible. Models that predict dangerous weather events are saving lives as people who face hurricanes and tornadoes can prepare for their arrival.Computer science, computer engineering, computer programming, computational thought, computational science—job postings are increasingly asking for experience or skills in those areas. Academically we find that programs of study across the university are seeing benefits for those students who undertake studies in those areas. While the ability to put pen to paper for the purpose of creating clear and persuasive prose was the universally sought skill of our past, the ability to harness the power of computers and computation is the universally sought skill of our future. Commputers are allowing us to ask, and sometimes answer, questions that are far beyond what was deemed possible even two decades ago. The very basis of our life, DNA, was beyond understanding until computers could piece together the human genome.
Beyond the pragmatic need to understand the use of computers and computation for problem solving, computers are the embodiment of logic. Students who study computer science and engineering find that they think differently as a result of those studies. In a lecture given at our university, Carl Wieman claimed that every discipline you study at a university is actually trying to train you to think as they do. As exmplified by many jokes, a physicist, mathematician, and computer scientist will approach problems differently.
Whatever your primary interests, whatever your majors or minors, some study of computer science and engineering will provide you with greater ability to practice your primary interests, cause you to approach problems in new and useful ways, and provide you with skills that are considered valuable in the marketplace.
We are the Department of Computer Science and Engineering, and we offer majors in both computer science (CS) and computer engineering (CoE) . How do students decide which major they prefer?While it's generally true that computer science is more focused on software and computer engineering on hardware, the differences are not that simple. One colleague (Jon Turner) puts it this way:
Computer engineers are able to consider more options for applications that have performance, response, or error tolerance constraints.
- Computer scientists think about solving problems using software.
- Electrical engineers think about solving problems using hardware.
- Computer engineers think about the tradeoffs of deploying various parts of an application in hardware or software.
Because there is substantial overlap between the two majors of study, students can move fluidly between the two programs. Students should use WebSTAC to switch majors, and they will typically keep the same departmental advisor when switching.
The requirements for the majors can be found here, and you can see that the CoE program requires more background in math and in basic electrical engineering than does the CS program.
You can't: we don't offer a second major in computer engineering. May we suggest a second major in computer science, where you focus on computer engineering courework? Or perhaps you would like to make computer engineering your primary major?
You can't: we don't offer a minor in computer engineering. May we suggest a minor in computer science? While many computer engineering courses have prerequisites, you may find some courses such as 260M suitable for a minor in computer science that will provide you some background in computer engineering.
- Get interested/inspired.
- Read lots of code. Look at what others have done and learn from them.
- Write lots of code. It doesn't have to be efficient or very good.
- Explain your code to someone else. This step will test your understanding and show you what you don't completely understand.
- Make mistakes. Learn from them. Optimize your code. Repeat.
Before you look at which courses to take or your curriculum plan, it is also a good idea to understand what it takes to become a programmer or computer scientist. Peter Norvig, a well-known American computer scientist and director of research at Google, wrote a brief article “Teach Yourself Programming in Ten Years” that highlights the steps to success.
He first discusses a key idea that is central to any discipline or skill: deliberate practice. You don‘t want to just do something repetitively, but instead challenge yourself with increasing difficult tasks that push your current ability. Make mistakes, learn and analyze them, then correct them.
Repeat ad nauseam and understand that mastering computer science/programming will NOT happen in a week, over the course of a semester, or even over the course of your college career. Research has shown that it takes about TEN years, or Malcolm Gladwell‘ 10,000 hours, to develop expertise in your area of interest.
So, if you have decided to become a programmer/computer scientist, then here‘s a shortened and adapted list of Peter Norvig‘s “recipe for programming success” that can help you reach those 10 years/10,000 hours.
- Get interested in programming, and do some because it is fun. Take a look at areas of research in computer science here at WashU. Start with simple, easy to understand programs and look for something you enjoy doing.
- Program and learn by doing. It is appropriate to mention this brief parable from “Art and Fear” by David Bayles and Ted Orland. “The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot - albeit a perfect one - to get an "A". Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes - the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.”
- Talk with other programmers. Your fellow students, TAs, and professors will be your greatest resource. Read other programs and ask lots of questions. As Peter Norvig says, “This is more important than any book or training course.”
Peter Norvig has more great advice in his article, and you can read more of his writing here.
On a final note, your real expertise as a programmer/computer scientist comes from consistency and an effort to improve over the long-term. So start programming!
These days it is easy to appreciate the role computers play in our lives. Our communications with each other, our planning, our entertainment are made possible or made better by using computers. Social media has made it possible to stay in touch with friends in ways that were previously infeasible. Models that predict dangerous weather events are saving lives as people who face hurricanes and tornadoes can prepare for their arrival.Computer science, computer engineering, computer programming, computational thought, computational science—job postings are increasingly asking for experience or skills in those areas. Academically we find that programs of study across the university are seeing benefits for those students who undertake studies in those areas. While the ability to put pen to paper for the purpose of creating clear and persuasive prose was the universally sought skill of our past, the ability to harness the power of computers and computation is the universally sought skill of our future. Commputers are allowing us to ask, and sometimes answer, questions that are far beyond what was deemed possible even two decades ago. The very basis of our life, DNA, was beyond understanding until computers could piece together the human genome.
Beyond the pragmatic need to understand the use of computers and computation for problem solving, computers are the embodiment of logic. Students who study computer science and engineering find that they think differently as a result of those studies. In a lecture given at our university, Carl Wieman claimed that every discipline you study at a university is actually trying to train you to think as they do. As exmplified by many jokes, a physicist, mathematician, and computer scientist will approach problems differently.
Whatever your primary interests, whatever your majors or minors, some study of computer science and engineering will provide you with greater ability to practice your primary interests, cause you to approach problems in new and useful ways, and provide you with skills that are considered valuable in the marketplace.
We are the Department of Computer Science and Engineering, and we offer majors in both computer science (CS) and computer engineering (CoE) . How do students decide which major they prefer?While it's generally true that computer science is more focused on software and computer engineering on hardware, the differences are not that simple. One colleague (Jon Turner) puts it this way:
Computer engineers are able to consider more options for applications that have performance, response, or error tolerance constraints.
- Computer scientists think about solving problems using software.
- Electrical engineers think about solving problems using hardware.
- Computer engineers think about the tradeoffs of deploying various parts of an application in hardware or software.
Because there is substantial overlap between the two majors of study, students can move fluidly between the two programs. Students should use WebSTAC to switch majors, and they will typically keep the same departmental advisor when switching.
The requirements for the majors can be found here, and you can see that the CoE program requires more background in math and in basic electrical engineering than does the CS program.
If you are a primary major in computer science, then you have two kinds of course obligations you must fulfill:A second major need only do the first set of courses, and the requirements for the second major are found here. The careful reader will note that the computer science course requirements for both first and second majors are identical.
- Some courses are required for the computer science aspect of your primary major in computer science.
- Some courses are required because, as a primary major in computer science, you are also primarily situated in SEAS. This brings obligations of coursework you must do that is outside of what the computer science part of your studies require.
Thus, our department supports students saying they have majored in computer science whether they have done so by primary or by second major.
Note that a second major in computer science must be a first major in some school. The rules and requirements of that school and that student's first major must be followed to graduate from Washington University.
The requirements for our minor are CSE131 (Introduction to Computer Science), CSE247 (Algorithms and Data Structures, and then three courses of your choosing that end with S, T, M, A, or E. You may also take CSE132, CSE240, or CSE347 and have it count toward the minor. At least 4 of your 5 courses must be traditional classroom courses offered by our department. One of your 5 courses can be outside the traditional classroom, as detailed here.
- Get interested/inspired.
- Read lots of code. Look at what others have done and learn from them.
- Write lots of code. It doesn't have to be efficient or very good.
- Explain your code to someone else. This step will test your understanding and show you what you don't completely understand.
- Make mistakes. Learn from them. Optimize your code. Repeat.
This minor is typically of interest for our students who want to study medicine or biology, as it combines studies in both departments. The requirements can be found here, and all bioinformatics minors are advised by Prof. Jeremy Buhler.
The core courses are those courses specifically required for your major.
- Computer science first or second major (they are the same)
- Computer engineering first major (no second major available)
- The minor in computer science requires CSE131 and CSE247.
- The bioinformatics minor.
Before you look at which courses to take or your curriculum plan, it is also a good idea to understand what it takes to become a programmer or computer scientist. Peter Norvig, a well-known American computer scientist and director of research at Google, wrote a brief article “Teach Yourself Programming in Ten Years” that highlights the steps to success.
He first discusses a key idea that is central to any discipline or skill: deliberate practice. You don‘t want to just do something repetitively, but instead challenge yourself with increasing difficult tasks that push your current ability. Make mistakes, learn and analyze them, then correct them.
Repeat ad nauseam and understand that mastering computer science/programming will NOT happen in a week, over the course of a semester, or even over the course of your college career. Research has shown that it takes about TEN years, or Malcolm Gladwell‘ 10,000 hours, to develop expertise in your area of interest.
So, if you have decided to become a programmer/computer scientist, then here‘s a shortened and adapted list of Peter Norvig‘s “recipe for programming success” that can help you reach those 10 years/10,000 hours.
- Get interested in programming, and do some because it is fun. Take a look at areas of research in computer science here at WashU. Start with simple, easy to understand programs and look for something you enjoy doing.
- Program and learn by doing. It is appropriate to mention this brief parable from “Art and Fear” by David Bayles and Ted Orland. “The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot - albeit a perfect one - to get an "A". Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes - the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.”
- Talk with other programmers. Your fellow students, TAs, and professors will be your greatest resource. Read other programs and ask lots of questions. As Peter Norvig says, “This is more important than any book or training course.”
Peter Norvig has more great advice in his article, and you can read more of his writing here.
On a final note, your real expertise as a programmer/computer scientist comes from consistency and an effort to improve over the long-term. So start programming!
We describe elsewhere in this FAQ our department's residency requirements, which limits how many courses you can take outside our department and still earn an major or minor from our department.Those rules ensure that students graduating from our programs have taken a sufficiency of courses from our department.
Most often, students seek transfer of elective courses from outside our department. Courses such as game theory, numerical analysis, and operations research are offered by other departments but not by our department: we have no courses that cover those topics. Subject to our residency requirement, we count certain courses toward our students' electives as described elsewhere in this FAQ.
But what about core courses? Such courses are offered quite frequently by our department and we rarely get requests to consider courses outside our department to count toward our students' core requirements.
Subject still to our residency requirements, our department will consider allowing our students to take a core course outside our department, almost certainly at another university. Here we look not only for appropriate rigor but also to determine that the outside course is truly a good match for what we teach in a core course. We look for a close match because many courses in our department depend on the material taught in core courses. We want to ensure that students can make progress in our programs, prepared to take courses by having the appropriate prerequisite material.
A notable exception is that we will waive or transfer outside credit for our introductory course, CSE131, without counting that against any residency requirement in our department. There again we look for a close match to what we teach in that course.
The popularity of our courses has risen over the years to the extent that unless we take special action, many of our own students would not be able to get seats in our courses.Of course we strive to make room for all students interested in our courses, but we can only let in students whom we can effectively mentor, teach, and grade.
We also try to seat students based on their urgency for taking a given course. Students who will soon graduate will get priority over students who have another semester or year to take the course. The university's automatic registration system doesn't quite achieve this goal. It allows students to register based on their year of entry, not their year of exit.
With the above provisos in mind, we have therefore adopted the following policy about admission to the most popular courses.
We realize that some programs on campus list our courses as required or optional for their own programs, but they do this without communication with our department. We cannot guarantee such students seats in our courses.
- For courses required for a particular program in CSE, we prioritize those in the program over those not in the program, subject to other considerations listed below.
- For graduate courses (those listed at the 4xx or 5xx levels), PhD students from any department have the highest priority.
In practice this has not been a problem, and there is a fair trade agreement among schools so that doctoral students can take the courses they need to make progress on their research. If the numbers rise to the level that our students are excluded from seating, we will revisit this policy.
- Students with an open program in CSE are next seated. This could be a major or minor program.
- This is intended to include CS+X students who are primarily in another school. We treat you as our own.
- Students who are primarily in the McKelvey School of Engineering are seated next.
- All other students are seated last.
Also, students who have already taken a course may have lower priority than students waiting to take that course for the first time.
With the proviso that conditions sometimes conspire to prevent us from following this schedule exactly, the table below documents the frequency with which we have typically offered our courses.
Course Typically offered Summer? Curator(s) Core Courses CSE131
CSE501NEvery semester Yes Cytron CSE132
CSE502NSpring Chamberlain CSE240 Every semester Baruah CSE247 Every semester Sometimes Cole CSE332S Every semester Sometimes Shidal CSE347 Every semester Juba Electives CSE222S Once a year Siever CSE231S Every semester Cosgrove CSE260M Every semester Richard CSE311A Fall Yeoh CSE330S
CSE503SEvery semester Yes Sproull CSE341T Fall, odd years Agrawal CSE361S Every semester Lee CSE362M Fall Richard CSE365S Fall Cole CSE416A Fall Neumann CSE417T Fall Das CSE422S Every semester Kokolowski CSE427S Every semester Neumann CSE431S Every third semester Shook CSE437S Every semester Cytron CSE438S Every semester Yes Sproull CSE450A Spring Kelleher CSE452A Every two years Ju CSE460T Spring, even years Richard CSE462M Spring, odd years Richard CSE465M Taught by ESE Richard CSE467S Lu CSE473S Guérin CSE511A Garnett CSE517A Neumann CSE520S Lu CSE521S Lu CSE523S Shidal CSE530S Sometimes Shook Other Courses CSE104 Best effort Cytron CSE131R Fall Cytron CSE247R Every semester Cole CSE232 Fall, best effort Cytron
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
If you are unsatisfied with your performance in a given course, and if you feel that another experience with that material is necesssary, you can retake that course. This should be considered carefully and with the advice of your departmental and 4-year advisors.Except as noted below, retaking a course causes the following actions on your transcript and for your GPA computation:
However, take careful note of the following:
- The previous enrollment in the course is annotated with an R to show that the course was replaced by a subsequent enrollment in the same course. So, the prior enrollment in the course persists on your transcript. The grade earned in that prior enrollment is also shown. If you withdrew from the course, then the W persists as well.
- The new grade replaces the previous grade in terms of GPA computation. This is true even if the new grade is worse than the previous grade.
- If in your prior enrollment you were found in violation of academic integrity policies for that course, then your prior grade may not be replaced by the new grade. Each school currently makes its own decision about this.
- University rules concerning plagiarism apply also to retakes of the same course. Those rules do not allow you to submit the same work for credit in two courses, even if one of those courses is a retake of the other, without the explicit permission of the instructor of both courses.
You cannot repeat a course and submit any of the same work again for credit, without the explciit approval of both instances of that course.
There are different answers depending on the school offering the course.
- All schools except Olin
- You deserve the truth, so you should know that the university's registration systems do not check that you have already taken prerequisite courses as you enroll in a new course. Thus, prerequisites are advisory but they are there for a reason. You should consider very seriously whether you will perform well in a course for which you have not taken its prerequisites. A conversation with the instructor or your advisor may be helpful, and there are many ways you could prepare on your own for a course for which you have not formally taken that course's prerequisites.
Caveat emptor!
- Olin
- The business school takes a more strict approach concerning prerequisite courses. They insist that students must have taken the courses precisely listed as prerequisites, and they do not allow for students who have had similar courses elsewhere, even at our own university, nor do they consider the background students may have from other learning experiences or studies.
As an extreme example of this, a student in our department was in an Olin course that required knowledge of python, which is taught in a prerequisite course. As a comp sci student, this student was as prepared as anybody for the course, and the professor of the course was fine having the student in the course. However, the associate dean for undergraduates in Olin discovered that this student had not taken the stated prequisite course. The dean evicted the student from the course, but took that action after the add deadline had passed. The instructor asked the student to TA the course, which he is now doing for credit in our department.
Olin asks us to make sure you are aware of their strict policy concerning prerequisites.
Please, one question at a time.There are generally two ways you might already know the material in a course:
- Perhaps you have taken a similar course elsewhere. In that case, you should look at the FAQ for transfer courses, so that we can count the course you took elsewhere as the equivalent of a course here.
Study abroad is treated differently, so if the course under scrutiny here was taken while you were officially studying abroad, take a look at the FAQ for studying abroad.
- Perhaps you have studied independently or made use of online resources, but you have not taken a course we can transfer directly into your program here. In that case, read on.
Our faculty would not want you to take a course if you already know that course's material. Questions you should first ask yourself are:
It will help to view the syllabus and any prior information you can find on the web about a course that you believe you need not take.
- How well do you know the material?
- What fraction of the course's material do you know?
From there, our deparatment must evaluate whether you are able to place out of the course. This is handled as follows:
- For CSE131:
If for whatever reason you are placed out of CSE131, there is no other class you have to take in its stead. We hope you will move forward in one of our major or minor programs of study.
- if you have a 4 or 5 on the AP Computer Science test, then you are automatically placed out of CSE131.
- Otherwise, you are invited to take the placement test for CSE131, which determines one of the following outcomes:
- You need not take CSE131, but we hope you will TA it.
- You should take CSE131 and we look forward to seeing you in that class.
- You are borderline, and we prescribe some outside work you should do so that you are at the same point in your studies as those students who take CSE131. You do this work on your own and show it to the person who administered the placment test.
- If you have a 4 or 5 AP score and still want to take the placement exam, we won't stop you.
- For all other courses: You must arrange an interview and perhaps a written test with the department's associate chair, who will have you meet with a professor who has recently taught the course.
If the outcome of this process determines you need not take the course, then it will be waived as a requirement, but you will be required to take some other course in its stead. The actual course you take should be determined by agreement with your academic advisor.
At the school level, SEAS has no prohibition against the same course satisfying multiple requirements. For example, if CSE131 is required by both computer science and mechanical engineering, then it counts for both by satisfying each such requirement concurrently. If a course is required for electrical engineering, and it is allowed to count toward computer science, there is again no problem at the SEAS level concerning it satisfying both programs concurrently. Some programs of study in SEAS do have rules about double counting, but there are no such rules or restrictions in computer science or computer engineering.
Each school is allowed to have its own rules concerning how courses count toward its programs of study. For example, ArtSci prohibits double counting of almost all courses, so that if a student takes discrete math within the math department (Math 310), then it can count toward a math program or toward computer science, but not both from the ArtSci perspective.However, it is up to each school to reason about whether a given course is necessary for students in its programs of study. Thus, if a student has taken Math 310 there is no reason our department would require that student to take another course (say, CSE240) in discrete math. We indicate this by waiving the discrete math requirement for that student's computer science program, by saying it has been satisfied by studies outside our department. This avoids double counting Math 310, which allows the student to use that course in a math program (or once in any program of study in ArtSci that requires or counts Math 310 as an elective).
Similarly, if a student takes an upper level math course, say Number Theory and Cryptography, we would say that the student then has 3 fewer units to satisfy for elective credit by virtue of studies outside of our department. This allows the Number Theory and Cryptography course to count within ArtSci without any problems.
The core courses are those courses specifically required for your major.
- Computer science first or second major (they are the same)
- Computer engineering first major (no second major available)
- The minor in computer science requires CSE131 and CSE247.
- The bioinformatics minor.
The popularity of our courses has risen over the years to the extent that unless we take special action, many of our own students would not be able to get seats in our courses.Of course we strive to make room for all students interested in our courses, but we can only let in students whom we can effectively mentor, teach, and grade.
We also try to seat students based on their urgency for taking a given course. Students who will soon graduate will get priority over students who have another semester or year to take the course. The university's automatic registration system doesn't quite achieve this goal. It allows students to register based on their year of entry, not their year of exit.
With the above provisos in mind, we have therefore adopted the following policy about admission to the most popular courses.
We realize that some programs on campus list our courses as required or optional for their own programs, but they do this without communication with our department. We cannot guarantee such students seats in our courses.
- For courses required for a particular program in CSE, we prioritize those in the program over those not in the program, subject to other considerations listed below.
- For graduate courses (those listed at the 4xx or 5xx levels), PhD students from any department have the highest priority.
In practice this has not been a problem, and there is a fair trade agreement among schools so that doctoral students can take the courses they need to make progress on their research. If the numbers rise to the level that our students are excluded from seating, we will revisit this policy.
- Students with an open program in CSE are next seated. This could be a major or minor program.
- This is intended to include CS+X students who are primarily in another school. We treat you as our own.
- Students who are primarily in the McKelvey School of Engineering are seated next.
- All other students are seated last.
Also, students who have already taken a course may have lower priority than students waiting to take that course for the first time.
With the proviso that conditions sometimes conspire to prevent us from following this schedule exactly, the table below documents the frequency with which we have typically offered our courses.
Course Typically offered Summer? Curator(s) Core Courses CSE131
CSE501NEvery semester Yes Cytron CSE132
CSE502NSpring Chamberlain CSE240 Every semester Baruah CSE247 Every semester Sometimes Cole CSE332S Every semester Sometimes Shidal CSE347 Every semester Juba Electives CSE222S Once a year Siever CSE231S Every semester Cosgrove CSE260M Every semester Richard CSE311A Fall Yeoh CSE330S
CSE503SEvery semester Yes Sproull CSE341T Fall, odd years Agrawal CSE361S Every semester Lee CSE362M Fall Richard CSE365S Fall Cole CSE416A Fall Neumann CSE417T Fall Das CSE422S Every semester Kokolowski CSE427S Every semester Neumann CSE431S Every third semester Shook CSE437S Every semester Cytron CSE438S Every semester Yes Sproull CSE450A Spring Kelleher CSE452A Every two years Ju CSE460T Spring, even years Richard CSE462M Spring, odd years Richard CSE465M Taught by ESE Richard CSE467S Lu CSE473S Guérin CSE511A Garnett CSE517A Neumann CSE520S Lu CSE521S Lu CSE523S Shidal CSE530S Sometimes Shook Other Courses CSE104 Best effort Cytron CSE131R Fall Cytron CSE247R Every semester Cole CSE232 Fall, best effort Cytron
These courses overlap considerably but are worth taking in either order.
You should first identify the source of the dissatisfaction:
- Was the point tally on an assignment computed incorrectly?
- Do you believe you had a correct response or solution but your grade indicated otherwise?
- Did you miss a deadline for an assignment? Are seeking to turn in work late?
- Did you miss turning in an assignment because of school-, athletic-, or career-related events?
Next you should consider the following principles in terms of addressing your concerns:
- You should address any expected absences before the semester begins. Athletic events, conferences, job interviews—all of these are important to your success and trajectory as a student at Washington University. Faculty are generally supportive of such absences, but to be certain you need to have the appropriate conversation as soon as possible.
Do not rely on a TA's response to such questions or issues. You must have this conversation with the course's instructor.
- Some of our courses, especially the larger ones, feature late coupons or dropped grades. In those courses, you should expect to apply coupons or dropped grades to unexpected as well as expected absences.
- Unexpected absences can happen, and these usually take the form of extended illness or loss of a friend or family member. In such cases, you should contact your school's academic dean (e.g., Chris Kroeger for SEAS). The dean will then send faculty an email explaining the circumstances and asking for accommodation.
- You should address the issue you have with the grading of an assignment as soon as possible after you receive the assignment and its grade. If you wait until the end of the semester, thinking that at that point the grade change will benefit your final grade in the course, you are likely to be turned away. This has to do with the justice of your overall performance evaluation in the course (see below).
Some important caveats:
- Where do you address a grading issue?
- Generally you should start with the staff of your course who issued the grade, working your way up the chain as necessary. That chain from top to bottom is:
For example, if the grade is for a lab assignment that was graded by any TA, then you would start with the course's head TA or head grader. If the grade is for an exam that the instructor graded, then begin with the instructor unless instructed otherwise.
- The school's academic dean
- The course's department's associate chair
- The instructor(s) of the course
- A head TA or head grader
- What steps do you take?
- First check the courses's web pages or other documentation and look for instructions about how to request a regrade of submitted work. Follow those instructions carefully. If no such instructions are available, then:
- Write an email to the person who should field your request (see above). In that email provide as much information as possible, but you can also request a meeting during that person's office hours. If you are unable to make that person's office hours, provide specific times for the next 5 business days during which you are available.
The idea here is to minimize effort on the side of the person receiving your request. If you can be thorough, the matter can be handled expeditiously.
- Many faculty will regrade an entire assignment rather than just the place where you feel you received insufficient credit. In some cases, the result may be a lowering of your grade. See the information below on justice.
- Students have been caught cheating by changing their work between receiving its grade and submitting it for regrading.
This violation of academic integrity is easy to prove and is met with harsh consequences. You will likely receive an F in the course and the infraction will be retained in the permanent record of your work at the university. Look elsewhere in this FAQ for information about academic integrity and community standards.Do not make any marks or changes to work if you intend to resubmit for regrading.Justice Faculty, staff, and students are interested in justice and fairness in grading. This means that the grade given on submitted work fairly evaluates the student's work. Where possible, instructors provide rubrics as to how an assignment will be graded. Some students receive a poor grade for simply not reading the rubric and following an assignment's required instructions. A student truly interested in justice would bring any grading error to the attention of the instructor, whether it benefits the student or not. Instructors are sometimes approached by students who point out grading mistakes not in their favor. Instructors are also approached by students near or at the end of the semester, asking for grade reconsiderations or extra work those students might do to improve their grade. Justice requires that instructors not make opportunities available to some students that are not available to all students. Requests along those lines betray a student's intent and are not recommended.
We allow up to 6 units of credit toward our major's programs to be completed outside the traditional classroom. One such experience is an independent study, which typically involves working with a faculty member on research or a project of mutual interest.Independent study requires approval of the supervising faculty member. Students enroll in CSE 400E to receive elective credit for independent study, in the section associated with the supervising faculty member.
The supervising faculty member must be faculty in our department or hold a courtesy appointment in our department. You must sign up for credit in the section associated with that supervising faculty member. The work you do may be with somebody outside of our department, in which case the de jure supervising faculty member will coordinate the activity with the de facto advisor for the work:
- Your independent study must not violate our department's rules for the number of courses that can be taken outside our traditional classroom courses. This is articulated elsewhere.
- It will be detetermined that the scope of work is appropriate for the number of units.
- The criteria for success will be communicated explicitly between the de facto and de jure advisors.
- The de facto advisor is responsible for writing a statement at the end of the independent study evaluating the quality of your work.
- The grade for your work is determined at the recommendation of the de facto advisor and entered by the de jure advisor.
As with any course, you will have to devote reasonable time to independent study. We generally hold that 3 units of credit is at least 10 hours of work a week. A semester has 15 weeks, so 3 units of independent study should take about 150 hours of your time.
Because traditional courses have deadlines and independent study typically is more open-ended and flexible, many students make the mistake of putting off working on their independent study projects. This usually causes faculty to drop the independent study with the student.
Success depends upon the appropriate investment of time by the student, the accurate and timely reporting of issues and progress, and the regular meetings with supervising faculty to keep the work on track. Most students who succeed at independent study report that they spend more than the usual amount of time on independent study, because they find the work interesting and rewarding.
Outside of OPT and CPT experiences that are allowed for students on an F1 visa, such students are not allowed to earn money pursuant to self-employment or independent contractor status. They also generally are not able to work off campus unless they can document sever economic hardship. You should check with the International Office for further information.Such students can be paid as TAs by the university, because that contributes to the students' studies and is managed by the university.
Attempts to earn money outside the university are treacherous for students on an F1 visa. Especially in recent times, the USCIS agency has been both more vigilant in finding offenders and more quick to take action, which can include removal (deportation).
A relevant example would be a student posting an app to the Apple iTunes store. There are the following possible problems with that for students with an F1 visa:
Students are advised to consult counsel and to take steps to be on the safe side of any line drawn for such issues.
- If the student earns money from publication of the app, the student becomes self-employed, which is prohibited for such students. Most likely a tax form will be issued, which can then alert authorities that the student has earned money and violated his or her visa status. That could then lead to the student accruing unlawful presence and possible removal proceedings.
- If the student does not earn any money from the published app, the work done to create and publish the app could be construed as volunteer work, which is also prohibited by USCIS. While it is much less likely the student would be caught, the danger still exists.
For the reasons above, no course taught in our department can require students to publish an app. They can submit the app for evaluation by a company, but they are not required to publish the app.
Group work: the issues above become even trickier if the student is involved in group work. It is important that the group establish up-front whether any or all members are interested in publishing their work for money or even for free. If some members want to earn money or publish their work, and others do not, it is best that the group disband.
First, please take all the steps recommended by reputable scientists to keep yourself, your family, and your friends safe.A number of summer opportunities have changed because of the spread of the Novel Coronavirus and the associated disease it can cause, COVID-19. Some of those internships have moved to remote presence, and others may have been rescinded.
In any case, if you find yourself with some extra time this summer, here are some suggestions of what you might do:
- We have a number of courses being offered this summer by our department. They will all be taught online. Please consult the course listings to see what is offered. You may be interested in
- Taking some courses. These could help satisfy some requirements.
- TAing some of those courses. We can use your help and can pay you $10 an hour.
- We are allowing online courses this summer to count for your studies in our department, school, and university. Courses that already are approved as counting will count even if taught online. The process for petitioning for not-yet-approved courses is the same as usual.
The department has published the list of courses that already count for your consideration. We don't know which of those will be offered online this summer.
A similar list for math courses can be found here.
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An idea for you here is to take a hobby or interest, find an associated open-source project, and investigate features the associated community has up-voted. Start small with a simple feature, develop the feature, and contribute it to the community. You will get some realistic feedback about your coding style and implementation, and you will contribute to a project of mutual interest between yourself and others.
You complete this summer school enrollment form found on our summer school website.
For many years we offered CSE104 as a web design course that did not count for CSE elective credit.We have moved away from CSE104 to CSE204A, which is a course that does carry elective credit and teaches at and beyond the material previously covered in CSE104.
The main difference is that CSE204A requires CSE131 or the ability to write simple programs.
If you have already taken 104, you probably do not want to take 204A. If you really want to take it, be aware that you are not allowed to turn in the same work twice for any classes, even two instances of the same class. So you will have to complete new assignments for 204A.
There are usually multiple ways to go and your particular solution here will depend on your interests and the courses' availability. But here are some ideas.
- CSE132
- Introduction to computer engineering
- CSE247
- Algorithms and data structures. Some students like to take CSE240 prior to this, but it's not necessary if you take a look this to see if you are ready. This course is a gateway to many other courses.
- CSE240 or Math 310 or Math 310W
- Discrete math, which instructs on many topics of interest for computer science.
- CSE204A
- Web design
- CSE231S
- Concurrent and parallel program. It's like what you did in CSE131, but now your programs do multiple things at the same time.
- CSE330S
- Rapid Prototype Development and Creative Programming
This is a great question and you should ask for advice on this topic from all fronts: your four-year advisor, your departmental advisor, your friends and colleagues.A great advantage of being a student at Washington University is the large breadth of topics covered by our faculty. You can and you should take courses outside your main interests to become a more educated, well rounded, and balanced student. We hear many stories from our students about the course they took to satisfy some distribution requirement that truly changed their thinking, encouraging them to take on a new minor or major, or even reshaping their career goals.
In truth, it's hard to predict which course might be life-changing for you, but here are some ideas:
We also hear that as much as the material might interest a student, the passion, expertise, and engagement of the professor teaching the course matters greatly. You might look for professors who excel at teaching by reading course evaluations using
- How do you like spending your free time?
- Do you have artistic or musical inclinations?
- Have you thought about acting or production of plays or musicals?
- Is there a culture or country you would like to explore?
.
- our new system (in use since 2016) or
- the old one.
Another way students look at this question is to see what it would take to complete a major or minor in program outside CSE given what they take to earn their CSE major or minor. For example, many students find themselves close to completing a program in math, electrical engineering, or systems sciences as they finish coursework for their CSE major or minor.
There is a different answer for study abroad, so please look there for information about that.Computer science and computer engineering are broad areas of study, and we recognize this by looking for courses outside our department that we can count toward your major or minor programs.On the other hand, it would not make sense for a student to take most of his or her courses outside our department and still earn a CSE major or minor from our department. We therefore have the following residency requirement for our department's elective credits:
How should you think about spending your 3 or 6 units?
- If you are earning a major, then all but two electives (6 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- If you are earning a minor, then all but one elective (3 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- You can take on independent study with faculty. Details of that are covered elsewhere.
- You can take a course from the approved list of courses below.
- You can arrange by exception to count a course that doesn't appear in our list below. That conversation starts with your advisor and ends with the department's associate chair.
The list of courses TBD
Note that study abroad units count as if resident: see elsewhere in this FAQ for information about study abroad.To earn a degree from a particular university, school, or department, each will insist that you spend a certain amount of time taking its courses.
- Students earning a degree from Washington University must have at least 60 units of credit earned at our university.
- Studenst in SEAS must have at least 30 units at the 200 level or above earned from our school.
- The residency requirements for our department are articulated elsewhere in this FAQ.
Study abroad is treated differently, and you should look elsewhere in this FAQ for information about how courses count when studying abroad.Otherwise, there are two issues that must be considered:
Here is a step-by-step procedure for applying for approval of transfer course credits.
- Our university, our school, and our department each has a resdiency requirement, which you can find elsewhere in this FAQ. There is thus a limit on the number of outside credits you can apply to your Washington University programs.
- Is the course deemed acceptable for transfer? The process for that decision begins with your four-year advisor, but the decision is usually made by the department closest in area to the subject matter of the course. For example, the merit of a computer science course would be evaluated by the computer science department.
Our school maintains this database of outside courses already approved for transfer credit.You should check this database before requesting approval.
Also the database may help you shop around for already approved courses from a geographic area of interest.
If you still have concerns regarding the implication of selecting a pass/fail option for a course this semester, you can reach out to the department's chair or associate chair for additional assistance.
- Background
- Due to the COVID-19 crisis and the resulting mid-semester switch to an online teaching format, the McKelvey School of Engineering, like many of its peers, opted to allow students to switch to a pass/fail grade for any course while still allowing that course to count against the degree requirements the course was originally intended to satisfy.
This is an unprecedented step for an unprecedented situation.
- What can I do?
- For the Spring 2020 semester only, you are allowed at any point up to and including the last day of instruction (24 April 2020) to designate any of your courses pass/fail.
- For students in a McKelvey (CSE) major or minor program, such courses will count as if taken for credit toward any of your major or minor requirements in the McKelvey School of Engineering.
- For programs not in the engineering school, you must consult faculty or administrators in those schools to determine how your work will count towards those programs.
- Why is this option offered?
- The school and department recognize that finishing your work this semester may be more difficult without physical access to campus.
The pass/fail option offers you flexibility in how you spend your time. Because the move to pass/fail can be made any time up to and including the last day of instruction, if your success in a given course is suffering for whatever reason, you can switch that course to pass/fail and still have it count as if for credit.
- How will this look on my transcript?
- There will be an explicit annotation on students' transcripts explaining the circumstances of the pass/fail grade for this semester.
- How will employers or graduate schools view such grades?
- Potential employers and graduate schools are well aware of this situation. Therefore, we fully expect that the presence of pass/fail grades for this semester on a student's transcript will not have adverse effects on either job or graduate school opportunities, but those decisions are beyond our control.
- Can I change my mind about pass/fail and go back to a letter grade?
- It depends. We encourage you to make a decision and stick with that. Moreover, instructors are not obligated to keep letter grades for your assignments that are graded when you are registered pass/fail.
Before switching back to a letter grade, you should have a conversation with your instructor to make sure a letter grade can be submitted for you at that point in the semester.
First, please take all the steps recommended by reputable scientists to keep yourself, your family, and your friends safe.A number of summer opportunities have changed because of the spread of the Novel Coronavirus and the associated disease it can cause, COVID-19. Some of those internships have moved to remote presence, and others may have been rescinded.
In any case, if you find yourself with some extra time this summer, here are some suggestions of what you might do:
- We have a number of courses being offered this summer by our department. They will all be taught online. Please consult the course listings to see what is offered. You may be interested in
- Taking some courses. These could help satisfy some requirements.
- TAing some of those courses. We can use your help and can pay you $10 an hour.
- We are allowing online courses this summer to count for your studies in our department, school, and university. Courses that already are approved as counting will count even if taught online. The process for petitioning for not-yet-approved courses is the same as usual.
The department has published the list of courses that already count for your consideration. We don't know which of those will be offered online this summer.
A similar list for math courses can be found here.
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An idea for you here is to take a hobby or interest, find an associated open-source project, and investigate features the associated community has up-voted. Start small with a simple feature, develop the feature, and contribute it to the community. You will get some realistic feedback about your coding style and implementation, and you will contribute to a project of mutual interest between yourself and others.
Most courses at our university allow a student to take that course for a grade (A, B, C, etc.) or for credit only. This latter option is the mechanism for taking a class pass/fail. Here are some notes about taking courses pass/fail:
- When you register or try to change the enrollment status of yourself in a course, the pass/fail option may not present itself, which means that the course can be taken only for a grade.
- Some courses, such as seminars, can only be taken pass/fail.
- It is important for a student taking any course pass/fail to understand with sufficient precision what is required to pass the course. Web pages and syllabi should contain this information, but if they do not, then an email or some other documentation of the standard needed to pass should be obtained.
- There is a limit to the number of courses you can take pass/fail in a semester, and the total number you can take over your career, as documented here.
- There is a date by which you must declare the course pass/fail, and a date by which you can change it back from pass/fail to graded. This varies by semester and you should consult the particular year's academic calendar.
While most courses allow you to enroll pass/fail, you must keep in mind that most majors and minors insist that all courses taken for those programs be taken for a letter grade, and not pass/fail.All CSE programs require that you take courses that count toward your CSE degree for a letter grade. The only courses you can take pass/fail for us are those that satisfy humanties and social sciences as distribution.
This becomes tricky if you take a course thinking that it's only for distribution, and then become so interested in the topic that you subsequently want to open a major or minor program in that area of study. In such a situation, you might have to re-take the course for a letter grade.
While the window to declare a course pass/fail is fairly short, the window for reverting it back to a letter grade is relatively long. If you find yourself becoming interested in the subject and you are doing well, you should probably revert the pass/fail to a letter grade.
We allow up to 6 units of credit toward our major's programs to be completed outside the traditional classroom. One such experience is an independent study, which typically involves working with a faculty member on research or a project of mutual interest.Independent study requires approval of the supervising faculty member. Students enroll in CSE 400E to receive elective credit for independent study, in the section associated with the supervising faculty member.
The supervising faculty member must be faculty in our department or hold a courtesy appointment in our department. You must sign up for credit in the section associated with that supervising faculty member. The work you do may be with somebody outside of our department, in which case the de jure supervising faculty member will coordinate the activity with the de facto advisor for the work:
- Your independent study must not violate our department's rules for the number of courses that can be taken outside our traditional classroom courses. This is articulated elsewhere.
- It will be detetermined that the scope of work is appropriate for the number of units.
- The criteria for success will be communicated explicitly between the de facto and de jure advisors.
- The de facto advisor is responsible for writing a statement at the end of the independent study evaluating the quality of your work.
- The grade for your work is determined at the recommendation of the de facto advisor and entered by the de jure advisor.
As with any course, you will have to devote reasonable time to independent study. We generally hold that 3 units of credit is at least 10 hours of work a week. A semester has 15 weeks, so 3 units of independent study should take about 150 hours of your time.
Because traditional courses have deadlines and independent study typically is more open-ended and flexible, many students make the mistake of putting off working on their independent study projects. This usually causes faculty to drop the independent study with the student.
Success depends upon the appropriate investment of time by the student, the accurate and timely reporting of issues and progress, and the regular meetings with supervising faculty to keep the work on track. Most students who succeed at independent study report that they spend more than the usual amount of time on independent study, because they find the work interesting and rewarding.
If you still have concerns regarding the implication of selecting a pass/fail option for a course this semester, you can reach out to the department's chair or associate chair for additional assistance.
- Background
- Due to the COVID-19 crisis and the resulting mid-semester switch to an online teaching format, the McKelvey School of Engineering, like many of its peers, opted to allow students to switch to a pass/fail grade for any course while still allowing that course to count against the degree requirements the course was originally intended to satisfy.
This is an unprecedented step for an unprecedented situation.
- What can I do?
- For the Spring 2020 semester only, you are allowed at any point up to and including the last day of instruction (24 April 2020) to designate any of your courses pass/fail.
- For students in a McKelvey (CSE) major or minor program, such courses will count as if taken for credit toward any of your major or minor requirements in the McKelvey School of Engineering.
- For programs not in the engineering school, you must consult faculty or administrators in those schools to determine how your work will count towards those programs.
- Why is this option offered?
- The school and department recognize that finishing your work this semester may be more difficult without physical access to campus.
The pass/fail option offers you flexibility in how you spend your time. Because the move to pass/fail can be made any time up to and including the last day of instruction, if your success in a given course is suffering for whatever reason, you can switch that course to pass/fail and still have it count as if for credit.
- How will this look on my transcript?
- There will be an explicit annotation on students' transcripts explaining the circumstances of the pass/fail grade for this semester.
- How will employers or graduate schools view such grades?
- Potential employers and graduate schools are well aware of this situation. Therefore, we fully expect that the presence of pass/fail grades for this semester on a student's transcript will not have adverse effects on either job or graduate school opportunities, but those decisions are beyond our control.
- Can I change my mind about pass/fail and go back to a letter grade?
- It depends. We encourage you to make a decision and stick with that. Moreover, instructors are not obligated to keep letter grades for your assignments that are graded when you are registered pass/fail.
Before switching back to a letter grade, you should have a conversation with your instructor to make sure a letter grade can be submitted for you at that point in the semester.
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
It's really between you and your research or independent study mentor. Some students prefer credit, as it makes progress toward their degree; others prefer to be paid
We are the Department of Computer Science and Engineering, and we offer majors in both computer science (CS) and computer engineering (CoE) . How do students decide which major they prefer?While it's generally true that computer science is more focused on software and computer engineering on hardware, the differences are not that simple. One colleague (Jon Turner) puts it this way:
Computer engineers are able to consider more options for applications that have performance, response, or error tolerance constraints.
- Computer scientists think about solving problems using software.
- Electrical engineers think about solving problems using hardware.
- Computer engineers think about the tradeoffs of deploying various parts of an application in hardware or software.
Because there is substantial overlap between the two majors of study, students can move fluidly between the two programs. Students should use WebSTAC to switch majors, and they will typically keep the same departmental advisor when switching.
The requirements for the majors can be found here, and you can see that the CoE program requires more background in math and in basic electrical engineering than does the CS program.
Here is the document and here is the sheet with upper level courses that count at present.If you don't see a course on the upper-level list, then it could be for one of these reasons:
The CS+Math program is also available as a second major through the McKelvey School of Engineering. Second majors are available to any student from any school on campus.
- It should be there but we haven't thought to put it there. So talk with us about that. We'd like to improve the list. You should contact the associate chair in the department hosting your CS+Math studies (Computer Science and Engineering, or Math).
- It's not in the spirit of CS+Math. Courses like CSE132, CSE332S are interesting and useful computer science courses but don't live at the intersection of CS and Math.
The CS+Math major is designed to be the same load as any single major. For example, a first major in computer science requires 14 courses not including the calculus sequence. The CS+Math major has the same number of courses excluding the calculus sequence. It is slightly heavier than a math major.The reason for its efficiency is exactly the strong intersection in these two departments' fields of study.
Students in computer science with an interest in theory or data analytics will find this program attractive. Students in math who want skills and applications of their studies in math will similarly be drawn to this program.
For many years we offered CSE104 as a web design course that did not count for CSE elective credit.We have moved away from CSE104 to CSE204A, which is a course that does carry elective credit and teaches at and beyond the material previously covered in CSE104.
The main difference is that CSE204A requires CSE131 or the ability to write simple programs.
If you have already taken 104, you probably do not want to take 204A. If you really want to take it, be aware that you are not allowed to turn in the same work twice for any classes, even two instances of the same class. So you will have to complete new assignments for 204A.
These days it is easy to appreciate the role computers play in our lives. Our communications with each other, our planning, our entertainment are made possible or made better by using computers. Social media has made it possible to stay in touch with friends in ways that were previously infeasible. Models that predict dangerous weather events are saving lives as people who face hurricanes and tornadoes can prepare for their arrival.Computer science, computer engineering, computer programming, computational thought, computational science—job postings are increasingly asking for experience or skills in those areas. Academically we find that programs of study across the university are seeing benefits for those students who undertake studies in those areas. While the ability to put pen to paper for the purpose of creating clear and persuasive prose was the universally sought skill of our past, the ability to harness the power of computers and computation is the universally sought skill of our future. Commputers are allowing us to ask, and sometimes answer, questions that are far beyond what was deemed possible even two decades ago. The very basis of our life, DNA, was beyond understanding until computers could piece together the human genome.
Beyond the pragmatic need to understand the use of computers and computation for problem solving, computers are the embodiment of logic. Students who study computer science and engineering find that they think differently as a result of those studies. In a lecture given at our university, Carl Wieman claimed that every discipline you study at a university is actually trying to train you to think as they do. As exmplified by many jokes, a physicist, mathematician, and computer scientist will approach problems differently.
Whatever your primary interests, whatever your majors or minors, some study of computer science and engineering will provide you with greater ability to practice your primary interests, cause you to approach problems in new and useful ways, and provide you with skills that are considered valuable in the marketplace.
There are usually multiple ways to go and your particular solution here will depend on your interests and the courses' availability. But here are some ideas.
- CSE132
- Introduction to computer engineering
- CSE247
- Algorithms and data structures. Some students like to take CSE240 prior to this, but it's not necessary if you take a look this to see if you are ready. This course is a gateway to many other courses.
- CSE240 or Math 310 or Math 310W
- Discrete math, which instructs on many topics of interest for computer science.
- CSE204A
- Web design
- CSE231S
- Concurrent and parallel program. It's like what you did in CSE131, but now your programs do multiple things at the same time.
- CSE330S
- Rapid Prototype Development and Creative Programming
Stay registered where you are, to make sure you keep your seat in the course. Then come to the lab section that works for you and we will try to make room for you.Feel free to do this whenever necessary.
No. The only prerequisite for this course is that you be comfortable with algebra and geometry at the high school level. No programming background is required. We start from the beginning. However, the course is demanding and does move rather quickly.
- If you're looking for an easy course, this isn't it.
- If you're looking for an interesting and worthwhile course, welcome!
Most high school computer science courses cover programming, but not computer science as a discipline. In other words, you may have learned the nuts and bolts, but the background and theory are likely to be missing.However, we do not want you to waste your time! If you have had an AP course in computer science, or some other substantive experience, please see the instructor. We have a placement exam you can take to see if you should place out of CSE131.
CSE131 emphasises learning by doing. Most of your time outside of class will be spent on lab assignments. You will spend very little time reading, since everything you need to know will be covered in lecture, studio, or in the lab assignments. Since CSE131 is a 3 unit course, you should expect to spend about 10 hours per week on average, including time spent watching videos, doing assignemnts, and attending studios. Some weeks will require more time, some will require less.
Yes. Although previous instances of our course were offered without a textbook, we have found it easier to teach the course consistently by using a textbook. Also, students have felt more secure with the material by having a textbook handy.In addition to the text, on-line materials will be provided or referenced.
The textbook in use for this semester is listed on the course's home page.
You already have one and it's accessed by using your WUSTL key and pasword. So you should be able to log into our lab computers using your standard WebSTAC authentication. However, you are able and encouraged to use your own computer following the instructions on the course home page.- Do I need to buy a computer for CSE131?
While you do not need to own a computer to take this course, most students do own their own computer and you are encouraged to do so as well.
You are welcome to use our lab computers whether you have your own computer or not. Labs are reserved for classes at certain times, and open for general use at other times. See the schedule posted by the lab door for details.
Try the EIT/CEC help desk in Lopata Hall on the fourth floor. If your computer is not working, use a lab computer until yours is fixed so that you don't fall behind in your work.
Please present your accommodation documentation to the instructor the first week of class.
Most likely, this class is larger than your other class, and the exam dates are set well in advance of the semester so you should be aware of the conflicts at the beginning of the semester.However, other classes sometimes move their exam dates in a way that causes a conflict.
The policy about conflicts on exams varies each semester. Look for policy documents starting at the course's home page.
The courses are identical in all aspects of the work you do: labs, studios, exams, and quizzes. Some students take this course as preparation for graduate studies in computer science, or to assist in their graduate studies in other disciplines. Such students enroll in this course at the graduate level, using CSE 501N.
- First, commit any work that you can:
- In the package explorer, right- (control-) click on your main project name,
- choose Team →
- choose Commit
- In the window you are shown, uncheck any entries marked conflicting
- Proceed with the commit
If the commit does not work, seek help from the instructor before doing any of the following steps.- Then, let's try to clear up the conflicts
- choose Team →
- choose Synchronize with Repository
- In the resulting window, you see the conflicts.
Documentation for resolving conflicts can be found here.- My favorite choices are:
- Override and update: this indicates that you want to go with the version of the file that is on the server, and replace your version with that one. Your local copy will be lost forever, so be certain this is what you want if you choose this option.
- Override and commit: this indicates that you want your version of the file to win. Your local version then replaced the one at the server. You can always retrieve any previously committed version from the server.
- When done, return to the Java view and commit your work as usual.
- If in doubt, ask the TAs or instructor.
A 3 unit lecture class typically consists of 3 hours of lecture per week. This course is quite different, in that it uses active learning for most of the material you will study.Each week generally consists of the following:
Thus, you spend 1.5 hours in lecture (but not in a lecture hall, because you are watching videos and doing exercises), but 3 hours working in much smaller groups to learn the materail for this course.
- Lecture material in the form of online videos and exercises to introduce the topic(s) studied.
- A studio session in which you work collaboratively with other students to extend and enhance the material covered in lecture
- A lab/recitation/quiz session in which you work on lab assignments, review the current week's material, and take a quiz on the previous week's material.
There are exercises included with each module, interspersed between the video segments. You earn participation credit by completing those exercises as best you can. Other opportunities may be available as announced or posted on the couse web page.
CSE131 is the standard course, and CSE131R is an optional 1-unit pass/fail seminar associated with CSE131 offered in the fall semester.This seminar is intended for students who may intend studies in computer science: a major, a minor, or a second major from another school.Credit is given for CSE131R based on attendance.
The seminar features:
- Guest lectures by Computer Science and Engineering faculty about their research.
- Further exploration of certain topics covered in the main course.
First, make sure you have a repository. If you added the class after the first day of classes, then ask the instructor to make sure you have a repository set up. The information on how to access your repository is included with Lab 0.The most common problem is that you are not authenticating correctly with the server.
- For your username, be sure to supply your WUSTL key name but spell it completely in lower case. For example, if you are used to typing John.Doe as your user name, type it in as john.doe.
- For your password, be sure to supply the password you use for logging into WebSTAC, and spell it just as you type it in to WebSTAC. For example, if your password is NobodyWillGuessThis, then type in NobodyWillGuessThis.
For reasons we have not yet fathomed, this problem occurs only when your eclipse files are in the special program files folder in Windows 7. So don't put the files there, just put them on your desktop (the folder will be called eclipse, and the thing you click to run eclipse is inside that folder).In other words, re-download the eclipse project from the website, but this time unzip the files to your desktop.
Almost certainly! Be sure to do the work on the course calendar and attend studios and labs. In the past, we have been able to accommodate everyone from the waiting list.
Most certainly not! Our motto is that you belong here, and we mean that:To quote a colleague, this is a weed-in course.
- We welcome you with open arms
- You should be studying computer science
There is absolutely no curve for the course, and all students are welcome to earn an A in the course. The grading rubric for the course is on the course web page.
Your grade is typically based on participation, studio work, completed labs, completed extensions, and exams. You have access to prior course evaluations, in which students report that they work hard, but earn an A by doing so.
If you are eligible to take the CS A AP exam, and you score a 4 or 5, then you do not have to take CSE131 and you should be able to arrange credit for it when you are on campus through any of your academic advisors.We strongly urge students who place out of CSE131 not to take the course. It is a course meant for students with no background. Every year, some students still want to take it, for comfort of familiar material or to experience our version of the material. That's fine, but we would prefer you move on to another course. We also would consider having you serve as a TA for the course. In that way you can learn the material we teach as well as help other students.
Yes. Dean Chris Ramsay keeps a list of available tutors for classes and he can try to match you with somebody who can help. The relevant web page at Engineering Student Services (ESS) is here. If you are primariy a SEAS student you may receive up to 4 hours of tutoring free through ESS. Otherwise, tutors can still be found but you would have to pay.
The short answer is you should have plan A and plan Z.You are allowed to register for up to 21 units, so you may have to make (strategic) choices about where to register to get the courses you want.
- Plan A
- Stay on the wait list for this course. If this is a required course for any of your programs, and you have an urgent need to take the course now, be sure to let the instructor know, and see what might be done to gain admission to the course.
It is important to show up for class as if you are enrolled if Plan A is your plan. There is an apochryphal story about a student who just kept showing up. The professor finally eventually enrolled the student in the course.
Also, be aware that students drop usually in the first two weeks of class, which opens up room in a course.
- Plan Z
- Because you might not get in, it's a good idea to sign up for another course that has room. Seek the usual advice about courses from your advisor, colleagues, and friends.
No. Just for CSE131, if our department waives that course, then you do not have to take anything in its place.For other courses, if you show proficiency, you will be asked to take something else instead.
For many years we offered CSE104 as a web design course that did not count for CSE elective credit.We have moved away from CSE104 to CSE204A, which is a course that does carry elective credit and teaches at and beyond the material previously covered in CSE104.
The main difference is that CSE204A requires CSE131 or the ability to write simple programs.
If you have already taken 104, you probably do not want to take 204A. If you really want to take it, be aware that you are not allowed to turn in the same work twice for any classes, even two instances of the same class. So you will have to complete new assignments for 204A.
Yes! We view Math 310 as a fine substitute for CSE 240. Feel free to take either from our point of view. It directly satisfies the requirements for our first an second major.It also can count as elective credit, subject to the limits on how many courses we allow outside of traditional CSE courses.
You should check with the Math department to see if they lean one way or the other about which of the two courses is best for you.
Also, if you are an ArtSci student, you should notify the Associate Chair if you are taking Math 310 so it can be arranged not to appear to double-count for you. More generally, see our FAQ entry about double counting courses, as it may be helpful.
The Math department has determined that taking their honors math courses should count as follows in terms of our department's requirements:
Math 203 Math 204 CSE 240
or
Math 310Math 233 and Math 309 You can't take Math 204 without first taking Math 203
For students not so solid in math, we recommend CSE 240 before CSE 247. Many students take 247 first.You can proceed with 247 without 240, provided you have the appropriate background. This page can help you figure that out.
We use Java in both CSE131 and CSE247 because it is still the language used in the AP computer science curriculum in high schools in the US.If you are a transfer student, or an MS student in another department, we welcome you to CSE247/502N, but you will be responsible for completing assignments using Java with the same deadlines as all students. You can probably pick up Java on your own if you have significant experience with another similar programming language.
The use of Java in this course is fairly straightforward.
If you have further questions, please contact the instructor of record for the semester in which you want to take CSE247/502N.
CSE347 is our Analysis of Algorithms course. A discussion of whether it is required for you appears below; however, you should strongly consider taking it even if it is not required. It is a challenging and extremely worthwhile course.CSE347 is a requirement for first- and second-major students who use our current bulletin as the specification of their requirements. While a student at our university, you are are allowed to follow any bulletin dating back to when you would have been a first-year on campus. Some of those programs do not require 347 specifically, but require a T course; 347 counts as a T course. Other programs do not require a T course or 347.
We have set things up so 400E counts as elective credit for students in CSE programs. You are allowed a certain number of elective course credits, and 400E will count toward that. CSE 400 counts as general credit at the university, but not toward a student's elective credits in our department.
We have set things up so 400E counts as elective credit for students in CSE programs. You are allowed a certain number of elective course credits, and 400E will count toward that. CSE 400 counts as general credit at the university, but not toward a student's elective credits in our department.
We use Java in both CSE131 and CSE247 because it is still the language used in the AP computer science curriculum in high schools in the US.If you are a transfer student, or an MS student in another department, we welcome you to CSE247/502N, but you will be responsible for completing assignments using Java with the same deadlines as all students. You can probably pick up Java on your own if you have significant experience with another similar programming language.
The use of Java in this course is fairly straightforward.
If you have further questions, please contact the instructor of record for the semester in which you want to take CSE247/502N.
The core courses are those courses specifically required for your major.
- Computer science first or second major (they are the same)
- Computer engineering first major (no second major available)
- The minor in computer science requires CSE131 and CSE247.
- The bioinformatics minor.
We allow up to 6 units of credit toward our major's programs to be completed outside the traditional classroom. One such experience is an independent study, which typically involves working with a faculty member on research or a project of mutual interest.Independent study requires approval of the supervising faculty member. Students enroll in CSE 400E to receive elective credit for independent study, in the section associated with the supervising faculty member.
The supervising faculty member must be faculty in our department or hold a courtesy appointment in our department. You must sign up for credit in the section associated with that supervising faculty member. The work you do may be with somebody outside of our department, in which case the de jure supervising faculty member will coordinate the activity with the de facto advisor for the work:
- Your independent study must not violate our department's rules for the number of courses that can be taken outside our traditional classroom courses. This is articulated elsewhere.
- It will be detetermined that the scope of work is appropriate for the number of units.
- The criteria for success will be communicated explicitly between the de facto and de jure advisors.
- The de facto advisor is responsible for writing a statement at the end of the independent study evaluating the quality of your work.
- The grade for your work is determined at the recommendation of the de facto advisor and entered by the de jure advisor.
As with any course, you will have to devote reasonable time to independent study. We generally hold that 3 units of credit is at least 10 hours of work a week. A semester has 15 weeks, so 3 units of independent study should take about 150 hours of your time.
Because traditional courses have deadlines and independent study typically is more open-ended and flexible, many students make the mistake of putting off working on their independent study projects. This usually causes faculty to drop the independent study with the student.
Success depends upon the appropriate investment of time by the student, the accurate and timely reporting of issues and progress, and the regular meetings with supervising faculty to keep the work on track. Most students who succeed at independent study report that they spend more than the usual amount of time on independent study, because they find the work interesting and rewarding.
Cybersecurity is a highly integrated field and requires knowledge of networking, systems software, and programming. Taking a combination of CSE 473 and CSE 361 provides a strong foundation in these concepts. There are also online resources that can teach these subjects, such as this free one, which provides excellent courses for all levels.
The title of dean is usually given to an individual who has significant oversight or responsibility for an academic unit, in our case a school of our university.Amoung our schools, there appears to be no consistency between the flavors of dean titles, but an easy way to describe the main dean of a school is to say that he or she reports directly to the provost. These provost-reporting deans are each responsible for all activites of their respective schools: salaries, teaching, research infrastructure, planning, fundraising. The current dean of SEAS is Aaron Bobick, and he is also a faculty member in CSE.
Each school also has a dean who supervises the academic activities of that school. Chris Kroeger is that dean for SEAS, and his office hosts staff who also carry the dean title and who advise and oversee the school's academic programs.
Our school has a long history of automated checking of the courses you have taken against the degrees you seek to complete. John Russell, who directed Engineering Student Services prior to Chris Kroeger, had a program written in FORTRAN that would produce interesting rounding results, showing you had 3.0001 units remaining to complete your degree, for example. But I digress.We then had DARS (Degree Audit and Reporting System), but that was only for SEAS.
Things are much better now. WUAchieve is a system Washington University bought to handle degree, major, and minor requirements across the university. While some programs are not yet on board, chances are you can log into WUAchieve and see what remains in the programs you have open. You can see the history of what you have completed, the courses that are currently in progress, and what remains to be accomplished for you to finish.
Follow the directions on that site, and make sure the open programs it shows for you are correct. See elsewhere in this FAQ for how to change programs.
Because there is leeway in how some courses count, students in a combined BS and MS program may not see courses counting as they wish. You should use WUAchieve as a starting point and then double check with your advisor. Once approved, the form you have on file for completing an MS degree in our departmental office is the most genuine documentation of what you need to do to finish.
The short answer is you almost certainly want a second major and not a second degree. The intrepid can find the whole story below.At Washington University, a degree is the primary unit of recognition conferred by a school (such as SEAS or ArtSci) on a student at commencement, indicating that a student has completed one or more programs of study in that school. Within a given school, students can complete multiple majors. Moreover, many programs (and computer science is anong them) have second majors which allow students to study disciplines outsisde their primary major. A student's transcript indicates all of the majors, first and second, that the student has completed.
To make sense of this, it is useful to think of a degree and a primary major as coupled: a student studies a primary major in his or her school (SEAS or ArtSci for example) and earns a degree from that school. The rules governing the number and types of courses that must be taken for graduation are drawn from the school in which a student has a primary major.
A second major brings the burden only of the subject itself, without incurring distribution and other requirements of any school. Thus, a second major in computer science may be earned by students who are primarily situated in any school (including SEAS), but the courses needed to complete the second major are dictated by the second major itself, and not by the school.
Thus, most students can be described as follows. The student is primarily situated in some school and pursuing a primary major in that school. That same student may be completing second majors in departments and programs across the university. Each such second major has its own requirements, but they do not carry any associated school requirements beyond what the student must complete for his or her primary major. Here are some examples:
- Alice's primary major is electrical engineering, which situates her in SEAS. Alice would like to earn a second major in computer science. She does this by looking at the web page for the second major, by adding the second major to her programs of study using WebSTAC, and by consulting with her second major advisor as needed. That advisor does not need to approve Alice for registration, but serves as needed to support Alice in her studies of computer science.
- Bob's primary major is economics, which situates him in the College of Arts and Sciences. Bob would like to earn a second major in computer science, and he follows the same steps Alice did to enroll in the second major and to secure an advisor for those studies. Because Bob is primarily in the College of Arts and Sciences, their rule of 3 restriction applies, which means he would not be allowed to add the second major if the sum of his primary majors, second majors, and minors would exceed three. If that is the case, Bob then considers transferring into the School of Engineering and Applied Sciences, which has no rule of three restriction.
Then what is a second degree? First let me explain that the distinction between a second degree and a second major is almost impossible for people outside our walls to discern. So if you are satisfied with doing a second major, you need not read on. Still here? A second degree acts as if you were also primary in the school of your second degree. Let's return to Alice and Bob.
- Alice, already a SEAS student, wants a degree in electrical engineering and also a degree in computer science. She must read the rules for multiple degrees in the bulletin where she will discover she needs more resident credit in SEAS than if she had chosen a second major. She most likely decides this isn't worth it because she can simply list both majors on her resume, and the difference between the second major and a second degree is difficult to explain.
- Bob is even in worse shape should he choose the second degree. Because he is in ArtSci, he would have to complete the distribution requirements of both schools to earn both degrees.
The current degree requirements are listed here. Once you follow that page to a particular program, you will see a place to click to access previous years' degree requirements. You can pick any year while you are a student at Washington University, but you cannot mix or match between years. You must satisfy all of the requirements of whichever year you designate as your effective requirements year.You should visit Engineering Student Services in Lopata 303 after you have decided which year you want, so they can make sure your degree audits reflect your degree requirements.
The life of a student at an institution such as Washington University can at times be difficult. Course work, student groups, obligations to family, part-time employment—all of these can conspire to make your plate quite full. Then, too, we know that depression as an illness can and does develop in colleage-age students.It is important first and foremost to take care of yourself. If you, your instructors, your advisors, or your friends develop concerns about your well-being, you are encouraged to explore the services available for counseling, starting with this page.
If somebody you know is in crisis (including, of course, yourself), then information for quick response can be found here. If help is needed immediately, you should call 911.
Each school is allowed to have its own rules concerning how courses count toward its programs of study. For example, ArtSci prohibits double counting of almost all courses, so that if a student takes discrete math within the math department (Math 310), then it can count toward a math program or toward computer science, but not both from the ArtSci perspective.However, it is up to each school to reason about whether a given course is necessary for students in its programs of study. Thus, if a student has taken Math 310 there is no reason our department would require that student to take another course (say, CSE240) in discrete math. We indicate this by waiving the discrete math requirement for that student's computer science program, by saying it has been satisfied by studies outside our department. This avoids double counting Math 310, which allows the student to use that course in a math program (or once in any program of study in ArtSci that requires or counts Math 310 as an elective).
Similarly, if a student takes an upper level math course, say Number Theory and Cryptography, we would say that the student then has 3 fewer units to satisfy for elective credit by virtue of studies outside of our department. This allows the Number Theory and Cryptography course to count within ArtSci without any problems.
Some of our courses would like your help with grading exams and other work, even if you are not currently a TA for a particular course needing your help. When the TA draft is published, we ask if you would like to be part of EGRT, the Emergency Grading Response Team.If you are hired to be a TA for any course, then we can also use your help with EGRT. We solicit your help as-needed by an email asking for your help on a particular day at a particular time. You don't need to have taken the class in most cases. You are given a grading rubric and surrounded by people who can help answer any questions you have.
We try to recruit as many TAs for grading as needed to keep the grading session to two hours. In this way we don't impose too much on your time.
We can't hire you for EGRT unless you are otherwise employed as a TA. The pay is the standard TA pay, currently $10 an hour.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
The university distinguishes dropping a course and withdrawing from a course. Those distinctions are related to when you take action, and the relevant dates are published each semester on that semester's academic calendar, such as the one that appeared in Spring 2017.Note that if you are required to maintain a certain course load, dropping or withdrawing from a course may reduce your enrolled units below that threshold.
- The earlier of the two dates is the last day to drop (D) a course. By taking action on or before that day, the course is erased from your transcript as if you had never enrolled in that course. There is no effect on your transcript.
- The later of the two dates is the last day to withdraw (W) from a course. The course remains on your transcript, but there is no effect on your GPA.
Many students worry needlessly about the appearance of a W on their transcript. Quite often, withdrawing from a course is a wise choice, and the W can therefore stand for Wisdom. If you are conflicted about whether to stay or withdraw from a course, then talk with your academic or 4-year advisor.
You should check with your school's student services group to make sure that dropping or withdrawing from a course does not trigger an unpleasant consequence.
The short answer is you almost certainly want a second major and not a second degree. The intrepid can find the whole story below.At Washington University, a degree is the primary unit of recognition conferred by a school (such as SEAS or ArtSci) on a student at commencement, indicating that a student has completed one or more programs of study in that school. Within a given school, students can complete multiple majors. Moreover, many programs (and computer science is anong them) have second majors which allow students to study disciplines outsisde their primary major. A student's transcript indicates all of the majors, first and second, that the student has completed.
To make sense of this, it is useful to think of a degree and a primary major as coupled: a student studies a primary major in his or her school (SEAS or ArtSci for example) and earns a degree from that school. The rules governing the number and types of courses that must be taken for graduation are drawn from the school in which a student has a primary major.
A second major brings the burden only of the subject itself, without incurring distribution and other requirements of any school. Thus, a second major in computer science may be earned by students who are primarily situated in any school (including SEAS), but the courses needed to complete the second major are dictated by the second major itself, and not by the school.
Thus, most students can be described as follows. The student is primarily situated in some school and pursuing a primary major in that school. That same student may be completing second majors in departments and programs across the university. Each such second major has its own requirements, but they do not carry any associated school requirements beyond what the student must complete for his or her primary major. Here are some examples:
- Alice's primary major is electrical engineering, which situates her in SEAS. Alice would like to earn a second major in computer science. She does this by looking at the web page for the second major, by adding the second major to her programs of study using WebSTAC, and by consulting with her second major advisor as needed. That advisor does not need to approve Alice for registration, but serves as needed to support Alice in her studies of computer science.
- Bob's primary major is economics, which situates him in the College of Arts and Sciences. Bob would like to earn a second major in computer science, and he follows the same steps Alice did to enroll in the second major and to secure an advisor for those studies. Because Bob is primarily in the College of Arts and Sciences, their rule of 3 restriction applies, which means he would not be allowed to add the second major if the sum of his primary majors, second majors, and minors would exceed three. If that is the case, Bob then considers transferring into the School of Engineering and Applied Sciences, which has no rule of three restriction.
Then what is a second degree? First let me explain that the distinction between a second degree and a second major is almost impossible for people outside our walls to discern. So if you are satisfied with doing a second major, you need not read on. Still here? A second degree acts as if you were also primary in the school of your second degree. Let's return to Alice and Bob.
- Alice, already a SEAS student, wants a degree in electrical engineering and also a degree in computer science. She must read the rules for multiple degrees in the bulletin where she will discover she needs more resident credit in SEAS than if she had chosen a second major. She most likely decides this isn't worth it because she can simply list both majors on her resume, and the difference between the second major and a second degree is difficult to explain.
- Bob is even in worse shape should he choose the second degree. Because he is in ArtSci, he would have to complete the distribution requirements of both schools to earn both degrees.
If you are dual degree and your effective first-year of entry is prior to our requring 347, then you do not have to take 347, but you must satisfy all of the requirements of the particular year you choose as your effective year of entry.
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
The information below is meant to be generic advice, but our faculty hope you will take interest and notice of our REU program.Many institutions offer the chance to spend part of your summer working with faculty and graduate students on research. These programs are designed to show its participants the nature of research: identifying interesting problems, formulating methods to try to solve those problems, and communicating results to diverse audiences.
While the applications for REU sits will vary, they almost all require some statement of purpose, some letters of recommendation, some record of your academic progress to date, and some idea of the projects that interest you. You are therefore advised as follows:
- Peruse the REU institution's web site and find projects and their associated faculty that interest you. The interest need not stem from extant exposure or experience in that area.
- Identify your letter writers. Reference letters should come from those who are familiar with your achievements and who can address your work ethic, potential, and suitability for the research experience. Contact those letter writers in advance of their receiving any solicitation for letters. Provide those letter writers with your statement of purpose and a current resume.
- Be sure to observe the deadlines posted for applications. Be sure to line up your letter writers well in advance of those deadlines.
While the NSF largely funding our REU programs only pays for US citizens to participate, our department has some funds that allow us to recruit and train non-US citizens in this same program.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
We ask our students in our major and minor programs, and often those students who recently took a course, to apply for the department's fantasy draft. The timeline for that is generally as follows:
- The draft will open in the week after students have registered for the next semester's classes. This way, you know your schedule.
- An email will be sent to you to notify you of the draft.
- You indicate your interest by filling out the draft, on time and completely, with the information solicited on that form.
- Professors then make their picks from those who have applied.
- You are notified about the outcome, generally within a month of the draft's appearance.
Some of our courses would like your help with grading exams and other work, even if you are not currently a TA for a particular course needing your help. When the TA draft is published, we ask if you would like to be part of EGRT, the Emergency Grading Response Team.If you are hired to be a TA for any course, then we can also use your help with EGRT. We solicit your help as-needed by an email asking for your help on a particular day at a particular time. You don't need to have taken the class in most cases. You are given a grading rubric and surrounded by people who can help answer any questions you have.
We try to recruit as many TAs for grading as needed to keep the grading session to two hours. In this way we don't impose too much on your time.
We can't hire you for EGRT unless you are otherwise employed as a TA. The pay is the standard TA pay, currently $10 an hour.
There is a different answer for study abroad, so please look there for information about that.Computer science and computer engineering are broad areas of study, and we recognize this by looking for courses outside our department that we can count toward your major or minor programs.On the other hand, it would not make sense for a student to take most of his or her courses outside our department and still earn a CSE major or minor from our department. We therefore have the following residency requirement for our department's elective credits:
How should you think about spending your 3 or 6 units?
- If you are earning a major, then all but two electives (6 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- If you are earning a minor, then all but one elective (3 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- You can take on independent study with faculty. Details of that are covered elsewhere.
- You can take a course from the approved list of courses below.
- You can arrange by exception to count a course that doesn't appear in our list below. That conversation starts with your advisor and ends with the department's associate chair.
The list of courses TBD
Yes! All SEAS students are invited to particpate in EnCouncil. They organize social and academic events, and our faculty and administration look to EnCouncil to provide feedback about our offerings and programs.
Outside of OPT and CPT experiences that are allowed for students on an F1 visa, such students are not allowed to earn money pursuant to self-employment or independent contractor status. They also generally are not able to work off campus unless they can document sever economic hardship. You should check with the International Office for further information.Such students can be paid as TAs by the university, because that contributes to the students' studies and is managed by the university.
Attempts to earn money outside the university are treacherous for students on an F1 visa. Especially in recent times, the USCIS agency has been both more vigilant in finding offenders and more quick to take action, which can include removal (deportation).
A relevant example would be a student posting an app to the Apple iTunes store. There are the following possible problems with that for students with an F1 visa:
Students are advised to consult counsel and to take steps to be on the safe side of any line drawn for such issues.
- If the student earns money from publication of the app, the student becomes self-employed, which is prohibited for such students. Most likely a tax form will be issued, which can then alert authorities that the student has earned money and violated his or her visa status. That could then lead to the student accruing unlawful presence and possible removal proceedings.
- If the student does not earn any money from the published app, the work done to create and publish the app could be construed as volunteer work, which is also prohibited by USCIS. While it is much less likely the student would be caught, the danger still exists.
For the reasons above, no course taught in our department can require students to publish an app. They can submit the app for evaluation by a company, but they are not required to publish the app.
Group work: the issues above become even trickier if the student is involved in group work. It is important that the group establish up-front whether any or all members are interested in publishing their work for money or even for free. If some members want to earn money or publish their work, and others do not, it is best that the group disband.
The popularity of our courses has risen over the years to the extent that unless we take special action, many of our own students would not be able to get seats in our courses.Of course we strive to make room for all students interested in our courses, but we can only let in students whom we can effectively mentor, teach, and grade.
We also try to seat students based on their urgency for taking a given course. Students who will soon graduate will get priority over students who have another semester or year to take the course. The university's automatic registration system doesn't quite achieve this goal. It allows students to register based on their year of entry, not their year of exit.
With the above provisos in mind, we have therefore adopted the following policy about admission to the most popular courses.
We realize that some programs on campus list our courses as required or optional for their own programs, but they do this without communication with our department. We cannot guarantee such students seats in our courses.
- For courses required for a particular program in CSE, we prioritize those in the program over those not in the program, subject to other considerations listed below.
- For graduate courses (those listed at the 4xx or 5xx levels), PhD students from any department have the highest priority.
In practice this has not been a problem, and there is a fair trade agreement among schools so that doctoral students can take the courses they need to make progress on their research. If the numbers rise to the level that our students are excluded from seating, we will revisit this policy.
- Students with an open program in CSE are next seated. This could be a major or minor program.
- This is intended to include CS+X students who are primarily in another school. We treat you as our own.
- Students who are primarily in the McKelvey School of Engineering are seated next.
- All other students are seated last.
Also, students who have already taken a course may have lower priority than students waiting to take that course for the first time.
You should first identify the source of the dissatisfaction:
- Was the point tally on an assignment computed incorrectly?
- Do you believe you had a correct response or solution but your grade indicated otherwise?
- Did you miss a deadline for an assignment? Are seeking to turn in work late?
- Did you miss turning in an assignment because of school-, athletic-, or career-related events?
Next you should consider the following principles in terms of addressing your concerns:
- You should address any expected absences before the semester begins. Athletic events, conferences, job interviews—all of these are important to your success and trajectory as a student at Washington University. Faculty are generally supportive of such absences, but to be certain you need to have the appropriate conversation as soon as possible.
Do not rely on a TA's response to such questions or issues. You must have this conversation with the course's instructor.
- Some of our courses, especially the larger ones, feature late coupons or dropped grades. In those courses, you should expect to apply coupons or dropped grades to unexpected as well as expected absences.
- Unexpected absences can happen, and these usually take the form of extended illness or loss of a friend or family member. In such cases, you should contact your school's academic dean (e.g., Chris Kroeger for SEAS). The dean will then send faculty an email explaining the circumstances and asking for accommodation.
- You should address the issue you have with the grading of an assignment as soon as possible after you receive the assignment and its grade. If you wait until the end of the semester, thinking that at that point the grade change will benefit your final grade in the course, you are likely to be turned away. This has to do with the justice of your overall performance evaluation in the course (see below).
Some important caveats:
- Where do you address a grading issue?
- Generally you should start with the staff of your course who issued the grade, working your way up the chain as necessary. That chain from top to bottom is:
For example, if the grade is for a lab assignment that was graded by any TA, then you would start with the course's head TA or head grader. If the grade is for an exam that the instructor graded, then begin with the instructor unless instructed otherwise.
- The school's academic dean
- The course's department's associate chair
- The instructor(s) of the course
- A head TA or head grader
- What steps do you take?
- First check the courses's web pages or other documentation and look for instructions about how to request a regrade of submitted work. Follow those instructions carefully. If no such instructions are available, then:
- Write an email to the person who should field your request (see above). In that email provide as much information as possible, but you can also request a meeting during that person's office hours. If you are unable to make that person's office hours, provide specific times for the next 5 business days during which you are available.
The idea here is to minimize effort on the side of the person receiving your request. If you can be thorough, the matter can be handled expeditiously.
- Many faculty will regrade an entire assignment rather than just the place where you feel you received insufficient credit. In some cases, the result may be a lowering of your grade. See the information below on justice.
- Students have been caught cheating by changing their work between receiving its grade and submitting it for regrading.
This violation of academic integrity is easy to prove and is met with harsh consequences. You will likely receive an F in the course and the infraction will be retained in the permanent record of your work at the university. Look elsewhere in this FAQ for information about academic integrity and community standards.Do not make any marks or changes to work if you intend to resubmit for regrading.Justice Faculty, staff, and students are interested in justice and fairness in grading. This means that the grade given on submitted work fairly evaluates the student's work. Where possible, instructors provide rubrics as to how an assignment will be graded. Some students receive a poor grade for simply not reading the rubric and following an assignment's required instructions. A student truly interested in justice would bring any grading error to the attention of the instructor, whether it benefits the student or not. Instructors are sometimes approached by students who point out grading mistakes not in their favor. Instructors are also approached by students near or at the end of the semester, asking for grade reconsiderations or extra work those students might do to improve their grade. Justice requires that instructors not make opportunities available to some students that are not available to all students. Requests along those lines betray a student's intent and are not recommended.
Some of our courses would like your help with grading exams and other work, even if you are not currently a TA for a particular course needing your help. When the TA draft is published, we ask if you would like to be part of EGRT, the Emergency Grading Response Team.If you are hired to be a TA for any course, then we can also use your help with EGRT. We solicit your help as-needed by an email asking for your help on a particular day at a particular time. You don't need to have taken the class in most cases. You are given a grading rubric and surrounded by people who can help answer any questions you have.
We try to recruit as many TAs for grading as needed to keep the grading session to two hours. In this way we don't impose too much on your time.
We can't hire you for EGRT unless you are otherwise employed as a TA. The pay is the standard TA pay, currently $10 an hour.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
You can use this link: click hereFor more detailed information on this FAQ is generated, read on…
This FAQ is built by a script that accepts files in the following format:
keyword1 keyword2 ... Question Answer
- All of the keywords no matter how many, must appear on the first line. If you want a space between the keyword phrase, use an underscore as in:
second_major- Similarly, the question must appear entirely on the second line. If you want it to have a line break, use the HTML gesture <br> to cause the break.
- The rest of the file is considered the response or answer to the frequently asked question.
You can use HTML markups anywhere you like. Also, the glossary keywords are marked up automatically by the script, for words such as school.
So how can you contribute? In any one of the following ways, and in each case send your email to the associate chair:
- Suggest questions, responses, or edits informally.
- Prepare a file using the format described above, and send that file.
- If you want to contribute substantially, the files for this FAQ are maintained in a bitbucket repo and you can ask to be invited as a collaborator. By cloning, modifying, committing and pushing your change, they can be posted to the web site.
That's a Frequently Asked Question!
Many students seek to expand or deepen their knowledge of computer science and engineering by pursuing graduate study after or in concert with their undergraduate studies. The financial assistance and incentive programs described here are written assuming you are a current Washington University undergraduate student. If you are not such a student, you can find more information about programs that are available to you here.While we encourage applications for graduate study from outside our campus, the financial assistance and incentive programs described here are not available for such students.
Our faculty conduct research to push the field of computer science and computer engineering in new, interesting, and important directions. We encourage you to conduct research with faculty
Other parts of this FAQ describe the research you might do as an undergraduate.
- to help us with our research and
- to help you decide whether you want to perform research as part of graduate studies.
At this point, you might find yourself somewhere on the spectrum of interest in graduate studies as follows:
- You like taking classes and learning more about computer science, but you are not interested in participating in research.
- In this case, the best advice is to work ahead toward the courses you need to complete a master's degree while you are an undergraduate. The requirements for those degrees can be found on these pages, and you are encouraged to take courses that count for those degrees as you are able.
Thereafter, you may stay one or more semesters to finish the master's work, and the tuition you pay may be decreased by our dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Most students find they can finish the combined undergraduate and master's work in one extra semester. Rarely, a student finds that the work can be done in the same four years as the undergraduate degree. Sometimes the work may take two extra semesters.
- You are certain you want to earn a doctorate in computer science
- In this case, you are encouraged to become involved in research with our faculty as soon as possible and develop an impressive application for doctoral graduate study.
Doctoral students in computer science (at Washington University and elsewhere) are fully funded with a stipend to support living expenses and no tuition expenses whatsoever.
Doctoral work typically takes some 5 or 6 years to complete.
- You are interested in research and a master's degree but don't want a PhD
- In this case you have the following options, but all paths here begin by establishing a research relationship with a faculty member.
- You fund yourself to continue your studies into a master's program, but complete up to 6 units of master's project or thesis credit in place of the same number of units you could earn by completing courses. As described above, your tuition may be discounted by the dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Up to 6 units are earned as a master's project or thesis through the research you conduct with a faculty member. Faculty usually agree to such an arrangement only where the student has demonstrated interest and ability to work as a reseacher with faculty and other students.
- You are funded by a faculty member to complete your master's studies. Here it is especially important for you to have already engaged with a faculty member in research, perhaps working in a lab or with a faculty member for one or more semesters or over the summer on research.
There are currently two forms of this kind of support, which differ in terms of the time commitment made by the student for the research efforts. As stated above, these are available only for our current students and each requires recommendation by a faculty member.
- Master's Fellowship
- Think of this as some funding you can receive one semester at a time by helping a faculty member with research.
This arrangement takes place one semester at a time and is usually based on a faculty member's need for immediate help with research. For this one semester, you receive a fellowship at a level that is 50 percent of the stipend support given to doctoral students, and your tuition is discounted from its full price by 15 percent.
With mutual agreement this could be extended into subsequent semesters.
- Master of Science Research Assistantship
- Think of this as a slow (2-year) but fully funded (tuition and stipend) path to an MS degree.
You commit to being a full-time graduate student for a particular faculty member for two years, taking no more than two regular classes each semester, and devoting the rest of your time to research. Over a period of two years, you will finish the eight courses you need for the MS as well as a master's project or thesis for the other two courses needed for the degree. Your tuition is covered by the school, and you receive a research assistantship at a level that is 80 percent of the support given to PhD students.
There are high expectations here of devotion to and progress on the research. The trust that such progress would be made is developed by prior experiences with the particular faculty member, who must be suitably impressed with your work ethic, research potential, and time management to make this commitment to you. Failure to sustain progress could terminate this arrangement at the faculty member's discretion.
If you are a primary major in computer science, then you have two kinds of course obligations you must fulfill:A second major need only do the first set of courses, and the requirements for the second major are found here. The careful reader will note that the computer science course requirements for both first and second majors are identical.
- Some courses are required for the computer science aspect of your primary major in computer science.
- Some courses are required because, as a primary major in computer science, you are also primarily situated in SEAS. This brings obligations of coursework you must do that is outside of what the computer science part of your studies require.
Thus, our department supports students saying they have majored in computer science whether they have done so by primary or by second major.
Note that a second major in computer science must be a first major in some school. The rules and requirements of that school and that student's first major must be followed to graduate from Washington University.
You can find it here
Students at Washington University are assigned many advisors, and it is helpful to know where to turn for advice in particular situations. Generally, your advisors can be split into residential advisors and academic advisors. For academic advisors, you are assigned a 4-year advisor in your primary school. You are also assigned a departmental advisor for any major or minor program in which you are enrolled.Your 4-year advisor can provide information about the requirements, rules, and procedures of your primary school. They can also often give you good advice about your major or minor programs of study, but they are understandably unable to know the details of all of those for every program of study.
Thus, you should turn to your departmental advisor to answer questions about courses specific to your major or minor.
Here are some examples:
- Your 4-year advisor
- Can Personal Finance count toward my social sciences distribution requirement?
- I'd like to study abroad in Lichtenstein. How do I do that?
- I'm thinking of a second major in math. How can I take courses efficiently that count toward my first and second major? What differences are there between similar courses offered by different departments?
- I'm thinking of transferring your schools. How do I do that?
- I have AP credits but I am not sure how they are counting toward my graduation.
- I am struggling in Calculus (or CSE131, or ...). What kind of help can I get?
- I would like to take some courses elsewhere and have them count here. Where can I do that and what courses would count?
- I have been accused of violating academic integrity policies in a course. What should I do?
- Your departmental advisor
- Of course, we are hoping this FAQ answers the most frequently asked questions, but following are examples of questions for your departmental advisor
- What courses should I take if I am interested in Machine Learning?
- I have heard CSE417T is really hard. What can I do to prepare for that course?
- I'd like to be involved in research in the department. How do I go about that?
- How do I best prepare for job interviews, internships, and full-time employment?
- How do I think through my options after finishing my undergraduate programs: master's programs, doctoral studies, immediate employment?
Many students seek to expand or deepen their knowledge of computer science and engineering by pursuing graduate study after or in concert with their undergraduate studies. The financial assistance and incentive programs described here are written assuming you are a current Washington University undergraduate student. If you are not such a student, you can find more information about programs that are available to you here.While we encourage applications for graduate study from outside our campus, the financial assistance and incentive programs described here are not available for such students.
Our faculty conduct research to push the field of computer science and computer engineering in new, interesting, and important directions. We encourage you to conduct research with faculty
Other parts of this FAQ describe the research you might do as an undergraduate.
- to help us with our research and
- to help you decide whether you want to perform research as part of graduate studies.
At this point, you might find yourself somewhere on the spectrum of interest in graduate studies as follows:
- You like taking classes and learning more about computer science, but you are not interested in participating in research.
- In this case, the best advice is to work ahead toward the courses you need to complete a master's degree while you are an undergraduate. The requirements for those degrees can be found on these pages, and you are encouraged to take courses that count for those degrees as you are able.
Thereafter, you may stay one or more semesters to finish the master's work, and the tuition you pay may be decreased by our dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Most students find they can finish the combined undergraduate and master's work in one extra semester. Rarely, a student finds that the work can be done in the same four years as the undergraduate degree. Sometimes the work may take two extra semesters.
- You are certain you want to earn a doctorate in computer science
- In this case, you are encouraged to become involved in research with our faculty as soon as possible and develop an impressive application for doctoral graduate study.
Doctoral students in computer science (at Washington University and elsewhere) are fully funded with a stipend to support living expenses and no tuition expenses whatsoever.
Doctoral work typically takes some 5 or 6 years to complete.
- You are interested in research and a master's degree but don't want a PhD
- In this case you have the following options, but all paths here begin by establishing a research relationship with a faculty member.
- You fund yourself to continue your studies into a master's program, but complete up to 6 units of master's project or thesis credit in place of the same number of units you could earn by completing courses. As described above, your tuition may be discounted by the dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Up to 6 units are earned as a master's project or thesis through the research you conduct with a faculty member. Faculty usually agree to such an arrangement only where the student has demonstrated interest and ability to work as a reseacher with faculty and other students.
- You are funded by a faculty member to complete your master's studies. Here it is especially important for you to have already engaged with a faculty member in research, perhaps working in a lab or with a faculty member for one or more semesters or over the summer on research.
There are currently two forms of this kind of support, which differ in terms of the time commitment made by the student for the research efforts. As stated above, these are available only for our current students and each requires recommendation by a faculty member.
- Master's Fellowship
- Think of this as some funding you can receive one semester at a time by helping a faculty member with research.
This arrangement takes place one semester at a time and is usually based on a faculty member's need for immediate help with research. For this one semester, you receive a fellowship at a level that is 50 percent of the stipend support given to doctoral students, and your tuition is discounted from its full price by 15 percent.
With mutual agreement this could be extended into subsequent semesters.
- Master of Science Research Assistantship
- Think of this as a slow (2-year) but fully funded (tuition and stipend) path to an MS degree.
You commit to being a full-time graduate student for a particular faculty member for two years, taking no more than two regular classes each semester, and devoting the rest of your time to research. Over a period of two years, you will finish the eight courses you need for the MS as well as a master's project or thesis for the other two courses needed for the degree. Your tuition is covered by the school, and you receive a research assistantship at a level that is 80 percent of the support given to PhD students.
There are high expectations here of devotion to and progress on the research. The trust that such progress would be made is developed by prior experiences with the particular faculty member, who must be suitably impressed with your work ethic, research potential, and time management to make this commitment to you. Failure to sustain progress could terminate this arrangement at the faculty member's discretion.
These courses overlap considerably but are worth taking in either order.
- Get interested/inspired.
- Read lots of code. Look at what others have done and learn from them.
- Write lots of code. It doesn't have to be efficient or very good.
- Explain your code to someone else. This step will test your understanding and show you what you don't completely understand.
- Make mistakes. Learn from them. Optimize your code. Repeat.
Some of our courses would like your help with grading exams and other work, even if you are not currently a TA for a particular course needing your help. When the TA draft is published, we ask if you would like to be part of EGRT, the Emergency Grading Response Team.If you are hired to be a TA for any course, then we can also use your help with EGRT. We solicit your help as-needed by an email asking for your help on a particular day at a particular time. You don't need to have taken the class in most cases. You are given a grading rubric and surrounded by people who can help answer any questions you have.
We try to recruit as many TAs for grading as needed to keep the grading session to two hours. In this way we don't impose too much on your time.
We can't hire you for EGRT unless you are otherwise employed as a TA. The pay is the standard TA pay, currently $10 an hour.
- Subscribe to our department's jobs email list by contacting Monet Demming.
- Look for REU opportunities
- Look for mentoring / teaching opportunities
- CTY
- IDTech
Because specific points and language are needed for such letters, the letter originates from your company and is then sent to us for verification, printing on department letterhead, and return to you.For our undergraduate students (including those who are in a combined BS/MS program), we follow the following process:
Graduate students should consult the director of our graduate program for advice about this.
- Our department staff produce your transcript and pass that and your letter to the associate chair.
- The associate chair verifies the wording of the letter is an accurate reflection of the courses you took here and the grades you earned in those courses.
- If approved, the letter is printed on department letterhead, signed by the associate chair, and returned to you. If there needs to be some wording changed in the letter to make it more accurate, you will be contacted.
If you are a minor or major in computer science, the good news is that employment in our industry is extremely strong. Internships are ideal settings for a company and an employee to see if there is a good fit for full-time employment. Here is some advice about preparing for an internship.
- Accumulate a portfolio of projects and other artifacts of your work in and outside of class. You can do this with a github or bitbucket account.
Be sure that the code you post from course work is private, so that you do not provide your solutions to other students and run afoul of our community standards.The portfolio serves to document your progress as a student of computer science, but it also serves as a backdrop for a conversation in which you can express your passion and interest about your work. How did you arrive at a given interface? What obstacles did you face in developing your solution? What did you learn about teamwork, algorithms, interfaces?Likewise, companies may have policies that prohibit you from publishing or disclosing code while working for them.
Be careful!
- Have a resumé handy. Have it on paper and ready to send electronically. You never know when somebody will ask, and having one current and ready conveys professionalism.
- Visit the SEAS Career Center. Your resume and other interview artifacts can be improved by interacting with advisors there.
- Attend the job fairs every semester. Even before you are ready for an internship, make it a habit to attend the job fairs, to talk with the representatives, and to talk about your work and your interests. Ask other students or your advisor about how to dress. Most companies doing computer science do not expect formal attire, but it's worth finding this out before you show up.
- Prepare for a phone or other interview.
- Much information can be found online, and it's worth reading through resources such as Cracking the Coding Interview. One student I know worked over 400 problems before she interviewed with facebook and she landed the job. That seems extreme, but such preparation serves to make you feel more confident and to help you field questions well.
If your interview is via a video chat session, be sure to dress fully for the interview. Some of our students have been asked to stand up. Crazy, but true.
- Our department's UPE chapter has been organizing mock technical interviews. Try to schedule one or two mock interviews before an actual interview. UPE is described elsewhere in this FAQ.
- Network as best you can at venues that allow you to do so. One recent student attended the Grace Hopper Conference, and landed a job as an intern for project management at Apple. Her story is inspiring because at first Apple did not respond to her resumé. However, she returned to the booth and insisted on talking with somebody because she really wanted to be considered for the job. After that conversation, she was hired on the spot.
- Establish a relationship with faculty so that they can supply letters of recommendation. There is advice elsewhere in this FAQ about that.
You can manage subscription to this list yourself. Just send an email to cse-jobs-subscribe@lists.seas.wustl.edu. A reply will be sent asking you to confirm your address.You can self-manage this subscription. Even after subscribing, if you decide that you do not want to receive the emails, you can stop the messages from being sent to you. Simply unsubscribe yourself using the information in the footer. All mailings sent through the subscription will have a footer attached which includes instructions for unsubscribing with one of two ways offered.
First, please realize that you are valuable and that almost all of our students' internships are paid.But some are not, and there can be good reasons to consider an unpaid internship:
- A nonprofit may be in need of your skills and lack the funds to pay you.
- There may be a particular experience or set of skills you wish to develop and you are willing to do so without pay.
There are some issues you should consider in taking on an unpaid internship:
- credit
- Our department does not award credit for paid internships. For an unpaid internship, you may be eligible to receive credit for the work you do, subject to the following:
- The work should be for a non-profit or not-for-profit institution. Our department generally is unwilling to sponsor work for companies that make (or hope to make) profit without paying our students accordingly. We have made exceptions where the student benefits substantially from the experience.
- A three-unit course is generally 10 hours of work a week. Thus, to receive credit for three units of study, you should be spending between 140 and 150 hours on your project.
- A faculty member must agree to sponsor the credit portion of your work, in the sense of evaluating the grade you will receive and ensuring that the work you do is worthy of the credit.
- A supervisor at your unpaid internship must be willing to correspond with said faculty member for the purposes of establishing that you did the work and to assess the quality of the work.
- You have to register for CSE400E in the section associated with the faculty member supervising your project. To do so in summer, when you are otherwise not a student, is unwise, because you are then paying for credit while not being paid for your work.
Our department generally allows you to defer enrolling for credit until the next semester in which you are able to enroll in CSE400E without experiencing extra financial burden for taking that independent study course.
Once you have your faculty member and supervisor lined up, you can register for CSE400E and will appear on the waitlist. Ask your faculty member to notify the department of the arrangement and you will be admitted to the independent study course.
- Intellectual Property (IP)
- Our university generally holds that work our undergraduates perform while students is completely their intellectual property. When you work for a company and are paid, you typically sign away rights to intellectual property developed during that time.
But what happens with an unpaid internship? This varies by situation, and you are advised to get a written answer to this question before starting an unpaid internship. Because you are not paid, you might expect to own any intellectual property you develop while working without pay for an institution. But the institution may have other ideas and expectations about IP ownership.
Generally those who graduate from our department do one of the following:
- Obvious tech job, such as Google, Microsoft, facebook, etc.
- Non-obvious tech job, such as Wolverine, Epic, Union Pacific Railroad
- Start-up (often staying in St. Louis!)
- Consulting such as Bain, McKinsey, etc.
- Graduate school
Our school has a long history of automated checking of the courses you have taken against the degrees you seek to complete. John Russell, who directed Engineering Student Services prior to Chris Kroeger, had a program written in FORTRAN that would produce interesting rounding results, showing you had 3.0001 units remaining to complete your degree, for example. But I digress.We then had DARS (Degree Audit and Reporting System), but that was only for SEAS.
Things are much better now. WUAchieve is a system Washington University bought to handle degree, major, and minor requirements across the university. While some programs are not yet on board, chances are you can log into WUAchieve and see what remains in the programs you have open. You can see the history of what you have completed, the courses that are currently in progress, and what remains to be accomplished for you to finish.
Follow the directions on that site, and make sure the open programs it shows for you are correct. See elsewhere in this FAQ for how to change programs.
Because there is leeway in how some courses count, students in a combined BS and MS program may not see courses counting as they wish. You should use WUAchieve as a starting point and then double check with your advisor. Once approved, the form you have on file for completing an MS degree in our departmental office is the most genuine documentation of what you need to do to finish.
Please present your accommodation documentation to the instructor the first week of class.
The school (SEAS) has a limited number of laptops that can be loaned out. You must start with the instructor of the course for which you need the laptop. He or she will then request the laptop from EIT, and Sheila Leopold of EIT will then be in touch with you about getting the laptop.There is an effort underway at the university level to make sure that all students have laptops on campus.
The life of a student at an institution such as Washington University can at times be difficult. Course work, student groups, obligations to family, part-time employment—all of these can conspire to make your plate quite full. Then, too, we know that depression as an illness can and does develop in colleage-age students.It is important first and foremost to take care of yourself. If you, your instructors, your advisors, or your friends develop concerns about your well-being, you are encouraged to explore the services available for counseling, starting with this page.
If somebody you know is in crisis (including, of course, yourself), then information for quick response can be found here. If help is needed immediately, you should call 911.
Yes! Every semester this document is revised to provide up-to-date registration information.
Yes. Dean Chris Ramsay keeps a list of available tutors for classes and he can try to match you with somebody who can help. The relevant web page at Engineering Student Services (ESS) is here. If you are primariy a SEAS student you may receive up to 4 hours of tutoring free through ESS. Otherwise, tutors can still be found but you would have to pay.
The short answer is you should have plan A and plan Z.You are allowed to register for up to 21 units, so you may have to make (strategic) choices about where to register to get the courses you want.
- Plan A
- Stay on the wait list for this course. If this is a required course for any of your programs, and you have an urgent need to take the course now, be sure to let the instructor know, and see what might be done to gain admission to the course.
It is important to show up for class as if you are enrolled if Plan A is your plan. There is an apochryphal story about a student who just kept showing up. The professor finally eventually enrolled the student in the course.
Also, be aware that students drop usually in the first two weeks of class, which opens up room in a course.
- Plan Z
- Because you might not get in, it's a good idea to sign up for another course that has room. Seek the usual advice about courses from your advisor, colleagues, and friends.
Yes! The ACM is an international organization for those who study or practice computer science or computer engineering. ACM is an umbrella organization for varoius special interest groups, each of which concentrates on a specific area of computer science. For example, SIGPLAN is th special interest group on programming languages.Many colleges and universities have student-organized ACM chapters, and we are fortunate to have a vibrant WashU ACM chapter here. We strongly encourage you to check out their web page, follow their twitter feed, and attend events. The chapter typically organizes speakers, trivia nights, movie nights, registration discussion, and a fireside chat each semester with faculty.
- Get interested/inspired.
- Read lots of code. Look at what others have done and learn from them.
- Write lots of code. It doesn't have to be efficient or very good.
- Explain your code to someone else. This step will test your understanding and show you what you don't completely understand.
- Make mistakes. Learn from them. Optimize your code. Repeat.
Some of our courses would like your help with grading exams and other work, even if you are not currently a TA for a particular course needing your help. When the TA draft is published, we ask if you would like to be part of EGRT, the Emergency Grading Response Team.If you are hired to be a TA for any course, then we can also use your help with EGRT. We solicit your help as-needed by an email asking for your help on a particular day at a particular time. You don't need to have taken the class in most cases. You are given a grading rubric and surrounded by people who can help answer any questions you have.
We try to recruit as many TAs for grading as needed to keep the grading session to two hours. In this way we don't impose too much on your time.
We can't hire you for EGRT unless you are otherwise employed as a TA. The pay is the standard TA pay, currently $10 an hour.
Yes! All SEAS students are invited to particpate in EnCouncil. They organize social and academic events, and our faculty and administration look to EnCouncil to provide feedback about our offerings and programs.
You can use this link: click hereFor more detailed information on this FAQ is generated, read on…
This FAQ is built by a script that accepts files in the following format:
keyword1 keyword2 ... Question Answer
- All of the keywords no matter how many, must appear on the first line. If you want a space between the keyword phrase, use an underscore as in:
second_major- Similarly, the question must appear entirely on the second line. If you want it to have a line break, use the HTML gesture <br> to cause the break.
- The rest of the file is considered the response or answer to the frequently asked question.
You can use HTML markups anywhere you like. Also, the glossary keywords are marked up automatically by the script, for words such as school.
So how can you contribute? In any one of the following ways, and in each case send your email to the associate chair:
- Suggest questions, responses, or edits informally.
- Prepare a file using the format described above, and send that file.
- If you want to contribute substantially, the files for this FAQ are maintained in a bitbucket repo and you can ask to be invited as a collaborator. By cloning, modifying, committing and pushing your change, they can be posted to the web site.
Many students seek to expand or deepen their knowledge of computer science and engineering by pursuing graduate study after or in concert with their undergraduate studies. The financial assistance and incentive programs described here are written assuming you are a current Washington University undergraduate student. If you are not such a student, you can find more information about programs that are available to you here.While we encourage applications for graduate study from outside our campus, the financial assistance and incentive programs described here are not available for such students.
Our faculty conduct research to push the field of computer science and computer engineering in new, interesting, and important directions. We encourage you to conduct research with faculty
Other parts of this FAQ describe the research you might do as an undergraduate.
- to help us with our research and
- to help you decide whether you want to perform research as part of graduate studies.
At this point, you might find yourself somewhere on the spectrum of interest in graduate studies as follows:
- You like taking classes and learning more about computer science, but you are not interested in participating in research.
- In this case, the best advice is to work ahead toward the courses you need to complete a master's degree while you are an undergraduate. The requirements for those degrees can be found on these pages, and you are encouraged to take courses that count for those degrees as you are able.
Thereafter, you may stay one or more semesters to finish the master's work, and the tuition you pay may be decreased by our dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Most students find they can finish the combined undergraduate and master's work in one extra semester. Rarely, a student finds that the work can be done in the same four years as the undergraduate degree. Sometimes the work may take two extra semesters.
- You are certain you want to earn a doctorate in computer science
- In this case, you are encouraged to become involved in research with our faculty as soon as possible and develop an impressive application for doctoral graduate study.
Doctoral students in computer science (at Washington University and elsewhere) are fully funded with a stipend to support living expenses and no tuition expenses whatsoever.
Doctoral work typically takes some 5 or 6 years to complete.
- You are interested in research and a master's degree but don't want a PhD
- In this case you have the following options, but all paths here begin by establishing a research relationship with a faculty member.
- You fund yourself to continue your studies into a master's program, but complete up to 6 units of master's project or thesis credit in place of the same number of units you could earn by completing courses. As described above, your tuition may be discounted by the dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Up to 6 units are earned as a master's project or thesis through the research you conduct with a faculty member. Faculty usually agree to such an arrangement only where the student has demonstrated interest and ability to work as a reseacher with faculty and other students.
- You are funded by a faculty member to complete your master's studies. Here it is especially important for you to have already engaged with a faculty member in research, perhaps working in a lab or with a faculty member for one or more semesters or over the summer on research.
There are currently two forms of this kind of support, which differ in terms of the time commitment made by the student for the research efforts. As stated above, these are available only for our current students and each requires recommendation by a faculty member.
- Master's Fellowship
- Think of this as some funding you can receive one semester at a time by helping a faculty member with research.
This arrangement takes place one semester at a time and is usually based on a faculty member's need for immediate help with research. For this one semester, you receive a fellowship at a level that is 50 percent of the stipend support given to doctoral students, and your tuition is discounted from its full price by 15 percent.
With mutual agreement this could be extended into subsequent semesters.
- Master of Science Research Assistantship
- Think of this as a slow (2-year) but fully funded (tuition and stipend) path to an MS degree.
You commit to being a full-time graduate student for a particular faculty member for two years, taking no more than two regular classes each semester, and devoting the rest of your time to research. Over a period of two years, you will finish the eight courses you need for the MS as well as a master's project or thesis for the other two courses needed for the degree. Your tuition is covered by the school, and you receive a research assistantship at a level that is 80 percent of the support given to PhD students.
There are high expectations here of devotion to and progress on the research. The trust that such progress would be made is developed by prior experiences with the particular faculty member, who must be suitably impressed with your work ethic, research potential, and time management to make this commitment to you. Failure to sustain progress could terminate this arrangement at the faculty member's discretion.
Students in our department are involved in hackathons, both locally and out of town. The information for these events is typically posted and emailed to our students, but two events you might look for are ArchHacks and GlobalHack.
ArchHacks is a Washington University-hackathon hosted here by our students, and brings together the St. Louis community and students of all backgrounds to collaborate and problem-solve on relevant HealthTech issues.
GlobalHack is another St. Louis hackathon created by three St. Louis entrepreneurs with the goal of generating social impact through technology. GlobalHack hosts youth programs, and has developed solutions to local problems, such as homelessness, through their annual hackathons.
If you are interested in events outside of the St. Louis area, then two additional resources are Major League Hacking and Devpost.
Major League Hacking is the official student hackathon league, and has resources for career-building and coding challenges. Several universities pair with MLH, and will provide reimbursements for travel.
Devpost is specifically for software developers and will frequently list corporate-sponsored hackathons, as well as univeristy-led hackathons. In addition, Devpost has online hackathons where you can submit projects on their site for prizes and feedback.
Brainstorm ahead of time, and understand there is a difference between what you would like to accomplish and what is possible. Having an idea or plan ahead of time will help you cut down on discussion and start implementing quicker.
Review your personal skillset, and research the hackathon's theme or topic beforehand, if it has one.
Start with your demo. The goal of a hackathon is to produce a working demo or prototype, so make sure you understand which features are an absolute must.
Get ready to work with a team. Be respectful and considerate.
Be prepared. Get together a list of everything you need, and check for important event information, such as if food is provided and if you can stay at the venue overnight.
And finally, don't be intimidated if it's your first hackathon. Everyone remembers their first time, and it is a great opportunity to have fun and challenge yourself.
Our ACM chapter is one of many throughout the country, and the international ACM sponsors its ICPC programming contest every year.The international contest level is reached by teams competing successfully in local, regional, and state contests.
Washington University has performed well at these contests, having at this writing won 2 international contests. Our success is due to the students' interest in preparing and entering these contests. Our local ACM chapter is responsible for organizing and preparing for these contests. A FAQ entry exists elsewhere for ACM, and you are encouraged to contact them and become involved in the planning and competitions. Also, look for offerings of CSE 232, which is a 1-unit pass/fail course in which you can register to prepare for a contest.
While the goal of this group is winning contests, students involved in such preparation report a stronger connection with other students, with our department, and with the larger CSE community. The students have fun as they prepare, and while software engineering rarely requires solving so many problems so quickly, the experience and training builds confidence.
We allow up to 6 units of credit toward our major's programs to be completed outside the traditional classroom. One such experience is an independent study, which typically involves working with a faculty member on research or a project of mutual interest.Independent study requires approval of the supervising faculty member. Students enroll in CSE 400E to receive elective credit for independent study, in the section associated with the supervising faculty member.
The supervising faculty member must be faculty in our department or hold a courtesy appointment in our department. You must sign up for credit in the section associated with that supervising faculty member. The work you do may be with somebody outside of our department, in which case the de jure supervising faculty member will coordinate the activity with the de facto advisor for the work:
- Your independent study must not violate our department's rules for the number of courses that can be taken outside our traditional classroom courses. This is articulated elsewhere.
- It will be detetermined that the scope of work is appropriate for the number of units.
- The criteria for success will be communicated explicitly between the de facto and de jure advisors.
- The de facto advisor is responsible for writing a statement at the end of the independent study evaluating the quality of your work.
- The grade for your work is determined at the recommendation of the de facto advisor and entered by the de jure advisor.
As with any course, you will have to devote reasonable time to independent study. We generally hold that 3 units of credit is at least 10 hours of work a week. A semester has 15 weeks, so 3 units of independent study should take about 150 hours of your time.
Because traditional courses have deadlines and independent study typically is more open-ended and flexible, many students make the mistake of putting off working on their independent study projects. This usually causes faculty to drop the independent study with the student.
Success depends upon the appropriate investment of time by the student, the accurate and timely reporting of issues and progress, and the regular meetings with supervising faculty to keep the work on track. Most students who succeed at independent study report that they spend more than the usual amount of time on independent study, because they find the work interesting and rewarding.
Contribute to an open-source project. Open source software is source code that anyone can inspect, copy, modify, and share. It's a great way to learn and try modern development practices. Some examples include:
Get involved in a standardization effort.
Answer questions and spend time with online programming communities, such as:
- Stack Overflow
Introductory topics
- Code: The Hidden Language of Computer Software and Hardware by Charles Petzold
- Soul of a New Machine by Tracy Kidder
Must-reads
- Goedel, Escher, Bach by Douglas Hofstedler
Productivity
- Deep Work by Cal Newport
Machine Learning (gone wrong)
- Automating Inequality
- Weapons of Math Destruction
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
The information below is meant to be generic advice, but our faculty hope you will take interest and notice of our REU program.Many institutions offer the chance to spend part of your summer working with faculty and graduate students on research. These programs are designed to show its participants the nature of research: identifying interesting problems, formulating methods to try to solve those problems, and communicating results to diverse audiences.
While the applications for REU sits will vary, they almost all require some statement of purpose, some letters of recommendation, some record of your academic progress to date, and some idea of the projects that interest you. You are therefore advised as follows:
- Peruse the REU institution's web site and find projects and their associated faculty that interest you. The interest need not stem from extant exposure or experience in that area.
- Identify your letter writers. Reference letters should come from those who are familiar with your achievements and who can address your work ethic, potential, and suitability for the research experience. Contact those letter writers in advance of their receiving any solicitation for letters. Provide those letter writers with your statement of purpose and a current resume.
- Be sure to observe the deadlines posted for applications. Be sure to line up your letter writers well in advance of those deadlines.
While the NSF largely funding our REU programs only pays for US citizens to participate, our department has some funds that allow us to recruit and train non-US citizens in this same program.
Our department and school offer many incentives for you to stay and continue your studies by earning a master's degree. Those are covered elsewhere.But how do you decide whether to stay or go?
Try the following Gedankenerfahrung:
- Imagine that are going to stay one or two semesters to complete your master's degree. The number of semesters you need depends on credit you have accumulated and how many courses you would take a semester.
- How do you feel about staying for that extra time to complete the master's degree? Remember to factor in how you generally feel each semester about coming back, and how you feel once you are here.
- If on balance, you feel neutral to positive about coming back for the studies, then you should probably do the master's degree. It typically commands a higher starting salary, it allows you to do a project with faculty, and students are generally very satisifed with their advanced studies.
- If on balance, you would rather schedule root canal than take another class, then you are probably not in the frame of mind to continue your studies. Employment is quite strong and you are advised to take a job and evaluate your feelings about further education in six months or a year.
First, please take all the steps recommended by reputable scientists to keep yourself, your family, and your friends safe.A number of summer opportunities have changed because of the spread of the Novel Coronavirus and the associated disease it can cause, COVID-19. Some of those internships have moved to remote presence, and others may have been rescinded.
In any case, if you find yourself with some extra time this summer, here are some suggestions of what you might do:
- We have a number of courses being offered this summer by our department. They will all be taught online. Please consult the course listings to see what is offered. You may be interested in
- Taking some courses. These could help satisfy some requirements.
- TAing some of those courses. We can use your help and can pay you $10 an hour.
- We are allowing online courses this summer to count for your studies in our department, school, and university. Courses that already are approved as counting will count even if taught online. The process for petitioning for not-yet-approved courses is the same as usual.
The department has published the list of courses that already count for your consideration. We don't know which of those will be offered online this summer.
A similar list for math courses can be found here.
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An idea for you here is to take a hobby or interest, find an associated open-source project, and investigate features the associated community has up-voted. Start small with a simple feature, develop the feature, and contribute it to the community. You will get some realistic feedback about your coding style and implementation, and you will contribute to a project of mutual interest between yourself and others.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
We ask our students in our major and minor programs, and often those students who recently took a course, to apply for the department's fantasy draft. The timeline for that is generally as follows:
- The draft will open in the week after students have registered for the next semester's classes. This way, you know your schedule.
- An email will be sent to you to notify you of the draft.
- You indicate your interest by filling out the draft, on time and completely, with the information solicited on that form.
- Professors then make their picks from those who have applied.
- You are notified about the outcome, generally within a month of the draft's appearance.
Yes. Our UPE chapter is the local instantiation of the international UPE honor society, which is endorsed by the ACM and IEEE Computer Society. We also have a local ACM chapter that is described elsewhere in this FAQ.
Hackathons are typically 24-hour to weekend-long competitions/events where people collaborate on teams or by themselves to create a working prototype of a solution or idea. Most hackathons focus on a specific problem or area of interest, and others will hand out awards and prizes based on categories, like best hardware hack or best mobile app.
You do not need to be a programmer or CS-major to participate.
While this form of software development is unusual, usually termed a "sprint", it is worthwhile to focus on a single project that could be added to your portfolio. You can network and learn from other programmers, particularly if you choose a project that goes outside your comfort zone. The focus on a singular prototype is challenging, and the time constraint teaches effective collaboration and efficient work.
Hackathons provide a great opportunity to display your skills, win prizes, and possibly create a project that you will pursue long-term. Corporate sponsors may recruit programmers from top teams, and the end result will always be an interesting project and newly acquired skills to talk about in future networking opportunities.
Some well-known or large Hackathon events and projects include:
- Amazon's Deep Lens Challenge
- TechCrunch's Disrupt Hackathon for start-ups
- HackMIT
- HackIllinois
Yes! The Women in Computer Science (WiCS) group welcomes all women interested in computer science or computer engineering. Our chapter is just one of many, with the goal of increasing the participation and representation of women in CSE, as they are currently in our discipline.This group provides mentoring, talks, preparation for job interviews and graduate school. Our department sends a group of students from WiCS to the annual Grace Hopper conference, and there have been incredibly positive and life-changing results from attending that meeting.
If you identify as a women then we urge you to join WiCS so that you can learn from and contribute to this vibrant group of students.
The university distinguishes dropping a course and withdrawing from a course. Those distinctions are related to when you take action, and the relevant dates are published each semester on that semester's academic calendar, such as the one that appeared in Spring 2017.Note that if you are required to maintain a certain course load, dropping or withdrawing from a course may reduce your enrolled units below that threshold.
- The earlier of the two dates is the last day to drop (D) a course. By taking action on or before that day, the course is erased from your transcript as if you had never enrolled in that course. There is no effect on your transcript.
- The later of the two dates is the last day to withdraw (W) from a course. The course remains on your transcript, but there is no effect on your GPA.
Many students worry needlessly about the appearance of a W on their transcript. Quite often, withdrawing from a course is a wise choice, and the W can therefore stand for Wisdom. If you are conflicted about whether to stay or withdraw from a course, then talk with your academic or 4-year advisor.
You should check with your school's student services group to make sure that dropping or withdrawing from a course does not trigger an unpleasant consequence.
If you are unsatisfied with your performance in a given course, and if you feel that another experience with that material is necesssary, you can retake that course. This should be considered carefully and with the advice of your departmental and 4-year advisors.Except as noted below, retaking a course causes the following actions on your transcript and for your GPA computation:
However, take careful note of the following:
- The previous enrollment in the course is annotated with an R to show that the course was replaced by a subsequent enrollment in the same course. So, the prior enrollment in the course persists on your transcript. The grade earned in that prior enrollment is also shown. If you withdrew from the course, then the W persists as well.
- The new grade replaces the previous grade in terms of GPA computation. This is true even if the new grade is worse than the previous grade.
- If in your prior enrollment you were found in violation of academic integrity policies for that course, then your prior grade may not be replaced by the new grade. Each school currently makes its own decision about this.
- University rules concerning plagiarism apply also to retakes of the same course. Those rules do not allow you to submit the same work for credit in two courses, even if one of those courses is a retake of the other, without the explicit permission of the instructor of both courses.
You cannot repeat a course and submit any of the same work again for credit, without the explciit approval of both instances of that course.
You should first identify the source of the dissatisfaction:
- Was the point tally on an assignment computed incorrectly?
- Do you believe you had a correct response or solution but your grade indicated otherwise?
- Did you miss a deadline for an assignment? Are seeking to turn in work late?
- Did you miss turning in an assignment because of school-, athletic-, or career-related events?
Next you should consider the following principles in terms of addressing your concerns:
- You should address any expected absences before the semester begins. Athletic events, conferences, job interviews—all of these are important to your success and trajectory as a student at Washington University. Faculty are generally supportive of such absences, but to be certain you need to have the appropriate conversation as soon as possible.
Do not rely on a TA's response to such questions or issues. You must have this conversation with the course's instructor.
- Some of our courses, especially the larger ones, feature late coupons or dropped grades. In those courses, you should expect to apply coupons or dropped grades to unexpected as well as expected absences.
- Unexpected absences can happen, and these usually take the form of extended illness or loss of a friend or family member. In such cases, you should contact your school's academic dean (e.g., Chris Kroeger for SEAS). The dean will then send faculty an email explaining the circumstances and asking for accommodation.
- You should address the issue you have with the grading of an assignment as soon as possible after you receive the assignment and its grade. If you wait until the end of the semester, thinking that at that point the grade change will benefit your final grade in the course, you are likely to be turned away. This has to do with the justice of your overall performance evaluation in the course (see below).
Some important caveats:
- Where do you address a grading issue?
- Generally you should start with the staff of your course who issued the grade, working your way up the chain as necessary. That chain from top to bottom is:
For example, if the grade is for a lab assignment that was graded by any TA, then you would start with the course's head TA or head grader. If the grade is for an exam that the instructor graded, then begin with the instructor unless instructed otherwise.
- The school's academic dean
- The course's department's associate chair
- The instructor(s) of the course
- A head TA or head grader
- What steps do you take?
- First check the courses's web pages or other documentation and look for instructions about how to request a regrade of submitted work. Follow those instructions carefully. If no such instructions are available, then:
- Write an email to the person who should field your request (see above). In that email provide as much information as possible, but you can also request a meeting during that person's office hours. If you are unable to make that person's office hours, provide specific times for the next 5 business days during which you are available.
The idea here is to minimize effort on the side of the person receiving your request. If you can be thorough, the matter can be handled expeditiously.
- Many faculty will regrade an entire assignment rather than just the place where you feel you received insufficient credit. In some cases, the result may be a lowering of your grade. See the information below on justice.
- Students have been caught cheating by changing their work between receiving its grade and submitting it for regrading.
This violation of academic integrity is easy to prove and is met with harsh consequences. You will likely receive an F in the course and the infraction will be retained in the permanent record of your work at the university. Look elsewhere in this FAQ for information about academic integrity and community standards.Do not make any marks or changes to work if you intend to resubmit for regrading.Justice Faculty, staff, and students are interested in justice and fairness in grading. This means that the grade given on submitted work fairly evaluates the student's work. Where possible, instructors provide rubrics as to how an assignment will be graded. Some students receive a poor grade for simply not reading the rubric and following an assignment's required instructions. A student truly interested in justice would bring any grading error to the attention of the instructor, whether it benefits the student or not. Instructors are sometimes approached by students who point out grading mistakes not in their favor. Instructors are also approached by students near or at the end of the semester, asking for grade reconsiderations or extra work those students might do to improve their grade. Justice requires that instructors not make opportunities available to some students that are not available to all students. Requests along those lines betray a student's intent and are not recommended.
You should first identify the source of the dissatisfaction:
- Was the point tally on an assignment computed incorrectly?
- Do you believe you had a correct response or solution but your grade indicated otherwise?
- Did you miss a deadline for an assignment? Are seeking to turn in work late?
- Did you miss turning in an assignment because of school-, athletic-, or career-related events?
Next you should consider the following principles in terms of addressing your concerns:
- You should address any expected absences before the semester begins. Athletic events, conferences, job interviews—all of these are important to your success and trajectory as a student at Washington University. Faculty are generally supportive of such absences, but to be certain you need to have the appropriate conversation as soon as possible.
Do not rely on a TA's response to such questions or issues. You must have this conversation with the course's instructor.
- Some of our courses, especially the larger ones, feature late coupons or dropped grades. In those courses, you should expect to apply coupons or dropped grades to unexpected as well as expected absences.
- Unexpected absences can happen, and these usually take the form of extended illness or loss of a friend or family member. In such cases, you should contact your school's academic dean (e.g., Chris Kroeger for SEAS). The dean will then send faculty an email explaining the circumstances and asking for accommodation.
- You should address the issue you have with the grading of an assignment as soon as possible after you receive the assignment and its grade. If you wait until the end of the semester, thinking that at that point the grade change will benefit your final grade in the course, you are likely to be turned away. This has to do with the justice of your overall performance evaluation in the course (see below).
Some important caveats:
- Where do you address a grading issue?
- Generally you should start with the staff of your course who issued the grade, working your way up the chain as necessary. That chain from top to bottom is:
For example, if the grade is for a lab assignment that was graded by any TA, then you would start with the course's head TA or head grader. If the grade is for an exam that the instructor graded, then begin with the instructor unless instructed otherwise.
- The school's academic dean
- The course's department's associate chair
- The instructor(s) of the course
- A head TA or head grader
- What steps do you take?
- First check the courses's web pages or other documentation and look for instructions about how to request a regrade of submitted work. Follow those instructions carefully. If no such instructions are available, then:
- Write an email to the person who should field your request (see above). In that email provide as much information as possible, but you can also request a meeting during that person's office hours. If you are unable to make that person's office hours, provide specific times for the next 5 business days during which you are available.
The idea here is to minimize effort on the side of the person receiving your request. If you can be thorough, the matter can be handled expeditiously.
- Many faculty will regrade an entire assignment rather than just the place where you feel you received insufficient credit. In some cases, the result may be a lowering of your grade. See the information below on justice.
- Students have been caught cheating by changing their work between receiving its grade and submitting it for regrading.
This violation of academic integrity is easy to prove and is met with harsh consequences. You will likely receive an F in the course and the infraction will be retained in the permanent record of your work at the university. Look elsewhere in this FAQ for information about academic integrity and community standards.Do not make any marks or changes to work if you intend to resubmit for regrading.Justice Faculty, staff, and students are interested in justice and fairness in grading. This means that the grade given on submitted work fairly evaluates the student's work. Where possible, instructors provide rubrics as to how an assignment will be graded. Some students receive a poor grade for simply not reading the rubric and following an assignment's required instructions. A student truly interested in justice would bring any grading error to the attention of the instructor, whether it benefits the student or not. Instructors are sometimes approached by students who point out grading mistakes not in their favor. Instructors are also approached by students near or at the end of the semester, asking for grade reconsiderations or extra work those students might do to improve their grade. Justice requires that instructors not make opportunities available to some students that are not available to all students. Requests along those lines betray a student's intent and are not recommended.
Because specific points and language are needed for such letters, the letter originates from your company and is then sent to us for verification, printing on department letterhead, and return to you.For our undergraduate students (including those who are in a combined BS/MS program), we follow the following process:
Graduate students should consult the director of our graduate program for advice about this.
- Our department staff produce your transcript and pass that and your letter to the associate chair.
- The associate chair verifies the wording of the letter is an accurate reflection of the courses you took here and the grades you earned in those courses.
- If approved, the letter is printed on department letterhead, signed by the associate chair, and returned to you. If there needs to be some wording changed in the letter to make it more accurate, you will be contacted.
Students in our department are involved in hackathons, both locally and out of town. The information for these events is typically posted and emailed to our students, but two events you might look for are ArchHacks and GlobalHack.
ArchHacks is a Washington University-hackathon hosted here by our students, and brings together the St. Louis community and students of all backgrounds to collaborate and problem-solve on relevant HealthTech issues.
GlobalHack is another St. Louis hackathon created by three St. Louis entrepreneurs with the goal of generating social impact through technology. GlobalHack hosts youth programs, and has developed solutions to local problems, such as homelessness, through their annual hackathons.
If you are interested in events outside of the St. Louis area, then two additional resources are Major League Hacking and Devpost.
Major League Hacking is the official student hackathon league, and has resources for career-building and coding challenges. Several universities pair with MLH, and will provide reimbursements for travel.
Devpost is specifically for software developers and will frequently list corporate-sponsored hackathons, as well as univeristy-led hackathons. In addition, Devpost has online hackathons where you can submit projects on their site for prizes and feedback.
Brainstorm ahead of time, and understand there is a difference between what you would like to accomplish and what is possible. Having an idea or plan ahead of time will help you cut down on discussion and start implementing quicker.
Review your personal skillset, and research the hackathon's theme or topic beforehand, if it has one.
Start with your demo. The goal of a hackathon is to produce a working demo or prototype, so make sure you understand which features are an absolute must.
Get ready to work with a team. Be respectful and considerate.
Be prepared. Get together a list of everything you need, and check for important event information, such as if food is provided and if you can stay at the venue overnight.
And finally, don't be intimidated if it's your first hackathon. Everyone remembers their first time, and it is a great opportunity to have fun and challenge yourself.
Hackathons are typically 24-hour to weekend-long competitions/events where people collaborate on teams or by themselves to create a working prototype of a solution or idea. Most hackathons focus on a specific problem or area of interest, and others will hand out awards and prizes based on categories, like best hardware hack or best mobile app.
You do not need to be a programmer or CS-major to participate.
While this form of software development is unusual, usually termed a "sprint", it is worthwhile to focus on a single project that could be added to your portfolio. You can network and learn from other programmers, particularly if you choose a project that goes outside your comfort zone. The focus on a singular prototype is challenging, and the time constraint teaches effective collaboration and efficient work.
Hackathons provide a great opportunity to display your skills, win prizes, and possibly create a project that you will pursue long-term. Corporate sponsors may recruit programmers from top teams, and the end result will always be an interesting project and newly acquired skills to talk about in future networking opportunities.
Some well-known or large Hackathon events and projects include:
- Amazon's Deep Lens Challenge
- TechCrunch's Disrupt Hackathon for start-ups
- HackMIT
- HackIllinois
HCI studies the way humans and computers interact, aiming to improve the interfaces through which the two sides connect, communicate, and compute.The guidelines for completing an HCI minor can be found here.
Yes. Our UPE chapter is the local instantiation of the international UPE honor society, which is endorsed by the ACM and IEEE Computer Society. We also have a local ACM chapter that is described elsewhere in this FAQ.
The Math department has determined that taking their honors math courses should count as follows in terms of our department's requirements:
Math 203 Math 204 CSE 240
or
Math 310Math 233 and Math 309 You can't take Math 204 without first taking Math 203
Many of our undergraduates are involved in the research conducted by our department's faculty. It is worthwhile to consider the artifact(s) that might be produced from such research.If you are a student interested in graduate school, then the best artifact would be a published paper, even if it is co-authored. Your research advisor can mentor you concerning where and how to publish such a paper. Such papers are often jointly authored with other students and your research advisor. While it's not a document you author solely on your own, the value of having it pass muster with a conference or journal review process is high.
A senior thesis is written solely by you. If you wish to do this instead or in addition to publishing a paper externally, then sign up for CSE
499 in the section associated with your research advisor. Most students favor the published paper or a presented project over writing a thesis, but the choice is up to you and your research advisor.
How is such a thesis recorded in our records?
Long ago before the advent of our current information infrastructure, undergraduates who completed a thesis and who had at least a certain GPA (3.7 perhaps) would graduate with distinction and that phrase was printed on their diplomas. The university says we have lost the ability to do that, so instead of a designation on your diploma, we use the milestones feature of our current information system and record a senoir thesis as such a milestone. It thus shows up on your transcript rather than on your diploma, which ultimately might be more useful for you.
Our school has a long history of automated checking of the courses you have taken against the degrees you seek to complete. John Russell, who directed Engineering Student Services prior to Chris Kroeger, had a program written in FORTRAN that would produce interesting rounding results, showing you had 3.0001 units remaining to complete your degree, for example. But I digress.We then had DARS (Degree Audit and Reporting System), but that was only for SEAS.
Things are much better now. WUAchieve is a system Washington University bought to handle degree, major, and minor requirements across the university. While some programs are not yet on board, chances are you can log into WUAchieve and see what remains in the programs you have open. You can see the history of what you have completed, the courses that are currently in progress, and what remains to be accomplished for you to finish.
Follow the directions on that site, and make sure the open programs it shows for you are correct. See elsewhere in this FAQ for how to change programs.
Because there is leeway in how some courses count, students in a combined BS and MS program may not see courses counting as they wish. You should use WUAchieve as a starting point and then double check with your advisor. Once approved, the form you have on file for completing an MS degree in our departmental office is the most genuine documentation of what you need to do to finish.
It's really between you and your research or independent study mentor. Some students prefer credit, as it makes progress toward their degree; others prefer to be paid
We allow up to 6 units of credit toward our major's programs to be completed outside the traditional classroom. One such experience is an independent study, which typically involves working with a faculty member on research or a project of mutual interest.Independent study requires approval of the supervising faculty member. Students enroll in CSE 400E to receive elective credit for independent study, in the section associated with the supervising faculty member.
The supervising faculty member must be faculty in our department or hold a courtesy appointment in our department. You must sign up for credit in the section associated with that supervising faculty member. The work you do may be with somebody outside of our department, in which case the de jure supervising faculty member will coordinate the activity with the de facto advisor for the work:
- Your independent study must not violate our department's rules for the number of courses that can be taken outside our traditional classroom courses. This is articulated elsewhere.
- It will be detetermined that the scope of work is appropriate for the number of units.
- The criteria for success will be communicated explicitly between the de facto and de jure advisors.
- The de facto advisor is responsible for writing a statement at the end of the independent study evaluating the quality of your work.
- The grade for your work is determined at the recommendation of the de facto advisor and entered by the de jure advisor.
As with any course, you will have to devote reasonable time to independent study. We generally hold that 3 units of credit is at least 10 hours of work a week. A semester has 15 weeks, so 3 units of independent study should take about 150 hours of your time.
Because traditional courses have deadlines and independent study typically is more open-ended and flexible, many students make the mistake of putting off working on their independent study projects. This usually causes faculty to drop the independent study with the student.
Success depends upon the appropriate investment of time by the student, the accurate and timely reporting of issues and progress, and the regular meetings with supervising faculty to keep the work on track. Most students who succeed at independent study report that they spend more than the usual amount of time on independent study, because they find the work interesting and rewarding.
We have set things up so 400E counts as elective credit for students in CSE programs. You are allowed a certain number of elective course credits, and 400E will count toward that. CSE 400 counts as general credit at the university, but not toward a student's elective credits in our department.
You can find it here
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
First, please realize that you are valuable and that almost all of our students' internships are paid.But some are not, and there can be good reasons to consider an unpaid internship:
- A nonprofit may be in need of your skills and lack the funds to pay you.
- There may be a particular experience or set of skills you wish to develop and you are willing to do so without pay.
There are some issues you should consider in taking on an unpaid internship:
- credit
- Our department does not award credit for paid internships. For an unpaid internship, you may be eligible to receive credit for the work you do, subject to the following:
- The work should be for a non-profit or not-for-profit institution. Our department generally is unwilling to sponsor work for companies that make (or hope to make) profit without paying our students accordingly. We have made exceptions where the student benefits substantially from the experience.
- A three-unit course is generally 10 hours of work a week. Thus, to receive credit for three units of study, you should be spending between 140 and 150 hours on your project.
- A faculty member must agree to sponsor the credit portion of your work, in the sense of evaluating the grade you will receive and ensuring that the work you do is worthy of the credit.
- A supervisor at your unpaid internship must be willing to correspond with said faculty member for the purposes of establishing that you did the work and to assess the quality of the work.
- You have to register for CSE400E in the section associated with the faculty member supervising your project. To do so in summer, when you are otherwise not a student, is unwise, because you are then paying for credit while not being paid for your work.
Our department generally allows you to defer enrolling for credit until the next semester in which you are able to enroll in CSE400E without experiencing extra financial burden for taking that independent study course.
Once you have your faculty member and supervisor lined up, you can register for CSE400E and will appear on the waitlist. Ask your faculty member to notify the department of the arrangement and you will be admitted to the independent study course.
- Intellectual Property (IP)
- Our university generally holds that work our undergraduates perform while students is completely their intellectual property. When you work for a company and are paid, you typically sign away rights to intellectual property developed during that time.
But what happens with an unpaid internship? This varies by situation, and you are advised to get a written answer to this question before starting an unpaid internship. Because you are not paid, you might expect to own any intellectual property you develop while working without pay for an institution. But the institution may have other ideas and expectations about IP ownership.
First, please realize that you are valuable and that almost all of our students' internships are paid.But some are not, and there can be good reasons to consider an unpaid internship:
- A nonprofit may be in need of your skills and lack the funds to pay you.
- There may be a particular experience or set of skills you wish to develop and you are willing to do so without pay.
There are some issues you should consider in taking on an unpaid internship:
- credit
- Our department does not award credit for paid internships. For an unpaid internship, you may be eligible to receive credit for the work you do, subject to the following:
- The work should be for a non-profit or not-for-profit institution. Our department generally is unwilling to sponsor work for companies that make (or hope to make) profit without paying our students accordingly. We have made exceptions where the student benefits substantially from the experience.
- A three-unit course is generally 10 hours of work a week. Thus, to receive credit for three units of study, you should be spending between 140 and 150 hours on your project.
- A faculty member must agree to sponsor the credit portion of your work, in the sense of evaluating the grade you will receive and ensuring that the work you do is worthy of the credit.
- A supervisor at your unpaid internship must be willing to correspond with said faculty member for the purposes of establishing that you did the work and to assess the quality of the work.
- You have to register for CSE400E in the section associated with the faculty member supervising your project. To do so in summer, when you are otherwise not a student, is unwise, because you are then paying for credit while not being paid for your work.
Our department generally allows you to defer enrolling for credit until the next semester in which you are able to enroll in CSE400E without experiencing extra financial burden for taking that independent study course.
Once you have your faculty member and supervisor lined up, you can register for CSE400E and will appear on the waitlist. Ask your faculty member to notify the department of the arrangement and you will be admitted to the independent study course.
- Intellectual Property (IP)
- Our university generally holds that work our undergraduates perform while students is completely their intellectual property. When you work for a company and are paid, you typically sign away rights to intellectual property developed during that time.
But what happens with an unpaid internship? This varies by situation, and you are advised to get a written answer to this question before starting an unpaid internship. Because you are not paid, you might expect to own any intellectual property you develop while working without pay for an institution. But the institution may have other ideas and expectations about IP ownership.
Outside of OPT and CPT experiences that are allowed for students on an F1 visa, such students are not allowed to earn money pursuant to self-employment or independent contractor status. They also generally are not able to work off campus unless they can document sever economic hardship. You should check with the International Office for further information.Such students can be paid as TAs by the university, because that contributes to the students' studies and is managed by the university.
Attempts to earn money outside the university are treacherous for students on an F1 visa. Especially in recent times, the USCIS agency has been both more vigilant in finding offenders and more quick to take action, which can include removal (deportation).
A relevant example would be a student posting an app to the Apple iTunes store. There are the following possible problems with that for students with an F1 visa:
Students are advised to consult counsel and to take steps to be on the safe side of any line drawn for such issues.
- If the student earns money from publication of the app, the student becomes self-employed, which is prohibited for such students. Most likely a tax form will be issued, which can then alert authorities that the student has earned money and violated his or her visa status. That could then lead to the student accruing unlawful presence and possible removal proceedings.
- If the student does not earn any money from the published app, the work done to create and publish the app could be construed as volunteer work, which is also prohibited by USCIS. While it is much less likely the student would be caught, the danger still exists.
For the reasons above, no course taught in our department can require students to publish an app. They can submit the app for evaluation by a company, but they are not required to publish the app.
Group work: the issues above become even trickier if the student is involved in group work. It is important that the group establish up-front whether any or all members are interested in publishing their work for money or even for free. If some members want to earn money or publish their work, and others do not, it is best that the group disband.
There are various reasons why the offer from Y is more attractive to you:
- The pay for job Y may be better than X.
- Job Y may be in a location you prefer to the location of job X.
- The nature of job Y may be more in line with your career goals and interests than the nature of job X.
I will admit that when asked this question 20 years ago, I would have advised students not to abandon an accepted offer. It can burn a bridge for you, but also I thought it said something about your character, that you would renege on an accepted offer with a company expecting you to show up.
I had the opportunity to co-teach our software engineering course a few years ago, and my colleague in that activity was at that time a program manager at Google. He is now at facebook. A student asked this question of him and I was expecting an answer similar to what I would have said.
To my surprise, his response was that people in the industry are adults and can respond to this situation in reasonable ways. So there is an opening to consider abandoning an accepted offer for another one. His advice, and mine too, would be to make such a decision framed by the following considerations:
So in summary, this is possible and worth thinking through, but it's a decision that should not be made lightly.
- You owe company X an honest explanation about why are reneging on your acceptance of their offer.
By having such a conversation, you are also allowing company X to respond to the situation by offering you more pay, or by trying to find you a position better suited to your goals and interests. Sometimes the difference in position cannot be traversed, such as your interest in a start-up company when company X is not such a company. But even here, you should be able to explain your interest at this point in your career in a start-up company position.
- You should convey as best you can the profound thought you have given to this situation, and your interest in maintaining good relations with company X.
- You must accept the fact that this course of action may well burn the bridge between you and company X, no matter how considerate the conversation on both sides.
- Job location for a summer job, or even a full-time job, can be important if there is a real need for you to be in a certain place. Otherwise, I don't feel it's a good cause for abandoning an accepted job offer. If you are honest, and can explain this reason to the satisfaction of company X, then I suppose you can try, but my advice would be to try out the location and make a move subsequently.
If you are a minor or major in computer science, the good news is that employment in our industry is extremely strong. Internships are ideal settings for a company and an employee to see if there is a good fit for full-time employment. Here is some advice about preparing for an internship.
- Accumulate a portfolio of projects and other artifacts of your work in and outside of class. You can do this with a github or bitbucket account.
Be sure that the code you post from course work is private, so that you do not provide your solutions to other students and run afoul of our community standards.The portfolio serves to document your progress as a student of computer science, but it also serves as a backdrop for a conversation in which you can express your passion and interest about your work. How did you arrive at a given interface? What obstacles did you face in developing your solution? What did you learn about teamwork, algorithms, interfaces?Likewise, companies may have policies that prohibit you from publishing or disclosing code while working for them.
Be careful!
- Have a resumé handy. Have it on paper and ready to send electronically. You never know when somebody will ask, and having one current and ready conveys professionalism.
- Visit the SEAS Career Center. Your resume and other interview artifacts can be improved by interacting with advisors there.
- Attend the job fairs every semester. Even before you are ready for an internship, make it a habit to attend the job fairs, to talk with the representatives, and to talk about your work and your interests. Ask other students or your advisor about how to dress. Most companies doing computer science do not expect formal attire, but it's worth finding this out before you show up.
- Prepare for a phone or other interview.
- Much information can be found online, and it's worth reading through resources such as Cracking the Coding Interview. One student I know worked over 400 problems before she interviewed with facebook and she landed the job. That seems extreme, but such preparation serves to make you feel more confident and to help you field questions well.
If your interview is via a video chat session, be sure to dress fully for the interview. Some of our students have been asked to stand up. Crazy, but true.
- Our department's UPE chapter has been organizing mock technical interviews. Try to schedule one or two mock interviews before an actual interview. UPE is described elsewhere in this FAQ.
- Network as best you can at venues that allow you to do so. One recent student attended the Grace Hopper Conference, and landed a job as an intern for project management at Apple. Her story is inspiring because at first Apple did not respond to her resumé. However, she returned to the booth and insisted on talking with somebody because she really wanted to be considered for the job. After that conversation, she was hired on the spot.
- Establish a relationship with faculty so that they can supply letters of recommendation. There is advice elsewhere in this FAQ about that.
You can manage subscription to this list yourself. Just send an email to cse-jobs-subscribe@lists.seas.wustl.edu. A reply will be sent asking you to confirm your address.You can self-manage this subscription. Even after subscribing, if you decide that you do not want to receive the emails, you can stop the messages from being sent to you. Simply unsubscribe yourself using the information in the footer. All mailings sent through the subscription will have a footer attached which includes instructions for unsubscribing with one of two ways offered.
First, please realize that you are valuable and that almost all of our students' internships are paid.But some are not, and there can be good reasons to consider an unpaid internship:
- A nonprofit may be in need of your skills and lack the funds to pay you.
- There may be a particular experience or set of skills you wish to develop and you are willing to do so without pay.
There are some issues you should consider in taking on an unpaid internship:
- credit
- Our department does not award credit for paid internships. For an unpaid internship, you may be eligible to receive credit for the work you do, subject to the following:
- The work should be for a non-profit or not-for-profit institution. Our department generally is unwilling to sponsor work for companies that make (or hope to make) profit without paying our students accordingly. We have made exceptions where the student benefits substantially from the experience.
- A three-unit course is generally 10 hours of work a week. Thus, to receive credit for three units of study, you should be spending between 140 and 150 hours on your project.
- A faculty member must agree to sponsor the credit portion of your work, in the sense of evaluating the grade you will receive and ensuring that the work you do is worthy of the credit.
- A supervisor at your unpaid internship must be willing to correspond with said faculty member for the purposes of establishing that you did the work and to assess the quality of the work.
- You have to register for CSE400E in the section associated with the faculty member supervising your project. To do so in summer, when you are otherwise not a student, is unwise, because you are then paying for credit while not being paid for your work.
Our department generally allows you to defer enrolling for credit until the next semester in which you are able to enroll in CSE400E without experiencing extra financial burden for taking that independent study course.
Once you have your faculty member and supervisor lined up, you can register for CSE400E and will appear on the waitlist. Ask your faculty member to notify the department of the arrangement and you will be admitted to the independent study course.
- Intellectual Property (IP)
- Our university generally holds that work our undergraduates perform while students is completely their intellectual property. When you work for a company and are paid, you typically sign away rights to intellectual property developed during that time.
But what happens with an unpaid internship? This varies by situation, and you are advised to get a written answer to this question before starting an unpaid internship. Because you are not paid, you might expect to own any intellectual property you develop while working without pay for an institution. But the institution may have other ideas and expectations about IP ownership.
There are various reasons why the offer from Y is more attractive to you:
- The pay for job Y may be better than X.
- Job Y may be in a location you prefer to the location of job X.
- The nature of job Y may be more in line with your career goals and interests than the nature of job X.
I will admit that when asked this question 20 years ago, I would have advised students not to abandon an accepted offer. It can burn a bridge for you, but also I thought it said something about your character, that you would renege on an accepted offer with a company expecting you to show up.
I had the opportunity to co-teach our software engineering course a few years ago, and my colleague in that activity was at that time a program manager at Google. He is now at facebook. A student asked this question of him and I was expecting an answer similar to what I would have said.
To my surprise, his response was that people in the industry are adults and can respond to this situation in reasonable ways. So there is an opening to consider abandoning an accepted offer for another one. His advice, and mine too, would be to make such a decision framed by the following considerations:
So in summary, this is possible and worth thinking through, but it's a decision that should not be made lightly.
- You owe company X an honest explanation about why are reneging on your acceptance of their offer.
By having such a conversation, you are also allowing company X to respond to the situation by offering you more pay, or by trying to find you a position better suited to your goals and interests. Sometimes the difference in position cannot be traversed, such as your interest in a start-up company when company X is not such a company. But even here, you should be able to explain your interest at this point in your career in a start-up company position.
- You should convey as best you can the profound thought you have given to this situation, and your interest in maintaining good relations with company X.
- You must accept the fact that this course of action may well burn the bridge between you and company X, no matter how considerate the conversation on both sides.
- Job location for a summer job, or even a full-time job, can be important if there is a real need for you to be in a certain place. Otherwise, I don't feel it's a good cause for abandoning an accepted job offer. If you are honest, and can explain this reason to the satisfaction of company X, then I suppose you can try, but my advice would be to try out the location and make a move subsequently.
- Subscribe to our department's jobs email list by contacting Monet Demming.
- Look for REU opportunities
- Look for mentoring / teaching opportunities
- CTY
- IDTech
If you are a minor or major in computer science, the good news is that employment in our industry is extremely strong. Internships are ideal settings for a company and an employee to see if there is a good fit for full-time employment. Here is some advice about preparing for an internship.
- Accumulate a portfolio of projects and other artifacts of your work in and outside of class. You can do this with a github or bitbucket account.
Be sure that the code you post from course work is private, so that you do not provide your solutions to other students and run afoul of our community standards.The portfolio serves to document your progress as a student of computer science, but it also serves as a backdrop for a conversation in which you can express your passion and interest about your work. How did you arrive at a given interface? What obstacles did you face in developing your solution? What did you learn about teamwork, algorithms, interfaces?Likewise, companies may have policies that prohibit you from publishing or disclosing code while working for them.
Be careful!
- Have a resumé handy. Have it on paper and ready to send electronically. You never know when somebody will ask, and having one current and ready conveys professionalism.
- Visit the SEAS Career Center. Your resume and other interview artifacts can be improved by interacting with advisors there.
- Attend the job fairs every semester. Even before you are ready for an internship, make it a habit to attend the job fairs, to talk with the representatives, and to talk about your work and your interests. Ask other students or your advisor about how to dress. Most companies doing computer science do not expect formal attire, but it's worth finding this out before you show up.
- Prepare for a phone or other interview.
- Much information can be found online, and it's worth reading through resources such as Cracking the Coding Interview. One student I know worked over 400 problems before she interviewed with facebook and she landed the job. That seems extreme, but such preparation serves to make you feel more confident and to help you field questions well.
If your interview is via a video chat session, be sure to dress fully for the interview. Some of our students have been asked to stand up. Crazy, but true.
- Our department's UPE chapter has been organizing mock technical interviews. Try to schedule one or two mock interviews before an actual interview. UPE is described elsewhere in this FAQ.
- Network as best you can at venues that allow you to do so. One recent student attended the Grace Hopper Conference, and landed a job as an intern for project management at Apple. Her story is inspiring because at first Apple did not respond to her resumé. However, she returned to the booth and insisted on talking with somebody because she really wanted to be considered for the job. After that conversation, she was hired on the spot.
- Establish a relationship with faculty so that they can supply letters of recommendation. There is advice elsewhere in this FAQ about that.
You can manage subscription to this list yourself. Just send an email to cse-jobs-subscribe@lists.seas.wustl.edu. A reply will be sent asking you to confirm your address.You can self-manage this subscription. Even after subscribing, if you decide that you do not want to receive the emails, you can stop the messages from being sent to you. Simply unsubscribe yourself using the information in the footer. All mailings sent through the subscription will have a footer attached which includes instructions for unsubscribing with one of two ways offered.
Generally those who graduate from our department do one of the following:
- Obvious tech job, such as Google, Microsoft, facebook, etc.
- Non-obvious tech job, such as Wolverine, Epic, Union Pacific Railroad
- Start-up (often staying in St. Louis!)
- Consulting such as Bain, McKinsey, etc.
- Graduate school
Computers continue to drop in price as they increase in both speed and available storage. If you are interested in studies in our department, here are some guidelines about a computer:
- We recommend a laptop over a desktop, so that you can more easily collaborate by bringing your laptop to work in groups. Laptops are also convenient in class for taking notes and for experimenting with ideas presented in some classes.
- Working on code usually is easier with a larger screen. While this does increase the size and weight of your laptop, you will probably appreciate the extra screen real estate so that you can look at various portions of code at the same same time.
- If you buy a new laptop, then he clock rate of the CPU is not all that important. Unless you plan to do some heavy computation on your laptop, something at or above 2 GHz is fine.
- If you have a choice of a solid state disk (SSD) you should pick that over the older moving-head disks. The SSD will make your computer perform much faster. They are generally more expensive, but like all disks, their price is correlated to the space they provide.
- How much disk space do you need? At least 256 GB for your work in courses. Remember the disk has to accommodate all your system software as well as applications you install for courses and the data you generate for your courses. If you like lots of music and want it resident on your laptop, consider a 512 GB SSD drive. If you are feeling flush or if you like lots of musics resident on our laptop, consider a 1 TB drive.
- Some students seem to find cheaper installations of operating systems via nonstandard vendors. Please steer clear of those, as the software we use does not always work well on nonstandard installations. If you stop by EIT they can often provide you with standard installations of common software.
You should consider the kind of materials you have and the best way of making sure you don't lose them, should your laptop fail.
- Personal pictures, movies, and music should be backed up to the cloud. Apple and other companies offer cloud-based services that can host your media so that you never lose anything and so that your media is available across multiple devices, such as your laptop and your phone.
- Many of our courses use a repository, which is hosted at a site such as bitbucket. You should get into the habit of working on your software projects using the following approach:
If you follow these instructions, then if your laptop should fail you will lose no work.
- When you are ready to work, pull any changes from the repository to your laptop.
- When you are at an articulation point in our work, or if you have spent an hour working toward an articulation point, commit and push your code back to the repository.
- Other files can be backed up to dropbox or box or other such providers.
The school (SEAS) has a limited number of laptops that can be loaned out. You must start with the instructor of the course for which you need the laptop. He or she will then request the laptop from EIT, and Sheila Leopold of EIT will then be in touch with you about getting the laptop.There is an effort underway at the university level to make sure that all students have laptops on campus.
Our web pages with advising advice for master's students can be found here.You may currently be an undergraduate studying computer science. You may not have begun your studies in computer science. In either case, earning an MS degree in computer science is something you should consider.
Regardless of your specific area of academic study, experience and credentials in computer science are extremely valuable for employment. An MS in computer science may well be your ticket to a job in your area of interest outside of computer science (e.g., economics, business, political science).
Current information should appear here on our web pages. Information speific to the BS/MS program can be found here. Here is an overview and some guidelines:
- A combined undergraduate and masters program requires a total of 150 credits.
- Admission to our masters program is conditional on your performing well in CSE131 and CSE247, also listed as CSE501N and CSE502N, respectively. If you are already a minor or major in computer science, and you have a reasonable GPA, you would almost certainly be admitted to our program. If you do not have 131 or 247, you would be admitted conditionally on taking those courses (501 and 502) and earning a decent grade (B or better) in them.
Thus you can prepare for masters studies in our department, even if not currently a SEAS or CSE student, by taking 131 and 247 and earning a B or better in them.
- There are two flavors of masters degrees: M.Eng. and M.S. and there is more detail on those below.
- Either masters program requires 30 units of credit.
- If you do the undergrad / masters program without interruption, you are allowed to choose up to 6 units to count toward both the undergrad and masters portions. You must still reach 150 total units of credit. Of the units you designate in this way, each unit must ordinarily count toward each program. For example, 361S cannot be applied in this way because masters courses must be 400-level or higher. But 547T can be designated to count toward your undergraduate and masters programs.
- If you are already a Washington University undergraduate, you do not need to take the GRE to apply for our masters programs.
- Washington University students may also qualify for a tuition discount, which is based on your GPA, as shown here (under Scholarship and Financial Aid).
- If you can get a letter of recommendation from a faculty member in CSE, then that letter is the only one you need. Otherwise, three letters are required.
- You must apply for the undergraduate / masters program by the deadline.
ArtSci students We welcome you to our masters' programs, but the arrangements here are more involved. Here are some guidelines:
- ArtSci will count at most 30 units outside their school toward your undergraduate graduation. Nonetheless, you can take as many courses as you like outside of ArtSci and bank those toward whatever programs you intend to complete. You would still require 90 units within ArtSci to graduate from their school.
- othr stuff
M.Eng. vs M.S.
At one time, the distinction between these two degrees was:
The above distinctions don't hold any longer. First, any student can go on for doctoral studies, and it is not necessary to complete an M.S. degree on their way to a PhD (though many do). Second, at one point M.Eng. was considered a 15-month program, but we no longer think of it as any quicker than the M.S. degree.
- M.Eng. was considered terminal, in that students completing this degree were not going to pursue doctoral studies.
- M.S. was considered a way point toward doctoral studies; some students might continue, but some might not.
So how do you choose? Take a look at the requirements for M.Eng. and M.S. (and there is a version of M.S. for Computer Engineering). The primary distinctions are now:
Our intention is that the M.Eng. degree is more interdisciplinary, allowing explicitly for credit outside our department. The associated project is required, to demonstrate mastery of engineering in computer science or computer engineering.
- The M.Eng. requires a 6-unit project. Thus our faculty are obligated to supervise M.Eng. projects so you can complete your degree.
- The M.Eng. is more flexible about 400-level courses. It allows you to take up to 15 units of 400-level credit. The M.S. degrees allow at most 9 such units.
- For the M.S., you can finish using courework alone. Or you can spend up to 6 units on an M.S. project or an M.S. thesis. More on this below.
Project or thesis or just courses? For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project. The issues related to project or thesis are covered elsewhere in this FAQ.
For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project, and the MS degrees allow a project or a thesis.The differences are described below, but it's worth saying that our dean's office supports students moving between thesis and project credits with the agreement of their advisors. So a student may start out with a project, but if the work develops along the lines of a thesis, the advisor and student can ask the credit to be changed. Similarly, the change can go in the other direction.
So you can spend up to 6 units on a project or thesis for the M.S. degrees. Here are some thoughts and guideline about that:
It takes discpline and a strong work ethic to complete either a project or a thesis. If you work better in a structured class-like environment, then perhaps the course-only option is best for you. However, students express satisfaction and experience growth doing theses or projects.
- In either case, you must secure the supervision of a faculty member for a project or thesis. The work involved would have to be of mutual interest.
- A thesis requires a written document, and must represent original work, usually of publishable quality. The writing and substance of your thesis is defended orally in front of a committee in an open forum.
While this is arguably more work that coursework or a project, it is recommended for students interested in research and for whom doctoral studies may be in their future.
- The project requires a two-page extended abstract of your work, and the result of your work is presented to a committee in a closed or open forum.
A project demonstrates your mastery of computer science. It is akin to independent study, in that the hours you spend are determined by you. However, we usually say that 3 units of credit is about 10 hours of work a week. Thus, a 6-unit project over two semesters should consume about 300 hours of your time.
So consider the options carefully, talk with your colleagues and advisors, and make an informed decision.
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
Computers continue to drop in price as they increase in both speed and available storage. If you are interested in studies in our department, here are some guidelines about a computer:
- We recommend a laptop over a desktop, so that you can more easily collaborate by bringing your laptop to work in groups. Laptops are also convenient in class for taking notes and for experimenting with ideas presented in some classes.
- Working on code usually is easier with a larger screen. While this does increase the size and weight of your laptop, you will probably appreciate the extra screen real estate so that you can look at various portions of code at the same same time.
- If you buy a new laptop, then he clock rate of the CPU is not all that important. Unless you plan to do some heavy computation on your laptop, something at or above 2 GHz is fine.
- If you have a choice of a solid state disk (SSD) you should pick that over the older moving-head disks. The SSD will make your computer perform much faster. They are generally more expensive, but like all disks, their price is correlated to the space they provide.
- How much disk space do you need? At least 256 GB for your work in courses. Remember the disk has to accommodate all your system software as well as applications you install for courses and the data you generate for your courses. If you like lots of music and want it resident on your laptop, consider a 512 GB SSD drive. If you are feeling flush or if you like lots of musics resident on our laptop, consider a 1 TB drive.
- Some students seem to find cheaper installations of operating systems via nonstandard vendors. Please steer clear of those, as the software we use does not always work well on nonstandard installations. If you stop by EIT they can often provide you with standard installations of common software.
You should consider the kind of materials you have and the best way of making sure you don't lose them, should your laptop fail.
- Personal pictures, movies, and music should be backed up to the cloud. Apple and other companies offer cloud-based services that can host your media so that you never lose anything and so that your media is available across multiple devices, such as your laptop and your phone.
- Many of our courses use a repository, which is hosted at a site such as bitbucket. You should get into the habit of working on your software projects using the following approach:
If you follow these instructions, then if your laptop should fail you will lose no work.
- When you are ready to work, pull any changes from the repository to your laptop.
- When you are at an articulation point in our work, or if you have spent an hour working toward an articulation point, commit and push your code back to the repository.
- Other files can be backed up to dropbox or box or other such providers.
This question is more in the area of religious studies and philosphy than computer science. It doesn't really matter in terms of your studies in computer science, but you will find that students and faculty alike can be passionate about their choice of computer.
Let's talk about the preparation you should have, and then the sequence of courses you might consider taking.
- Preparation
- Machine learning require a strong background in probability, especially Bayesian analysis. Elsewhere in this FAQ is a listing of probability and statistics courses and the topics they cover. Matrix algebra, linear algebra, and background in algorithms and programming area also necessary.
You can acquire the necessary background by taking courses at our university or by taking courses elsewhere, including online courses. We hope to expand this FAQ by providing more resources along those lines.
- Our department's courses
- Once you have the proper background, following are the courses and their current descriptions. Generally, the courses ending in a T are more theoretical in nature; the courses ending with an A are more practical.
- 417T is the gateway to machine learning in our department. As a T course, it is primarily theory, and it establishes the formal foundations for machine learning. This course carries a heavy (but interesting!) workload, so you should be sure to budget at least 15 hours a week to work on your assignments.
- 517A requires 417T and then goes on to study the application of machine learning technique.
- 511A is a broad-spectrum course on artificial intelligence techniqes. You do not need 417T to take this course, and it serves to introduce you to various approaches of applying AI techniques to solve problems. Currently, those techniques are studied in the context of playing (and winning) at Pac-Man.
- 514A is a course on data mining. It does not require 417T. It explores approaches to processing and analyzing large amounts of data, both structured and unstructured.
- 427S is a course on cloud computing. Here you learn how to apply the MapReduce paradigm to solve large problems more efficiently.
The short answer is you almost certainly want a second major and not a second degree. The intrepid can find the whole story below.At Washington University, a degree is the primary unit of recognition conferred by a school (such as SEAS or ArtSci) on a student at commencement, indicating that a student has completed one or more programs of study in that school. Within a given school, students can complete multiple majors. Moreover, many programs (and computer science is anong them) have second majors which allow students to study disciplines outsisde their primary major. A student's transcript indicates all of the majors, first and second, that the student has completed.
To make sense of this, it is useful to think of a degree and a primary major as coupled: a student studies a primary major in his or her school (SEAS or ArtSci for example) and earns a degree from that school. The rules governing the number and types of courses that must be taken for graduation are drawn from the school in which a student has a primary major.
A second major brings the burden only of the subject itself, without incurring distribution and other requirements of any school. Thus, a second major in computer science may be earned by students who are primarily situated in any school (including SEAS), but the courses needed to complete the second major are dictated by the second major itself, and not by the school.
Thus, most students can be described as follows. The student is primarily situated in some school and pursuing a primary major in that school. That same student may be completing second majors in departments and programs across the university. Each such second major has its own requirements, but they do not carry any associated school requirements beyond what the student must complete for his or her primary major. Here are some examples:
- Alice's primary major is electrical engineering, which situates her in SEAS. Alice would like to earn a second major in computer science. She does this by looking at the web page for the second major, by adding the second major to her programs of study using WebSTAC, and by consulting with her second major advisor as needed. That advisor does not need to approve Alice for registration, but serves as needed to support Alice in her studies of computer science.
- Bob's primary major is economics, which situates him in the College of Arts and Sciences. Bob would like to earn a second major in computer science, and he follows the same steps Alice did to enroll in the second major and to secure an advisor for those studies. Because Bob is primarily in the College of Arts and Sciences, their rule of 3 restriction applies, which means he would not be allowed to add the second major if the sum of his primary majors, second majors, and minors would exceed three. If that is the case, Bob then considers transferring into the School of Engineering and Applied Sciences, which has no rule of three restriction.
Then what is a second degree? First let me explain that the distinction between a second degree and a second major is almost impossible for people outside our walls to discern. So if you are satisfied with doing a second major, you need not read on. Still here? A second degree acts as if you were also primary in the school of your second degree. Let's return to Alice and Bob.
- Alice, already a SEAS student, wants a degree in electrical engineering and also a degree in computer science. She must read the rules for multiple degrees in the bulletin where she will discover she needs more resident credit in SEAS than if she had chosen a second major. She most likely decides this isn't worth it because she can simply list both majors on her resume, and the difference between the second major and a second degree is difficult to explain.
- Bob is even in worse shape should he choose the second degree. Because he is in ArtSci, he would have to complete the distribution requirements of both schools to earn both degrees.
At the school level, SEAS has no prohibition against the same course satisfying multiple requirements. For example, if CSE131 is required by both computer science and mechanical engineering, then it counts for both by satisfying each such requirement concurrently. If a course is required for electrical engineering, and it is allowed to count toward computer science, there is again no problem at the SEAS level concerning it satisfying both programs concurrently. Some programs of study in SEAS do have rules about double counting, but there are no such rules or restrictions in computer science or computer engineering.
Each school is allowed to have its own rules concerning how courses count toward its programs of study. For example, ArtSci prohibits double counting of almost all courses, so that if a student takes discrete math within the math department (Math 310), then it can count toward a math program or toward computer science, but not both from the ArtSci perspective.However, it is up to each school to reason about whether a given course is necessary for students in its programs of study. Thus, if a student has taken Math 310 there is no reason our department would require that student to take another course (say, CSE240) in discrete math. We indicate this by waiving the discrete math requirement for that student's computer science program, by saying it has been satisfied by studies outside our department. This avoids double counting Math 310, which allows the student to use that course in a math program (or once in any program of study in ArtSci that requires or counts Math 310 as an elective).
Similarly, if a student takes an upper level math course, say Number Theory and Cryptography, we would say that the student then has 3 fewer units to satisfy for elective credit by virtue of studies outside of our department. This allows the Number Theory and Cryptography course to count within ArtSci without any problems.
Here is the document and here is the sheet with upper level courses that count at present.If you don't see a course on the upper-level list, then it could be for one of these reasons:
The CS+Math program is also available as a second major through the McKelvey School of Engineering. Second majors are available to any student from any school on campus.
- It should be there but we haven't thought to put it there. So talk with us about that. We'd like to improve the list. You should contact the associate chair in the department hosting your CS+Math studies (Computer Science and Engineering, or Math).
- It's not in the spirit of CS+Math. Courses like CSE132, CSE332S are interesting and useful computer science courses but don't live at the intersection of CS and Math.
The CS+Math major is designed to be the same load as any single major. For example, a first major in computer science requires 14 courses not including the calculus sequence. The CS+Math major has the same number of courses excluding the calculus sequence. It is slightly heavier than a math major.The reason for its efficiency is exactly the strong intersection in these two departments' fields of study.
Students in computer science with an interest in theory or data analytics will find this program attractive. Students in math who want skills and applications of their studies in math will similarly be drawn to this program.
The Math department has determined that taking their honors math courses should count as follows in terms of our department's requirements:
Math 203 Math 204 CSE 240
or
Math 310Math 233 and Math 309 You can't take Math 204 without first taking Math 203
No. Just for CSE131, if our department waives that course, then you do not have to take anything in its place.For other courses, if you show proficiency, you will be asked to take something else instead.
We use Java in both CSE131 and CSE247 because it is still the language used in the AP computer science curriculum in high schools in the US.If you are a transfer student, or an MS student in another department, we welcome you to CSE247/502N, but you will be responsible for completing assignments using Java with the same deadlines as all students. You can probably pick up Java on your own if you have significant experience with another similar programming language.
The use of Java in this course is fairly straightforward.
If you have further questions, please contact the instructor of record for the semester in which you want to take CSE247/502N.
Many students seek to expand or deepen their knowledge of computer science and engineering by pursuing graduate study after or in concert with their undergraduate studies. The financial assistance and incentive programs described here are written assuming you are a current Washington University undergraduate student. If you are not such a student, you can find more information about programs that are available to you here.While we encourage applications for graduate study from outside our campus, the financial assistance and incentive programs described here are not available for such students.
Our faculty conduct research to push the field of computer science and computer engineering in new, interesting, and important directions. We encourage you to conduct research with faculty
Other parts of this FAQ describe the research you might do as an undergraduate.
- to help us with our research and
- to help you decide whether you want to perform research as part of graduate studies.
At this point, you might find yourself somewhere on the spectrum of interest in graduate studies as follows:
- You like taking classes and learning more about computer science, but you are not interested in participating in research.
- In this case, the best advice is to work ahead toward the courses you need to complete a master's degree while you are an undergraduate. The requirements for those degrees can be found on these pages, and you are encouraged to take courses that count for those degrees as you are able.
Thereafter, you may stay one or more semesters to finish the master's work, and the tuition you pay may be decreased by our dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Most students find they can finish the combined undergraduate and master's work in one extra semester. Rarely, a student finds that the work can be done in the same four years as the undergraduate degree. Sometimes the work may take two extra semesters.
- You are certain you want to earn a doctorate in computer science
- In this case, you are encouraged to become involved in research with our faculty as soon as possible and develop an impressive application for doctoral graduate study.
Doctoral students in computer science (at Washington University and elsewhere) are fully funded with a stipend to support living expenses and no tuition expenses whatsoever.
Doctoral work typically takes some 5 or 6 years to complete.
- You are interested in research and a master's degree but don't want a PhD
- In this case you have the following options, but all paths here begin by establishing a research relationship with a faculty member.
- You fund yourself to continue your studies into a master's program, but complete up to 6 units of master's project or thesis credit in place of the same number of units you could earn by completing courses. As described above, your tuition may be discounted by the dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Up to 6 units are earned as a master's project or thesis through the research you conduct with a faculty member. Faculty usually agree to such an arrangement only where the student has demonstrated interest and ability to work as a reseacher with faculty and other students.
- You are funded by a faculty member to complete your master's studies. Here it is especially important for you to have already engaged with a faculty member in research, perhaps working in a lab or with a faculty member for one or more semesters or over the summer on research.
There are currently two forms of this kind of support, which differ in terms of the time commitment made by the student for the research efforts. As stated above, these are available only for our current students and each requires recommendation by a faculty member.
- Master's Fellowship
- Think of this as some funding you can receive one semester at a time by helping a faculty member with research.
This arrangement takes place one semester at a time and is usually based on a faculty member's need for immediate help with research. For this one semester, you receive a fellowship at a level that is 50 percent of the stipend support given to doctoral students, and your tuition is discounted from its full price by 15 percent.
With mutual agreement this could be extended into subsequent semesters.
- Master of Science Research Assistantship
- Think of this as a slow (2-year) but fully funded (tuition and stipend) path to an MS degree.
You commit to being a full-time graduate student for a particular faculty member for two years, taking no more than two regular classes each semester, and devoting the rest of your time to research. Over a period of two years, you will finish the eight courses you need for the MS as well as a master's project or thesis for the other two courses needed for the degree. Your tuition is covered by the school, and you receive a research assistantship at a level that is 80 percent of the support given to PhD students.
There are high expectations here of devotion to and progress on the research. The trust that such progress would be made is developed by prior experiences with the particular faculty member, who must be suitably impressed with your work ethic, research potential, and time management to make this commitment to you. Failure to sustain progress could terminate this arrangement at the faculty member's discretion.
Our web pages with advising advice for master's students can be found here.You may currently be an undergraduate studying computer science. You may not have begun your studies in computer science. In either case, earning an MS degree in computer science is something you should consider.
Regardless of your specific area of academic study, experience and credentials in computer science are extremely valuable for employment. An MS in computer science may well be your ticket to a job in your area of interest outside of computer science (e.g., economics, business, political science).
Current information should appear here on our web pages. Information speific to the BS/MS program can be found here. Here is an overview and some guidelines:
- A combined undergraduate and masters program requires a total of 150 credits.
- Admission to our masters program is conditional on your performing well in CSE131 and CSE247, also listed as CSE501N and CSE502N, respectively. If you are already a minor or major in computer science, and you have a reasonable GPA, you would almost certainly be admitted to our program. If you do not have 131 or 247, you would be admitted conditionally on taking those courses (501 and 502) and earning a decent grade (B or better) in them.
Thus you can prepare for masters studies in our department, even if not currently a SEAS or CSE student, by taking 131 and 247 and earning a B or better in them.
- There are two flavors of masters degrees: M.Eng. and M.S. and there is more detail on those below.
- Either masters program requires 30 units of credit.
- If you do the undergrad / masters program without interruption, you are allowed to choose up to 6 units to count toward both the undergrad and masters portions. You must still reach 150 total units of credit. Of the units you designate in this way, each unit must ordinarily count toward each program. For example, 361S cannot be applied in this way because masters courses must be 400-level or higher. But 547T can be designated to count toward your undergraduate and masters programs.
- If you are already a Washington University undergraduate, you do not need to take the GRE to apply for our masters programs.
- Washington University students may also qualify for a tuition discount, which is based on your GPA, as shown here (under Scholarship and Financial Aid).
- If you can get a letter of recommendation from a faculty member in CSE, then that letter is the only one you need. Otherwise, three letters are required.
- You must apply for the undergraduate / masters program by the deadline.
ArtSci students We welcome you to our masters' programs, but the arrangements here are more involved. Here are some guidelines:
- ArtSci will count at most 30 units outside their school toward your undergraduate graduation. Nonetheless, you can take as many courses as you like outside of ArtSci and bank those toward whatever programs you intend to complete. You would still require 90 units within ArtSci to graduate from their school.
- othr stuff
M.Eng. vs M.S.
At one time, the distinction between these two degrees was:
The above distinctions don't hold any longer. First, any student can go on for doctoral studies, and it is not necessary to complete an M.S. degree on their way to a PhD (though many do). Second, at one point M.Eng. was considered a 15-month program, but we no longer think of it as any quicker than the M.S. degree.
- M.Eng. was considered terminal, in that students completing this degree were not going to pursue doctoral studies.
- M.S. was considered a way point toward doctoral studies; some students might continue, but some might not.
So how do you choose? Take a look at the requirements for M.Eng. and M.S. (and there is a version of M.S. for Computer Engineering). The primary distinctions are now:
Our intention is that the M.Eng. degree is more interdisciplinary, allowing explicitly for credit outside our department. The associated project is required, to demonstrate mastery of engineering in computer science or computer engineering.
- The M.Eng. requires a 6-unit project. Thus our faculty are obligated to supervise M.Eng. projects so you can complete your degree.
- The M.Eng. is more flexible about 400-level courses. It allows you to take up to 15 units of 400-level credit. The M.S. degrees allow at most 9 such units.
- For the M.S., you can finish using courework alone. Or you can spend up to 6 units on an M.S. project or an M.S. thesis. More on this below.
Project or thesis or just courses? For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project. The issues related to project or thesis are covered elsewhere in this FAQ.
For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project, and the MS degrees allow a project or a thesis.The differences are described below, but it's worth saying that our dean's office supports students moving between thesis and project credits with the agreement of their advisors. So a student may start out with a project, but if the work develops along the lines of a thesis, the advisor and student can ask the credit to be changed. Similarly, the change can go in the other direction.
So you can spend up to 6 units on a project or thesis for the M.S. degrees. Here are some thoughts and guideline about that:
It takes discpline and a strong work ethic to complete either a project or a thesis. If you work better in a structured class-like environment, then perhaps the course-only option is best for you. However, students express satisfaction and experience growth doing theses or projects.
- In either case, you must secure the supervision of a faculty member for a project or thesis. The work involved would have to be of mutual interest.
- A thesis requires a written document, and must represent original work, usually of publishable quality. The writing and substance of your thesis is defended orally in front of a committee in an open forum.
While this is arguably more work that coursework or a project, it is recommended for students interested in research and for whom doctoral studies may be in their future.
- The project requires a two-page extended abstract of your work, and the result of your work is presented to a committee in a closed or open forum.
A project demonstrates your mastery of computer science. It is akin to independent study, in that the hours you spend are determined by you. However, we usually say that 3 units of credit is about 10 hours of work a week. Thus, a 6-unit project over two semesters should consume about 300 hours of your time.
So consider the options carefully, talk with your colleagues and advisors, and make an informed decision.
Our department and school offer many incentives for you to stay and continue your studies by earning a master's degree. Those are covered elsewhere.But how do you decide whether to stay or go?
Try the following Gedankenerfahrung:
- Imagine that are going to stay one or two semesters to complete your master's degree. The number of semesters you need depends on credit you have accumulated and how many courses you would take a semester.
- How do you feel about staying for that extra time to complete the master's degree? Remember to factor in how you generally feel each semester about coming back, and how you feel once you are here.
- If on balance, you feel neutral to positive about coming back for the studies, then you should probably do the master's degree. It typically commands a higher starting salary, it allows you to do a project with faculty, and students are generally very satisifed with their advanced studies.
- If on balance, you would rather schedule root canal than take another class, then you are probably not in the frame of mind to continue your studies. Employment is quite strong and you are advised to take a job and evaluate your feelings about further education in six months or a year.
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
Each school is allowed to have its own rules concerning how courses count toward its programs of study. For example, ArtSci prohibits double counting of almost all courses, so that if a student takes discrete math within the math department (Math 310), then it can count toward a math program or toward computer science, but not both from the ArtSci perspective.However, it is up to each school to reason about whether a given course is necessary for students in its programs of study. Thus, if a student has taken Math 310 there is no reason our department would require that student to take another course (say, CSE240) in discrete math. We indicate this by waiving the discrete math requirement for that student's computer science program, by saying it has been satisfied by studies outside our department. This avoids double counting Math 310, which allows the student to use that course in a math program (or once in any program of study in ArtSci that requires or counts Math 310 as an elective).
Similarly, if a student takes an upper level math course, say Number Theory and Cryptography, we would say that the student then has 3 fewer units to satisfy for elective credit by virtue of studies outside of our department. This allows the Number Theory and Cryptography course to count within ArtSci without any problems.
The Math department has determined that taking their honors math courses should count as follows in terms of our department's requirements:
Math 203 Math 204 CSE 240
or
Math 310Math 233 and Math 309 You can't take Math 204 without first taking Math 203
Yes! We view Math 310 as a fine substitute for CSE 240. Feel free to take either from our point of view. It directly satisfies the requirements for our first an second major.It also can count as elective credit, subject to the limits on how many courses we allow outside of traditional CSE courses.
You should check with the Math department to see if they lean one way or the other about which of the two courses is best for you.
Also, if you are an ArtSci student, you should notify the Associate Chair if you are taking Math 310 so it can be arranged not to appear to double-count for you. More generally, see our FAQ entry about double counting courses, as it may be helpful.
Yes! We view Math 310 as a fine substitute for CSE 240. Feel free to take either from our point of view. It directly satisfies the requirements for our first an second major.It also can count as elective credit, subject to the limits on how many courses we allow outside of traditional CSE courses.
You should check with the Math department to see if they lean one way or the other about which of the two courses is best for you.
Also, if you are an ArtSci student, you should notify the Associate Chair if you are taking Math 310 so it can be arranged not to appear to double-count for you. More generally, see our FAQ entry about double counting courses, as it may be helpful.
Studies in computer science are an excellent fit for medical school preparation, for the following reasons:Once you declare your interest in medicine, you will be assigned a pre-med advisor in your primary school. That advisor will make sure you stay on track to be ready for the MCAT and for medical school.
- Many advances in medicine would not have been possible without the application of computer science concepts and practices. This trend is expected to continue. Doctors with computer science experience are uniquely positioned to understand the role computer science and computation plays in the treatment of their patients.
- Our students tell us that studies in computer science change the way they think. The application of logic in our discipline is helpful for general problem solving.
- Weighing in at 14 required CSE courses, our discipline within SEAS allows plenty of room for the courses you take to prepare for the MCAT and medical school.
- Of particular interest to our pre-med students is the bioinformatics minor, which combines studies in biology and computer science. That minor is described elsewhere in this FAQ.
The life of a student at an institution such as Washington University can at times be difficult. Course work, student groups, obligations to family, part-time employment—all of these can conspire to make your plate quite full. Then, too, we know that depression as an illness can and does develop in colleage-age students.It is important first and foremost to take care of yourself. If you, your instructors, your advisors, or your friends develop concerns about your well-being, you are encouraged to explore the services available for counseling, starting with this page.
If somebody you know is in crisis (including, of course, yourself), then information for quick response can be found here. If help is needed immediately, you should call 911.
You are assigned a departmental advisor when you choose to major or minor in any of our department's programs. If you are a first major in our department, then your advisor must explicitly approve your ability to register for courses. Each semester, there is an advising period during which it is expected that you will make an appointment to meet with your advisor.While approval for registration is one subject for such meetings, you and your advisor will likely engage in conversations concerning
In truth, some students will seek their advisor's approval for registration without such meetings, and some advisors are willing to give such approval. Those students are not making best use of the resources offered by our department, so you are strongly encouraged to meet with your advisor each semester prior to registration.
- other majors or minors that might interest you
- research opportunities
- internships and job search
- difficulties you may be facing
- letters of reference for employment, graduate school, or fellowships
Your advisor can offer advice at other times as well, and if you find yourself in need of such advice, send an email to your advisor and arrange for a conversation to address any concerns you have. Some examples of situations that might trigger a conversation with your advisor are as follows:
- You are struggling in a course and are not sure how to get help.
- You are finding yourself in a difficult semester and you need to lighten your load.
- You are finding yourself with extra time available and would like to consider some activities to enrich your studies.
- You are trying to choose between multiple job or internship offers.
- You have been accused of violating the rules for academic integrity.
- You need a letter of reference.
In all of the above situations, your advisor is best able to help you if your advisor knows you well, and the best way to establish a solid relationship with your advisor is to meet with the advisor regularly, show up promptly for any meetings you have scheduled, and be as prepared as possible for such meetings.
While second majors and minors do not require explicit approval from their advisors to register, they are encouraged for all of the above reasons to meet with their advisors regularly and as needed.
The requirements for our minor are CSE131 (Introduction to Computer Science), CSE247 (Algorithms and Data Structures, and then three courses of your choosing that end with S, T, M, A, or E. You may also take CSE132, CSE240, or CSE347 and have it count toward the minor. At least 4 of your 5 courses must be traditional classroom courses offered by our department. One of your 5 courses can be outside the traditional classroom, as detailed here.
You can't: we don't offer a minor in computer engineering. May we suggest a minor in computer science? While many computer engineering courses have prerequisites, you may find some courses such as 260M suitable for a minor in computer science that will provide you some background in computer engineering.
This minor is typically of interest for our students who want to study medicine or biology, as it combines studies in both departments. The requirements can be found here, and all bioinformatics minors are advised by Prof. Jeremy Buhler.
This is a great question and you should ask for advice on this topic from all fronts: your four-year advisor, your departmental advisor, your friends and colleagues.A great advantage of being a student at Washington University is the large breadth of topics covered by our faculty. You can and you should take courses outside your main interests to become a more educated, well rounded, and balanced student. We hear many stories from our students about the course they took to satisfy some distribution requirement that truly changed their thinking, encouraging them to take on a new minor or major, or even reshaping their career goals.
In truth, it's hard to predict which course might be life-changing for you, but here are some ideas:
We also hear that as much as the material might interest a student, the passion, expertise, and engagement of the professor teaching the course matters greatly. You might look for professors who excel at teaching by reading course evaluations using
- How do you like spending your free time?
- Do you have artistic or musical inclinations?
- Have you thought about acting or production of plays or musicals?
- Is there a culture or country you would like to explore?
.
- our new system (in use since 2016) or
- the old one.
Another way students look at this question is to see what it would take to complete a major or minor in program outside CSE given what they take to earn their CSE major or minor. For example, many students find themselves close to completing a program in math, electrical engineering, or systems sciences as they finish coursework for their CSE major or minor.
HCI studies the way humans and computers interact, aiming to improve the interfaces through which the two sides connect, communicate, and compute.The guidelines for completing an HCI minor can be found here.
If you are eligible to take the CS A AP exam, and you score a 4 or 5, then you do not have to take CSE131 and you should be able to arrange credit for it when you are on campus through any of your academic advisors.We strongly urge students who place out of CSE131 not to take the course. It is a course meant for students with no background. Every year, some students still want to take it, for comfort of familiar material or to experience our version of the material. That's fine, but we would prefer you move on to another course. We also would consider having you serve as a TA for the course. In that way you can learn the material we teach as well as help other students.
No. Just for CSE131, if our department waives that course, then you do not have to take anything in its place.For other courses, if you show proficiency, you will be asked to take something else instead.
There are different answers depending on the school offering the course.
- All schools except Olin
- You deserve the truth, so you should know that the university's registration systems do not check that you have already taken prerequisite courses as you enroll in a new course. Thus, prerequisites are advisory but they are there for a reason. You should consider very seriously whether you will perform well in a course for which you have not taken its prerequisites. A conversation with the instructor or your advisor may be helpful, and there are many ways you could prepare on your own for a course for which you have not formally taken that course's prerequisites.
Caveat emptor!
- Olin
- The business school takes a more strict approach concerning prerequisite courses. They insist that students must have taken the courses precisely listed as prerequisites, and they do not allow for students who have had similar courses elsewhere, even at our own university, nor do they consider the background students may have from other learning experiences or studies.
As an extreme example of this, a student in our department was in an Olin course that required knowledge of python, which is taught in a prerequisite course. As a comp sci student, this student was as prepared as anybody for the course, and the professor of the course was fine having the student in the course. However, the associate dean for undergraduates in Olin discovered that this student had not taken the stated prequisite course. The dean evicted the student from the course, but took that action after the add deadline had passed. The instructor asked the student to TA the course, which he is now doing for credit in our department.
Olin asks us to make sure you are aware of their strict policy concerning prerequisites.
Our web pages with advising advice for master's students can be found here.You may currently be an undergraduate studying computer science. You may not have begun your studies in computer science. In either case, earning an MS degree in computer science is something you should consider.
Regardless of your specific area of academic study, experience and credentials in computer science are extremely valuable for employment. An MS in computer science may well be your ticket to a job in your area of interest outside of computer science (e.g., economics, business, political science).
Current information should appear here on our web pages. Information speific to the BS/MS program can be found here. Here is an overview and some guidelines:
- A combined undergraduate and masters program requires a total of 150 credits.
- Admission to our masters program is conditional on your performing well in CSE131 and CSE247, also listed as CSE501N and CSE502N, respectively. If you are already a minor or major in computer science, and you have a reasonable GPA, you would almost certainly be admitted to our program. If you do not have 131 or 247, you would be admitted conditionally on taking those courses (501 and 502) and earning a decent grade (B or better) in them.
Thus you can prepare for masters studies in our department, even if not currently a SEAS or CSE student, by taking 131 and 247 and earning a B or better in them.
- There are two flavors of masters degrees: M.Eng. and M.S. and there is more detail on those below.
- Either masters program requires 30 units of credit.
- If you do the undergrad / masters program without interruption, you are allowed to choose up to 6 units to count toward both the undergrad and masters portions. You must still reach 150 total units of credit. Of the units you designate in this way, each unit must ordinarily count toward each program. For example, 361S cannot be applied in this way because masters courses must be 400-level or higher. But 547T can be designated to count toward your undergraduate and masters programs.
- If you are already a Washington University undergraduate, you do not need to take the GRE to apply for our masters programs.
- Washington University students may also qualify for a tuition discount, which is based on your GPA, as shown here (under Scholarship and Financial Aid).
- If you can get a letter of recommendation from a faculty member in CSE, then that letter is the only one you need. Otherwise, three letters are required.
- You must apply for the undergraduate / masters program by the deadline.
ArtSci students We welcome you to our masters' programs, but the arrangements here are more involved. Here are some guidelines:
- ArtSci will count at most 30 units outside their school toward your undergraduate graduation. Nonetheless, you can take as many courses as you like outside of ArtSci and bank those toward whatever programs you intend to complete. You would still require 90 units within ArtSci to graduate from their school.
- othr stuff
M.Eng. vs M.S.
At one time, the distinction between these two degrees was:
The above distinctions don't hold any longer. First, any student can go on for doctoral studies, and it is not necessary to complete an M.S. degree on their way to a PhD (though many do). Second, at one point M.Eng. was considered a 15-month program, but we no longer think of it as any quicker than the M.S. degree.
- M.Eng. was considered terminal, in that students completing this degree were not going to pursue doctoral studies.
- M.S. was considered a way point toward doctoral studies; some students might continue, but some might not.
So how do you choose? Take a look at the requirements for M.Eng. and M.S. (and there is a version of M.S. for Computer Engineering). The primary distinctions are now:
Our intention is that the M.Eng. degree is more interdisciplinary, allowing explicitly for credit outside our department. The associated project is required, to demonstrate mastery of engineering in computer science or computer engineering.
- The M.Eng. requires a 6-unit project. Thus our faculty are obligated to supervise M.Eng. projects so you can complete your degree.
- The M.Eng. is more flexible about 400-level courses. It allows you to take up to 15 units of 400-level credit. The M.S. degrees allow at most 9 such units.
- For the M.S., you can finish using courework alone. Or you can spend up to 6 units on an M.S. project or an M.S. thesis. More on this below.
Project or thesis or just courses? For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project. The issues related to project or thesis are covered elsewhere in this FAQ.
For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project, and the MS degrees allow a project or a thesis.The differences are described below, but it's worth saying that our dean's office supports students moving between thesis and project credits with the agreement of their advisors. So a student may start out with a project, but if the work develops along the lines of a thesis, the advisor and student can ask the credit to be changed. Similarly, the change can go in the other direction.
So you can spend up to 6 units on a project or thesis for the M.S. degrees. Here are some thoughts and guideline about that:
It takes discpline and a strong work ethic to complete either a project or a thesis. If you work better in a structured class-like environment, then perhaps the course-only option is best for you. However, students express satisfaction and experience growth doing theses or projects.
- In either case, you must secure the supervision of a faculty member for a project or thesis. The work involved would have to be of mutual interest.
- A thesis requires a written document, and must represent original work, usually of publishable quality. The writing and substance of your thesis is defended orally in front of a committee in an open forum.
While this is arguably more work that coursework or a project, it is recommended for students interested in research and for whom doctoral studies may be in their future.
- The project requires a two-page extended abstract of your work, and the result of your work is presented to a committee in a closed or open forum.
A project demonstrates your mastery of computer science. It is akin to independent study, in that the hours you spend are determined by you. However, we usually say that 3 units of credit is about 10 hours of work a week. Thus, a 6-unit project over two semesters should consume about 300 hours of your time.
So consider the options carefully, talk with your colleagues and advisors, and make an informed decision.
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
Many students seek to expand or deepen their knowledge of computer science and engineering by pursuing graduate study after or in concert with their undergraduate studies. The financial assistance and incentive programs described here are written assuming you are a current Washington University undergraduate student. If you are not such a student, you can find more information about programs that are available to you here.While we encourage applications for graduate study from outside our campus, the financial assistance and incentive programs described here are not available for such students.
Our faculty conduct research to push the field of computer science and computer engineering in new, interesting, and important directions. We encourage you to conduct research with faculty
Other parts of this FAQ describe the research you might do as an undergraduate.
- to help us with our research and
- to help you decide whether you want to perform research as part of graduate studies.
At this point, you might find yourself somewhere on the spectrum of interest in graduate studies as follows:
- You like taking classes and learning more about computer science, but you are not interested in participating in research.
- In this case, the best advice is to work ahead toward the courses you need to complete a master's degree while you are an undergraduate. The requirements for those degrees can be found on these pages, and you are encouraged to take courses that count for those degrees as you are able.
Thereafter, you may stay one or more semesters to finish the master's work, and the tuition you pay may be decreased by our dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Most students find they can finish the combined undergraduate and master's work in one extra semester. Rarely, a student finds that the work can be done in the same four years as the undergraduate degree. Sometimes the work may take two extra semesters.
- You are certain you want to earn a doctorate in computer science
- In this case, you are encouraged to become involved in research with our faculty as soon as possible and develop an impressive application for doctoral graduate study.
Doctoral students in computer science (at Washington University and elsewhere) are fully funded with a stipend to support living expenses and no tuition expenses whatsoever.
Doctoral work typically takes some 5 or 6 years to complete.
- You are interested in research and a master's degree but don't want a PhD
- In this case you have the following options, but all paths here begin by establishing a research relationship with a faculty member.
- You fund yourself to continue your studies into a master's program, but complete up to 6 units of master's project or thesis credit in place of the same number of units you could earn by completing courses. As described above, your tuition may be discounted by the dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Up to 6 units are earned as a master's project or thesis through the research you conduct with a faculty member. Faculty usually agree to such an arrangement only where the student has demonstrated interest and ability to work as a reseacher with faculty and other students.
- You are funded by a faculty member to complete your master's studies. Here it is especially important for you to have already engaged with a faculty member in research, perhaps working in a lab or with a faculty member for one or more semesters or over the summer on research.
There are currently two forms of this kind of support, which differ in terms of the time commitment made by the student for the research efforts. As stated above, these are available only for our current students and each requires recommendation by a faculty member.
- Master's Fellowship
- Think of this as some funding you can receive one semester at a time by helping a faculty member with research.
This arrangement takes place one semester at a time and is usually based on a faculty member's need for immediate help with research. For this one semester, you receive a fellowship at a level that is 50 percent of the stipend support given to doctoral students, and your tuition is discounted from its full price by 15 percent.
With mutual agreement this could be extended into subsequent semesters.
- Master of Science Research Assistantship
- Think of this as a slow (2-year) but fully funded (tuition and stipend) path to an MS degree.
You commit to being a full-time graduate student for a particular faculty member for two years, taking no more than two regular classes each semester, and devoting the rest of your time to research. Over a period of two years, you will finish the eight courses you need for the MS as well as a master's project or thesis for the other two courses needed for the degree. Your tuition is covered by the school, and you receive a research assistantship at a level that is 80 percent of the support given to PhD students.
There are high expectations here of devotion to and progress on the research. The trust that such progress would be made is developed by prior experiences with the particular faculty member, who must be suitably impressed with your work ethic, research potential, and time management to make this commitment to you. Failure to sustain progress could terminate this arrangement at the faculty member's discretion.
Our web pages with advising advice for master's students can be found here.You may currently be an undergraduate studying computer science. You may not have begun your studies in computer science. In either case, earning an MS degree in computer science is something you should consider.
Regardless of your specific area of academic study, experience and credentials in computer science are extremely valuable for employment. An MS in computer science may well be your ticket to a job in your area of interest outside of computer science (e.g., economics, business, political science).
Current information should appear here on our web pages. Information speific to the BS/MS program can be found here. Here is an overview and some guidelines:
- A combined undergraduate and masters program requires a total of 150 credits.
- Admission to our masters program is conditional on your performing well in CSE131 and CSE247, also listed as CSE501N and CSE502N, respectively. If you are already a minor or major in computer science, and you have a reasonable GPA, you would almost certainly be admitted to our program. If you do not have 131 or 247, you would be admitted conditionally on taking those courses (501 and 502) and earning a decent grade (B or better) in them.
Thus you can prepare for masters studies in our department, even if not currently a SEAS or CSE student, by taking 131 and 247 and earning a B or better in them.
- There are two flavors of masters degrees: M.Eng. and M.S. and there is more detail on those below.
- Either masters program requires 30 units of credit.
- If you do the undergrad / masters program without interruption, you are allowed to choose up to 6 units to count toward both the undergrad and masters portions. You must still reach 150 total units of credit. Of the units you designate in this way, each unit must ordinarily count toward each program. For example, 361S cannot be applied in this way because masters courses must be 400-level or higher. But 547T can be designated to count toward your undergraduate and masters programs.
- If you are already a Washington University undergraduate, you do not need to take the GRE to apply for our masters programs.
- Washington University students may also qualify for a tuition discount, which is based on your GPA, as shown here (under Scholarship and Financial Aid).
- If you can get a letter of recommendation from a faculty member in CSE, then that letter is the only one you need. Otherwise, three letters are required.
- You must apply for the undergraduate / masters program by the deadline.
ArtSci students We welcome you to our masters' programs, but the arrangements here are more involved. Here are some guidelines:
- ArtSci will count at most 30 units outside their school toward your undergraduate graduation. Nonetheless, you can take as many courses as you like outside of ArtSci and bank those toward whatever programs you intend to complete. You would still require 90 units within ArtSci to graduate from their school.
- othr stuff
M.Eng. vs M.S.
At one time, the distinction between these two degrees was:
The above distinctions don't hold any longer. First, any student can go on for doctoral studies, and it is not necessary to complete an M.S. degree on their way to a PhD (though many do). Second, at one point M.Eng. was considered a 15-month program, but we no longer think of it as any quicker than the M.S. degree.
- M.Eng. was considered terminal, in that students completing this degree were not going to pursue doctoral studies.
- M.S. was considered a way point toward doctoral studies; some students might continue, but some might not.
So how do you choose? Take a look at the requirements for M.Eng. and M.S. (and there is a version of M.S. for Computer Engineering). The primary distinctions are now:
Our intention is that the M.Eng. degree is more interdisciplinary, allowing explicitly for credit outside our department. The associated project is required, to demonstrate mastery of engineering in computer science or computer engineering.
- The M.Eng. requires a 6-unit project. Thus our faculty are obligated to supervise M.Eng. projects so you can complete your degree.
- The M.Eng. is more flexible about 400-level courses. It allows you to take up to 15 units of 400-level credit. The M.S. degrees allow at most 9 such units.
- For the M.S., you can finish using courework alone. Or you can spend up to 6 units on an M.S. project or an M.S. thesis. More on this below.
Project or thesis or just courses? For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project. The issues related to project or thesis are covered elsewhere in this FAQ.
For the MS degrees, you can satisfy requirements by taking courses alone. The M.Eng. degree requires a 6-unit project, and the MS degrees allow a project or a thesis.The differences are described below, but it's worth saying that our dean's office supports students moving between thesis and project credits with the agreement of their advisors. So a student may start out with a project, but if the work develops along the lines of a thesis, the advisor and student can ask the credit to be changed. Similarly, the change can go in the other direction.
So you can spend up to 6 units on a project or thesis for the M.S. degrees. Here are some thoughts and guideline about that:
It takes discpline and a strong work ethic to complete either a project or a thesis. If you work better in a structured class-like environment, then perhaps the course-only option is best for you. However, students express satisfaction and experience growth doing theses or projects.
- In either case, you must secure the supervision of a faculty member for a project or thesis. The work involved would have to be of mutual interest.
- A thesis requires a written document, and must represent original work, usually of publishable quality. The writing and substance of your thesis is defended orally in front of a committee in an open forum.
While this is arguably more work that coursework or a project, it is recommended for students interested in research and for whom doctoral studies may be in their future.
- The project requires a two-page extended abstract of your work, and the result of your work is presented to a committee in a closed or open forum.
A project demonstrates your mastery of computer science. It is akin to independent study, in that the hours you spend are determined by you. However, we usually say that 3 units of credit is about 10 hours of work a week. Thus, a 6-unit project over two semesters should consume about 300 hours of your time.
So consider the options carefully, talk with your colleagues and advisors, and make an informed decision.
Our department and school offer many incentives for you to stay and continue your studies by earning a master's degree. Those are covered elsewhere.But how do you decide whether to stay or go?
Try the following Gedankenerfahrung:
- Imagine that are going to stay one or two semesters to complete your master's degree. The number of semesters you need depends on credit you have accumulated and how many courses you would take a semester.
- How do you feel about staying for that extra time to complete the master's degree? Remember to factor in how you generally feel each semester about coming back, and how you feel once you are here.
- If on balance, you feel neutral to positive about coming back for the studies, then you should probably do the master's degree. It typically commands a higher starting salary, it allows you to do a project with faculty, and students are generally very satisifed with their advanced studies.
- If on balance, you would rather schedule root canal than take another class, then you are probably not in the frame of mind to continue your studies. Employment is quite strong and you are advised to take a job and evaluate your feelings about further education in six months or a year.
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
Physics used to have 4-unit first-year courses 197 and 198 that each counted as 4 units of natural science for our students. Those courses included lab work.Physics has changed their formulation to separate lecture from lab in their courses. Each 3-unit lecture course has a 1-unit lab for which a student must explicitly register. Physics 191 and 192 are the lecture courses and their labs are 191L and 192L, respectively.
Maintaining continuity in how we treat the intro physics sequence, our department will count the lecture and lab units toward your natural science requirements, even though the lab courses (191L and 192L) do not carry the natural science tag for arts and sciences.
There are different answers depending on the school offering the course.
- All schools except Olin
- You deserve the truth, so you should know that the university's registration systems do not check that you have already taken prerequisite courses as you enroll in a new course. Thus, prerequisites are advisory but they are there for a reason. You should consider very seriously whether you will perform well in a course for which you have not taken its prerequisites. A conversation with the instructor or your advisor may be helpful, and there are many ways you could prepare on your own for a course for which you have not formally taken that course's prerequisites.
Caveat emptor!
- Olin
- The business school takes a more strict approach concerning prerequisite courses. They insist that students must have taken the courses precisely listed as prerequisites, and they do not allow for students who have had similar courses elsewhere, even at our own university, nor do they consider the background students may have from other learning experiences or studies.
As an extreme example of this, a student in our department was in an Olin course that required knowledge of python, which is taught in a prerequisite course. As a comp sci student, this student was as prepared as anybody for the course, and the professor of the course was fine having the student in the course. However, the associate dean for undergraduates in Olin discovered that this student had not taken the stated prequisite course. The dean evicted the student from the course, but took that action after the add deadline had passed. The instructor asked the student to TA the course, which he is now doing for credit in our department.
Olin asks us to make sure you are aware of their strict policy concerning prerequisites.
The answer here depends on the courses in computer science you wish to take and the other majors or minors you are completing at the university.ESE 326 is our school's course in probability and statistics. It's a great course and you are welcome to use that to satisfy our requirement.
But if you are a major or minor outside our school, you should consider other departments' probability/statistics offerings, which we count as follows:
- Students studying Math may be required to take Math 3200, which we count.
- If you are considering a program in the Olin Business School, most of those require QBA 120 and QBA 121. If you take both of those courses, then Our department considers your probability/statistics requirement satsified.
- If you are considering a major or minor in Psychology, you may be taking Pysch 300, which we count.
In cases where the course you take is outside our school, look elsewhere in this FAQ for double counting to learn how that is handled.Another important consideration is to think about the courses you want to take in computer science. Which topics do those courses require and which probability/statisics courses cover those topics? Here is a table to help you make an informed decision:
TBD
Most courses at our university allow a student to take that course for a grade (A, B, C, etc.) or for credit only. This latter option is the mechanism for taking a class pass/fail. Here are some notes about taking courses pass/fail:
- When you register or try to change the enrollment status of yourself in a course, the pass/fail option may not present itself, which means that the course can be taken only for a grade.
- Some courses, such as seminars, can only be taken pass/fail.
- It is important for a student taking any course pass/fail to understand with sufficient precision what is required to pass the course. Web pages and syllabi should contain this information, but if they do not, then an email or some other documentation of the standard needed to pass should be obtained.
- There is a limit to the number of courses you can take pass/fail in a semester, and the total number you can take over your career, as documented here.
- There is a date by which you must declare the course pass/fail, and a date by which you can change it back from pass/fail to graded. This varies by semester and you should consult the particular year's academic calendar.
While most courses allow you to enroll pass/fail, you must keep in mind that most majors and minors insist that all courses taken for those programs be taken for a letter grade, and not pass/fail.All CSE programs require that you take courses that count toward your CSE degree for a letter grade. The only courses you can take pass/fail for us are those that satisfy humanties and social sciences as distribution.
This becomes tricky if you take a course thinking that it's only for distribution, and then become so interested in the topic that you subsequently want to open a major or minor program in that area of study. In such a situation, you might have to re-take the course for a letter grade.
While the window to declare a course pass/fail is fairly short, the window for reverting it back to a letter grade is relatively long. If you find yourself becoming interested in the subject and you are doing well, you should probably revert the pass/fail to a letter grade.
This is a great question and you should ask for advice on this topic from all fronts: your four-year advisor, your departmental advisor, your friends and colleagues.A great advantage of being a student at Washington University is the large breadth of topics covered by our faculty. You can and you should take courses outside your main interests to become a more educated, well rounded, and balanced student. We hear many stories from our students about the course they took to satisfy some distribution requirement that truly changed their thinking, encouraging them to take on a new minor or major, or even reshaping their career goals.
In truth, it's hard to predict which course might be life-changing for you, but here are some ideas:
We also hear that as much as the material might interest a student, the passion, expertise, and engagement of the professor teaching the course matters greatly. You might look for professors who excel at teaching by reading course evaluations using
- How do you like spending your free time?
- Do you have artistic or musical inclinations?
- Have you thought about acting or production of plays or musicals?
- Is there a culture or country you would like to explore?
.
- our new system (in use since 2016) or
- the old one.
Another way students look at this question is to see what it would take to complete a major or minor in program outside CSE given what they take to earn their CSE major or minor. For example, many students find themselves close to completing a program in math, electrical engineering, or systems sciences as they finish coursework for their CSE major or minor.
If you still have concerns regarding the implication of selecting a pass/fail option for a course this semester, you can reach out to the department's chair or associate chair for additional assistance.
- Background
- Due to the COVID-19 crisis and the resulting mid-semester switch to an online teaching format, the McKelvey School of Engineering, like many of its peers, opted to allow students to switch to a pass/fail grade for any course while still allowing that course to count against the degree requirements the course was originally intended to satisfy.
This is an unprecedented step for an unprecedented situation.
- What can I do?
- For the Spring 2020 semester only, you are allowed at any point up to and including the last day of instruction (24 April 2020) to designate any of your courses pass/fail.
- For students in a McKelvey (CSE) major or minor program, such courses will count as if taken for credit toward any of your major or minor requirements in the McKelvey School of Engineering.
- For programs not in the engineering school, you must consult faculty or administrators in those schools to determine how your work will count towards those programs.
- Why is this option offered?
- The school and department recognize that finishing your work this semester may be more difficult without physical access to campus.
The pass/fail option offers you flexibility in how you spend your time. Because the move to pass/fail can be made any time up to and including the last day of instruction, if your success in a given course is suffering for whatever reason, you can switch that course to pass/fail and still have it count as if for credit.
- How will this look on my transcript?
- There will be an explicit annotation on students' transcripts explaining the circumstances of the pass/fail grade for this semester.
- How will employers or graduate schools view such grades?
- Potential employers and graduate schools are well aware of this situation. Therefore, we fully expect that the presence of pass/fail grades for this semester on a student's transcript will not have adverse effects on either job or graduate school opportunities, but those decisions are beyond our control.
- Can I change my mind about pass/fail and go back to a letter grade?
- It depends. We encourage you to make a decision and stick with that. Moreover, instructors are not obligated to keep letter grades for your assignments that are graded when you are registered pass/fail.
Before switching back to a letter grade, you should have a conversation with your instructor to make sure a letter grade can be submitted for you at that point in the semester.
Computers continue to drop in price as they increase in both speed and available storage. If you are interested in studies in our department, here are some guidelines about a computer:
- We recommend a laptop over a desktop, so that you can more easily collaborate by bringing your laptop to work in groups. Laptops are also convenient in class for taking notes and for experimenting with ideas presented in some classes.
- Working on code usually is easier with a larger screen. While this does increase the size and weight of your laptop, you will probably appreciate the extra screen real estate so that you can look at various portions of code at the same same time.
- If you buy a new laptop, then he clock rate of the CPU is not all that important. Unless you plan to do some heavy computation on your laptop, something at or above 2 GHz is fine.
- If you have a choice of a solid state disk (SSD) you should pick that over the older moving-head disks. The SSD will make your computer perform much faster. They are generally more expensive, but like all disks, their price is correlated to the space they provide.
- How much disk space do you need? At least 256 GB for your work in courses. Remember the disk has to accommodate all your system software as well as applications you install for courses and the data you generate for your courses. If you like lots of music and want it resident on your laptop, consider a 512 GB SSD drive. If you are feeling flush or if you like lots of musics resident on our laptop, consider a 1 TB drive.
- Some students seem to find cheaper installations of operating systems via nonstandard vendors. Please steer clear of those, as the software we use does not always work well on nonstandard installations. If you stop by EIT they can often provide you with standard installations of common software.
You should consider the kind of materials you have and the best way of making sure you don't lose them, should your laptop fail.
- Personal pictures, movies, and music should be backed up to the cloud. Apple and other companies offer cloud-based services that can host your media so that you never lose anything and so that your media is available across multiple devices, such as your laptop and your phone.
- Many of our courses use a repository, which is hosted at a site such as bitbucket. You should get into the habit of working on your software projects using the following approach:
If you follow these instructions, then if your laptop should fail you will lose no work.
- When you are ready to work, pull any changes from the repository to your laptop.
- When you are at an articulation point in our work, or if you have spent an hour working toward an articulation point, commit and push your code back to the repository.
- Other files can be backed up to dropbox or box or other such providers.
This question is more in the area of religious studies and philosphy than computer science. It doesn't really matter in terms of your studies in computer science, but you will find that students and faculty alike can be passionate about their choice of computer.
This question is more in the area of religious studies and philosphy than computer science. It doesn't really matter in terms of your studies in computer science, but you will find that students and faculty alike can be passionate about their choice of computer.
Physics used to have 4-unit first-year courses 197 and 198 that each counted as 4 units of natural science for our students. Those courses included lab work.Physics has changed their formulation to separate lecture from lab in their courses. Each 3-unit lecture course has a 1-unit lab for which a student must explicitly register. Physics 191 and 192 are the lecture courses and their labs are 191L and 192L, respectively.
Maintaining continuity in how we treat the intro physics sequence, our department will count the lecture and lab units toward your natural science requirements, even though the lab courses (191L and 192L) do not carry the natural science tag for arts and sciences.
Please, one question at a time.There are generally two ways you might already know the material in a course:
- Perhaps you have taken a similar course elsewhere. In that case, you should look at the FAQ for transfer courses, so that we can count the course you took elsewhere as the equivalent of a course here.
Study abroad is treated differently, so if the course under scrutiny here was taken while you were officially studying abroad, take a look at the FAQ for studying abroad.
- Perhaps you have studied independently or made use of online resources, but you have not taken a course we can transfer directly into your program here. In that case, read on.
Our faculty would not want you to take a course if you already know that course's material. Questions you should first ask yourself are:
It will help to view the syllabus and any prior information you can find on the web about a course that you believe you need not take.
- How well do you know the material?
- What fraction of the course's material do you know?
From there, our deparatment must evaluate whether you are able to place out of the course. This is handled as follows:
- For CSE131:
If for whatever reason you are placed out of CSE131, there is no other class you have to take in its stead. We hope you will move forward in one of our major or minor programs of study.
- if you have a 4 or 5 on the AP Computer Science test, then you are automatically placed out of CSE131.
- Otherwise, you are invited to take the placement test for CSE131, which determines one of the following outcomes:
- You need not take CSE131, but we hope you will TA it.
- You should take CSE131 and we look forward to seeing you in that class.
- You are borderline, and we prescribe some outside work you should do so that you are at the same point in your studies as those students who take CSE131. You do this work on your own and show it to the person who administered the placment test.
- If you have a 4 or 5 AP score and still want to take the placement exam, we won't stop you.
- For all other courses: You must arrange an interview and perhaps a written test with the department's associate chair, who will have you meet with a professor who has recently taught the course.
If the outcome of this process determines you need not take the course, then it will be waived as a requirement, but you will be required to take some other course in its stead. The actual course you take should be determined by agreement with your academic advisor.
If you are eligible to take the CS A AP exam, and you score a 4 or 5, then you do not have to take CSE131 and you should be able to arrange credit for it when you are on campus through any of your academic advisors.We strongly urge students who place out of CSE131 not to take the course. It is a course meant for students with no background. Every year, some students still want to take it, for comfort of familiar material or to experience our version of the material. That's fine, but we would prefer you move on to another course. We also would consider having you serve as a TA for the course. In that way you can learn the material we teach as well as help other students.
If you are unsatisfied with your performance in a given course, and if you feel that another experience with that material is necesssary, you can retake that course. This should be considered carefully and with the advice of your departmental and 4-year advisors.Except as noted below, retaking a course causes the following actions on your transcript and for your GPA computation:
However, take careful note of the following:
- The previous enrollment in the course is annotated with an R to show that the course was replaced by a subsequent enrollment in the same course. So, the prior enrollment in the course persists on your transcript. The grade earned in that prior enrollment is also shown. If you withdrew from the course, then the W persists as well.
- The new grade replaces the previous grade in terms of GPA computation. This is true even if the new grade is worse than the previous grade.
- If in your prior enrollment you were found in violation of academic integrity policies for that course, then your prior grade may not be replaced by the new grade. Each school currently makes its own decision about this.
- University rules concerning plagiarism apply also to retakes of the same course. Those rules do not allow you to submit the same work for credit in two courses, even if one of those courses is a retake of the other, without the explicit permission of the instructor of both courses.
You cannot repeat a course and submit any of the same work again for credit, without the explciit approval of both instances of that course.
It is useful to view academic integrity at the university, school, and course levels.Recently a committee of faculty and administrators met to consider broad changes to the academic integrity process at Washington University. This response is accurate as of this writing, and it will be updated should the university decide to make changes.In overview the process for dealing with alleged vioations of integrity proceeds as follows:
- The university's Office of Student Conduct and Community Standards publishes a page on Academic Integrity which in turn references the university's Academic Integrity Policy.
That policy covers the general principles of academic integrity, but it delegates to each course the specification of allowable collaboration.
- The school is primarily responsible for prosecuting cases of alleged violation of academic integrity. The details of this process are covered below.
- Each course should publish the boundaries of allowed collaboration. Such information may be covered on the course's web page or syllabus, or on particular assignments. As covered elsewhere in this FAQ, it is important that students read and understand the boundaries of allowed collaboration, and ask questions where anything is unclear.
- An instructor, TA, or student files a complaint with the SEAS Engineering Student Services office that a violation may have occurred. The complainant provides evidence along a quote of the particular academic integrity rule that may have been violated.
- Our school's academic integrity officer requests a meeting with the person accused of the violation. The evidence is presented and the student has the option of agreeing the violation took place, or the student can request a formal hearing.
- If a hearing is convened, then the complainant presents the evidence and the student can respond. The goal here is a fair hearing in which all relevant material can be presented and heard. The hearing is conducted by an academic integrity officer of SEAS and there are usually three faculty members present to hear and decide the case.
- Under any finding that a violation has occurred, a sanction is imposed and the event is sent to the University's Office of Student Conduct and Community Standards.
The violation is part of a student's permanent record at Washington University. See below.If the process described above determines that you have not violated our community standards, then no record of the accusation is retained.
On the other hand, it is important that you understand the short-term consequences of being found in violation of our community standards:
- A lower grade may be issued for the assignment.
- A lower grade may be issued for the course.
- You may be suspended from the university for one or more semesters.
- You may be expelled.
But there are long-term consequences as well. When you are found in violation of our community standards, the university retains the event on your permanent record. The following entities frequently ask the university if you have had problems of this sort, and the university is obligated to report these events to those who ask:
- Graduate schools
- Medical schools
- Law schools
- Employers
- Government agencies
In short, no.
Cheating not academically breaks the trust of your professors and your peers, but it also impairs the person that matters the most: yourself.
If you take a shortcut on an assignment, then you are robbing yourself of that next level of understanding, of potential growth and of the pride of having done something yourself.
Completing an assignment and doing well in a class should come with a sense of accomplishment, which will in turn push you to accomplish more. If you ever feel the need to cheat or do something dishonest, then take a step back and look at the bigger picture.
You are at a top level university with great academic resources and you should be here not only to receive a degree, but also to learn as much as possible. There are a number of alternative options you can take before you cheat:
- Talk to your professor, and ask for an extension. There is no harm in asking.
- Commit to a new schedule, start early, go to TA hours.
- Fail the assignment or receive a lower grade. It is perfectly fine to not do well on an assignment as long as you can evaluate what went wrong. Maybe you need to start earlier, cut back on extracurriculars, or perhaps you are in the wrong class.
- Drop/Withdraw from the class.
In the short-term and long-term, it is never worth it to cheat. There is always another way, and that alternative path will always be more beneficial. Do not risk your personal integrity for one assignment or one class.
There are several principles at work here:In light of the above, it is important that there be clear rules in our courses concerning when and how you are allowed to collaborate. This burden has portions for both faculty and students:
- Computer science and engineering is by its nature a collaborative discipline. Because collaboration skills are valuable in its practice, many of our courses explicitly encourage collaboration.
- We are obligated to assess student performance on an individual basis. Thus, even those courses that feature collaborative assignments also contain assignments that must be completed individually.
- The university, school, and departmental policies on academic integrity state the standards of our community and the consequence that can follow from violating those standards. Academic integrity proceedings are covered elsewhere in this FAQ.
The goals here are to allow as much collaboration as possible while making sure that the limitations of such collaboration are clear and followed by students.
- Faculty are obligated to state on their syllabi, web pages, and assignments the extent to which collaboration is allowed. Faculty try to be as clear as possible, but prose is prone to ambiguity.
- Students are therefore responsible for asking questions in cases where they are not sure about the rules.
Following are some examples of collaborative scenarios from our courses. These are not necessarily the policy in any given course. You must check a given course page's syllabus or web pages for what is allowed in that course. These examples are drawn from many of our courses, and they are only examples for use here:
- A lab allows pair programming, with the stipulation that partners are to contribute equally and that each partner must be able to explain fully the functionality of any portion of the submitted work.
- A studio assignment involves a team of four students who work collaboratively to complete the assignment. A TA is assigned to mentor the team, and part of that mentoring is to ensure that individuals contribute equally to the team's work product.
- A homework assignment allows students to bounce ideas off of other students before writing up a solution, with the requirement that anybody involved in such discussions wih the students is listed at the top of the submitted solution.
- A homework solution allows discussion of problems among students, as long as nothing is written down. The student must wait at least an hour after all such discussions have ended to write up the solution.
The short answer is you should have plan A and plan Z.You are allowed to register for up to 21 units, so you may have to make (strategic) choices about where to register to get the courses you want.
- Plan A
- Stay on the wait list for this course. If this is a required course for any of your programs, and you have an urgent need to take the course now, be sure to let the instructor know, and see what might be done to gain admission to the course.
It is important to show up for class as if you are enrolled if Plan A is your plan. There is an apochryphal story about a student who just kept showing up. The professor finally eventually enrolled the student in the course.
Also, be aware that students drop usually in the first two weeks of class, which opens up room in a course.
- Plan Z
- Because you might not get in, it's a good idea to sign up for another course that has room. Seek the usual advice about courses from your advisor, colleagues, and friends.
If you are a minor or major in computer science, the good news is that employment in our industry is extremely strong. Internships are ideal settings for a company and an employee to see if there is a good fit for full-time employment. Here is some advice about preparing for an internship.
- Accumulate a portfolio of projects and other artifacts of your work in and outside of class. You can do this with a github or bitbucket account.
Be sure that the code you post from course work is private, so that you do not provide your solutions to other students and run afoul of our community standards.The portfolio serves to document your progress as a student of computer science, but it also serves as a backdrop for a conversation in which you can express your passion and interest about your work. How did you arrive at a given interface? What obstacles did you face in developing your solution? What did you learn about teamwork, algorithms, interfaces?Likewise, companies may have policies that prohibit you from publishing or disclosing code while working for them.
Be careful!
- Have a resumé handy. Have it on paper and ready to send electronically. You never know when somebody will ask, and having one current and ready conveys professionalism.
- Visit the SEAS Career Center. Your resume and other interview artifacts can be improved by interacting with advisors there.
- Attend the job fairs every semester. Even before you are ready for an internship, make it a habit to attend the job fairs, to talk with the representatives, and to talk about your work and your interests. Ask other students or your advisor about how to dress. Most companies doing computer science do not expect formal attire, but it's worth finding this out before you show up.
- Prepare for a phone or other interview.
- Much information can be found online, and it's worth reading through resources such as Cracking the Coding Interview. One student I know worked over 400 problems before she interviewed with facebook and she landed the job. That seems extreme, but such preparation serves to make you feel more confident and to help you field questions well.
If your interview is via a video chat session, be sure to dress fully for the interview. Some of our students have been asked to stand up. Crazy, but true.
- Our department's UPE chapter has been organizing mock technical interviews. Try to schedule one or two mock interviews before an actual interview. UPE is described elsewhere in this FAQ.
- Network as best you can at venues that allow you to do so. One recent student attended the Grace Hopper Conference, and landed a job as an intern for project management at Apple. Her story is inspiring because at first Apple did not respond to her resumé. However, she returned to the booth and insisted on talking with somebody because she really wanted to be considered for the job. After that conversation, she was hired on the spot.
- Establish a relationship with faculty so that they can supply letters of recommendation. There is advice elsewhere in this FAQ about that.
Studies in computer science are an excellent fit for medical school preparation, for the following reasons:Once you declare your interest in medicine, you will be assigned a pre-med advisor in your primary school. That advisor will make sure you stay on track to be ready for the MCAT and for medical school.
- Many advances in medicine would not have been possible without the application of computer science concepts and practices. This trend is expected to continue. Doctors with computer science experience are uniquely positioned to understand the role computer science and computation plays in the treatment of their patients.
- Our students tell us that studies in computer science change the way they think. The application of logic in our discipline is helpful for general problem solving.
- Weighing in at 14 required CSE courses, our discipline within SEAS allows plenty of room for the courses you take to prepare for the MCAT and medical school.
- Of particular interest to our pre-med students is the bioinformatics minor, which combines studies in biology and computer science. That minor is described elsewhere in this FAQ.
There are different answers depending on the school offering the course.
- All schools except Olin
- You deserve the truth, so you should know that the university's registration systems do not check that you have already taken prerequisite courses as you enroll in a new course. Thus, prerequisites are advisory but they are there for a reason. You should consider very seriously whether you will perform well in a course for which you have not taken its prerequisites. A conversation with the instructor or your advisor may be helpful, and there are many ways you could prepare on your own for a course for which you have not formally taken that course's prerequisites.
Caveat emptor!
- Olin
- The business school takes a more strict approach concerning prerequisite courses. They insist that students must have taken the courses precisely listed as prerequisites, and they do not allow for students who have had similar courses elsewhere, even at our own university, nor do they consider the background students may have from other learning experiences or studies.
As an extreme example of this, a student in our department was in an Olin course that required knowledge of python, which is taught in a prerequisite course. As a comp sci student, this student was as prepared as anybody for the course, and the professor of the course was fine having the student in the course. However, the associate dean for undergraduates in Olin discovered that this student had not taken the stated prequisite course. The dean evicted the student from the course, but took that action after the add deadline had passed. The instructor asked the student to TA the course, which he is now doing for credit in our department.
Olin asks us to make sure you are aware of their strict policy concerning prerequisites.
For students not so solid in math, we recommend CSE 240 before CSE 247. Many students take 247 first.You can proceed with 247 without 240, provided you have the appropriate background. This page can help you figure that out.
If you are a primary major in computer science, then you have two kinds of course obligations you must fulfill:A second major need only do the first set of courses, and the requirements for the second major are found here. The careful reader will note that the computer science course requirements for both first and second majors are identical.
- Some courses are required for the computer science aspect of your primary major in computer science.
- Some courses are required because, as a primary major in computer science, you are also primarily situated in SEAS. This brings obligations of coursework you must do that is outside of what the computer science part of your studies require.
Thus, our department supports students saying they have majored in computer science whether they have done so by primary or by second major.
Note that a second major in computer science must be a first major in some school. The rules and requirements of that school and that student's first major must be followed to graduate from Washington University.
The answer here depends on the courses in computer science you wish to take and the other majors or minors you are completing at the university.ESE 326 is our school's course in probability and statistics. It's a great course and you are welcome to use that to satisfy our requirement.
But if you are a major or minor outside our school, you should consider other departments' probability/statistics offerings, which we count as follows:
- Students studying Math may be required to take Math 3200, which we count.
- If you are considering a program in the Olin Business School, most of those require QBA 120 and QBA 121. If you take both of those courses, then Our department considers your probability/statistics requirement satsified.
- If you are considering a major or minor in Psychology, you may be taking Pysch 300, which we count.
In cases where the course you take is outside our school, look elsewhere in this FAQ for double counting to learn how that is handled.Another important consideration is to think about the courses you want to take in computer science. Which topics do those courses require and which probability/statisics courses cover those topics? Here is a table to help you make an informed decision:
TBD
An open program is a major or minor that you have in progress. WebSTAC can show you your open programs, and most changes to your programs can be done there too. You can declare second majors, switch from one major to another within the school, declare a minor program—all within WebSTAC.Some changes require approval of an advisor or two, and emails are generated automatically by the changes you request to obtain such approvals.
How do you know how your classes you've taken fit into a new major you might choose? WUAchieve can show you that. If you can't get it to show you the program you want, please see Dean Tobin Harris in the Undergradute Engineering Student Services office.
Some changes require a more personal touch. Would you like to switch your major program to the one that was in the Bulletin at the start of your sophomore year? If you cannot manage to do that via WebSTAC, then you should correspond with Dean Tobin Harris in the Engineering Student Services office. He has magic powers to make WebSTAC and WUAchieve follow the programs of your dreams.
Transferring schools? That's a bigger deal and requires more meetings, emails, and approvals, but it also begins with WebSTAC. Look for the Change WU School link. I'm told it's there but because I'm not a student, I can't verify its existence. Why transfer schools? That's the subject of another FAQ.
Our ACM chapter is one of many throughout the country, and the international ACM sponsors its ICPC programming contest every year.The international contest level is reached by teams competing successfully in local, regional, and state contests.
Washington University has performed well at these contests, having at this writing won 2 international contests. Our success is due to the students' interest in preparing and entering these contests. Our local ACM chapter is responsible for organizing and preparing for these contests. A FAQ entry exists elsewhere for ACM, and you are encouraged to contact them and become involved in the planning and competitions. Also, look for offerings of CSE 232, which is a 1-unit pass/fail course in which you can register to prepare for a contest.
While the goal of this group is winning contests, students involved in such preparation report a stronger connection with other students, with our department, and with the larger CSE community. The students have fun as they prepare, and while software engineering rarely requires solving so many problems so quickly, the experience and training builds confidence.
Contribute to an open-source project. Open source software is source code that anyone can inspect, copy, modify, and share. It's a great way to learn and try modern development practices. Some examples include:
Get involved in a standardization effort.
Answer questions and spend time with online programming communities, such as:
- Stack Overflow
Introductory topics
- Code: The Hidden Language of Computer Software and Hardware by Charles Petzold
- Soul of a New Machine by Tracy Kidder
Must-reads
- Goedel, Escher, Bach by Douglas Hofstedler
Productivity
- Deep Work by Cal Newport
Machine Learning (gone wrong)
- Automating Inequality
- Weapons of Math Destruction
Our core requirements will ensure that your goals of becoming a proficient software engineer are achieved by becoming an accomplished computer scientist. The core is described elsewhere in this FAQ, so let's look more into the software offerings based on the kind of work you want to do. Generally, those courses ending with an S are software courses, but there courses with other suffixes that should interest you as well.
- Software engineering
- Consider taking some or all of the following elective courses:
- 361S explores the programming stack from the assembly language level into the basic hardware of a computer. For many students, this course serves to demystify those aspects of computation that lie below the high-level programming languages (e.g., Java). Software engineers will appreciate the aspects of performance and security covered by this course.
- 365S is our version of Shimon Shocken's NAND to Tetris course. Each module of this course features an increasingly higher level of the programming stack. The course begins with simple logic gates and ends with a video game project. While each level cannotonly be covered in great depth, this course serves as great tour of the programming stack.
- Classic software component courses:
- 422S explores the fundamentals of operating systems such as Windows, Mac OS X, Linux. The coursework is currently hosted on raspberry pi kits.
- 431S examines the construction of a compiler, which is the software component that translates a high level language (such as Java) into a form that is closer to the actual operations offered on a computer. Students build a compiler for a subset of Java (called Java minus minus) that genrates bytecodes that can be executed by a Java virtual machine (JVM).
- 425S has not been offered for a while, so no description will be offered here.
- 330S is a very popular course because the techniques and tools used in this course are valuable skills for employment. The course examines the back-end of a web server, which responds to requests generated from a web browser. The course looks at php, mysql, javascript, nodejs, python, and associated libraries that enable development of web servers. Students work both individually and in groups, and the course features creative projects that allow students to apply what they have learned to problems of interest to them.
- 427S looks at cloud computing and the MapReduce paradigm, which are important for analyzing large volumes of data.
- 437S is our software engineering workshop, and it has most recently been co-taught by faculty and industry professionals. The course examines the life-cycle of a project, with students working in teams to develop minimum viable products throughout the semester. Unlike our other courses, the result is subservient to the process for creating the result. Issues of teamwork, design, testing, and documentation are central to the course. Students grapple with tradeoffs between features, resources, and cost. Historically, some groups continue to develop of their ideas into start-ups after completing this course.
- 438S is our mobile applications course, which most students call our iPhone course. The focus is on the development of applications for a mobile environment. Screen real estate is scarce, and location could be prominent for applications developed here. The course features a project in which students apply what they have learned to a problem of interest to them.
- 556A examines the interactions between humans and computers, with an emphasis on design and evaluation of designs.
- Video game development
- 450A is a course specifically geared for teaching video game development. Most recently, this course was taught by Sam and Seth Coster, co-founders of Butterscotch Shenanigans. Students in their course developed two games in the semester, and the course focused on design, viability, story, marketability, and user interface.
- 556A described above.
- 437S described above.
Our ACM chapter is one of many throughout the country, and the international ACM sponsors its ICPC programming contest every year.The international contest level is reached by teams competing successfully in local, regional, and state contests.
Washington University has performed well at these contests, having at this writing won 2 international contests. Our success is due to the students' interest in preparing and entering these contests. Our local ACM chapter is responsible for organizing and preparing for these contests. A FAQ entry exists elsewhere for ACM, and you are encouraged to contact them and become involved in the planning and competitions. Also, look for offerings of CSE 232, which is a 1-unit pass/fail course in which you can register to prepare for a contest.
While the goal of this group is winning contests, students involved in such preparation report a stronger connection with other students, with our department, and with the larger CSE community. The students have fun as they prepare, and while software engineering rarely requires solving so many problems so quickly, the experience and training builds confidence.
We count our department among many who consider that once you learn to program in any modern programming language, picking up another programming language is not so difficult.It's akin to an artist who first uses one kind of paint and then switches to a different kind of paint. There are understandably considerations in making such a switch, and it may take time to adapt to a new way of expressing yourself. The fundamental act of reducing an idea to code is very similar, no matter which programming language you use.
Nonetheless, there are computer scientists who feel strongly that certain programming languages are good (or bad) for you. Academic studies have shown that it doesn't matter which language you use initially, if success is defined to be how well you do when you continue in a program.
For those who are interested in programming languages as a subject of study, we teach CSE455S, a course that examines how programming languages are designed nadand implemented.
Otherwise, when you take a course that uses a programming language that is new to you, expect to spend some time acquainting yourself with the new syntax. Give yourself time to be able to write beautiful programs in that new language.
Our school has a long history of automated checking of the courses you have taken against the degrees you seek to complete. John Russell, who directed Engineering Student Services prior to Chris Kroeger, had a program written in FORTRAN that would produce interesting rounding results, showing you had 3.0001 units remaining to complete your degree, for example. But I digress.We then had DARS (Degree Audit and Reporting System), but that was only for SEAS.
Things are much better now. WUAchieve is a system Washington University bought to handle degree, major, and minor requirements across the university. While some programs are not yet on board, chances are you can log into WUAchieve and see what remains in the programs you have open. You can see the history of what you have completed, the courses that are currently in progress, and what remains to be accomplished for you to finish.
Follow the directions on that site, and make sure the open programs it shows for you are correct. See elsewhere in this FAQ for how to change programs.
Because there is leeway in how some courses count, students in a combined BS and MS program may not see courses counting as they wish. You should use WUAchieve as a starting point and then double check with your advisor. Once approved, the form you have on file for completing an MS degree in our departmental office is the most genuine documentation of what you need to do to finish.
The provost is the chief academic officer at a university. The schools of our institution are organized to be relatively independent. The provost looks for opportunities for advancement of teaching, scholarship, and learning across our schools. The web page for our provost Beverly Wendland shows the nature and breadth of activities associated with our provost's office.
Introductory topics
- Code: The Hidden Language of Computer Software and Hardware by Charles Petzold
- Soul of a New Machine by Tracy Kidder
Must-reads
- Goedel, Escher, Bach by Douglas Hofstedler
Productivity
- Deep Work by Cal Newport
Machine Learning (gone wrong)
- Automating Inequality
- Weapons of Math Destruction
If you are a minor or major in computer science, the good news is that employment in our industry is extremely strong. Internships are ideal settings for a company and an employee to see if there is a good fit for full-time employment. Here is some advice about preparing for an internship.
- Accumulate a portfolio of projects and other artifacts of your work in and outside of class. You can do this with a github or bitbucket account.
Be sure that the code you post from course work is private, so that you do not provide your solutions to other students and run afoul of our community standards.The portfolio serves to document your progress as a student of computer science, but it also serves as a backdrop for a conversation in which you can express your passion and interest about your work. How did you arrive at a given interface? What obstacles did you face in developing your solution? What did you learn about teamwork, algorithms, interfaces?Likewise, companies may have policies that prohibit you from publishing or disclosing code while working for them.
Be careful!
- Have a resumé handy. Have it on paper and ready to send electronically. You never know when somebody will ask, and having one current and ready conveys professionalism.
- Visit the SEAS Career Center. Your resume and other interview artifacts can be improved by interacting with advisors there.
- Attend the job fairs every semester. Even before you are ready for an internship, make it a habit to attend the job fairs, to talk with the representatives, and to talk about your work and your interests. Ask other students or your advisor about how to dress. Most companies doing computer science do not expect formal attire, but it's worth finding this out before you show up.
- Prepare for a phone or other interview.
- Much information can be found online, and it's worth reading through resources such as Cracking the Coding Interview. One student I know worked over 400 problems before she interviewed with facebook and she landed the job. That seems extreme, but such preparation serves to make you feel more confident and to help you field questions well.
If your interview is via a video chat session, be sure to dress fully for the interview. Some of our students have been asked to stand up. Crazy, but true.
- Our department's UPE chapter has been organizing mock technical interviews. Try to schedule one or two mock interviews before an actual interview. UPE is described elsewhere in this FAQ.
- Network as best you can at venues that allow you to do so. One recent student attended the Grace Hopper Conference, and landed a job as an intern for project management at Apple. Her story is inspiring because at first Apple did not respond to her resumé. However, she returned to the booth and insisted on talking with somebody because she really wanted to be considered for the job. After that conversation, she was hired on the spot.
- Establish a relationship with faculty so that they can supply letters of recommendation. There is advice elsewhere in this FAQ about that.
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
The information below is meant to be generic advice, but our faculty hope you will take interest and notice of our REU program.Many institutions offer the chance to spend part of your summer working with faculty and graduate students on research. These programs are designed to show its participants the nature of research: identifying interesting problems, formulating methods to try to solve those problems, and communicating results to diverse audiences.
While the applications for REU sits will vary, they almost all require some statement of purpose, some letters of recommendation, some record of your academic progress to date, and some idea of the projects that interest you. You are therefore advised as follows:
- Peruse the REU institution's web site and find projects and their associated faculty that interest you. The interest need not stem from extant exposure or experience in that area.
- Identify your letter writers. Reference letters should come from those who are familiar with your achievements and who can address your work ethic, potential, and suitability for the research experience. Contact those letter writers in advance of their receiving any solicitation for letters. Provide those letter writers with your statement of purpose and a current resume.
- Be sure to observe the deadlines posted for applications. Be sure to line up your letter writers well in advance of those deadlines.
While the NSF largely funding our REU programs only pays for US citizens to participate, our department has some funds that allow us to recruit and train non-US citizens in this same program.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
See recursion (yes we had to do this).
You are assigned a departmental advisor when you choose to major or minor in any of our department's programs. If you are a first major in our department, then your advisor must explicitly approve your ability to register for courses. Each semester, there is an advising period during which it is expected that you will make an appointment to meet with your advisor.While approval for registration is one subject for such meetings, you and your advisor will likely engage in conversations concerning
In truth, some students will seek their advisor's approval for registration without such meetings, and some advisors are willing to give such approval. Those students are not making best use of the resources offered by our department, so you are strongly encouraged to meet with your advisor each semester prior to registration.
- other majors or minors that might interest you
- research opportunities
- internships and job search
- difficulties you may be facing
- letters of reference for employment, graduate school, or fellowships
Your advisor can offer advice at other times as well, and if you find yourself in need of such advice, send an email to your advisor and arrange for a conversation to address any concerns you have. Some examples of situations that might trigger a conversation with your advisor are as follows:
- You are struggling in a course and are not sure how to get help.
- You are finding yourself in a difficult semester and you need to lighten your load.
- You are finding yourself with extra time available and would like to consider some activities to enrich your studies.
- You are trying to choose between multiple job or internship offers.
- You have been accused of violating the rules for academic integrity.
- You need a letter of reference.
In all of the above situations, your advisor is best able to help you if your advisor knows you well, and the best way to establish a solid relationship with your advisor is to meet with the advisor regularly, show up promptly for any meetings you have scheduled, and be as prepared as possible for such meetings.
While second majors and minors do not require explicit approval from their advisors to register, they are encouraged for all of the above reasons to meet with their advisors regularly and as needed.
Yes! Every semester this document is revised to provide up-to-date registration information.
This question is more in the area of religious studies and philosphy than computer science. It doesn't really matter in terms of your studies in computer science, but you will find that students and faculty alike can be passionate about their choice of computer.
There are various reasons why the offer from Y is more attractive to you:
- The pay for job Y may be better than X.
- Job Y may be in a location you prefer to the location of job X.
- The nature of job Y may be more in line with your career goals and interests than the nature of job X.
I will admit that when asked this question 20 years ago, I would have advised students not to abandon an accepted offer. It can burn a bridge for you, but also I thought it said something about your character, that you would renege on an accepted offer with a company expecting you to show up.
I had the opportunity to co-teach our software engineering course a few years ago, and my colleague in that activity was at that time a program manager at Google. He is now at facebook. A student asked this question of him and I was expecting an answer similar to what I would have said.
To my surprise, his response was that people in the industry are adults and can respond to this situation in reasonable ways. So there is an opening to consider abandoning an accepted offer for another one. His advice, and mine too, would be to make such a decision framed by the following considerations:
So in summary, this is possible and worth thinking through, but it's a decision that should not be made lightly.
- You owe company X an honest explanation about why are reneging on your acceptance of their offer.
By having such a conversation, you are also allowing company X to respond to the situation by offering you more pay, or by trying to find you a position better suited to your goals and interests. Sometimes the difference in position cannot be traversed, such as your interest in a start-up company when company X is not such a company. But even here, you should be able to explain your interest at this point in your career in a start-up company position.
- You should convey as best you can the profound thought you have given to this situation, and your interest in maintaining good relations with company X.
- You must accept the fact that this course of action may well burn the bridge between you and company X, no matter how considerate the conversation on both sides.
- Job location for a summer job, or even a full-time job, can be important if there is a real need for you to be in a certain place. Otherwise, I don't feel it's a good cause for abandoning an accepted job offer. If you are honest, and can explain this reason to the satisfaction of company X, then I suppose you can try, but my advice would be to try out the location and make a move subsequently.
Our school has a long history of automated checking of the courses you have taken against the degrees you seek to complete. John Russell, who directed Engineering Student Services prior to Chris Kroeger, had a program written in FORTRAN that would produce interesting rounding results, showing you had 3.0001 units remaining to complete your degree, for example. But I digress.We then had DARS (Degree Audit and Reporting System), but that was only for SEAS.
Things are much better now. WUAchieve is a system Washington University bought to handle degree, major, and minor requirements across the university. While some programs are not yet on board, chances are you can log into WUAchieve and see what remains in the programs you have open. You can see the history of what you have completed, the courses that are currently in progress, and what remains to be accomplished for you to finish.
Follow the directions on that site, and make sure the open programs it shows for you are correct. See elsewhere in this FAQ for how to change programs.
Because there is leeway in how some courses count, students in a combined BS and MS program may not see courses counting as they wish. You should use WUAchieve as a starting point and then double check with your advisor. Once approved, the form you have on file for completing an MS degree in our departmental office is the most genuine documentation of what you need to do to finish.
At the school level, SEAS has no prohibition against the same course satisfying multiple requirements. For example, if CSE131 is required by both computer science and mechanical engineering, then it counts for both by satisfying each such requirement concurrently. If a course is required for electrical engineering, and it is allowed to count toward computer science, there is again no problem at the SEAS level concerning it satisfying both programs concurrently. Some programs of study in SEAS do have rules about double counting, but there are no such rules or restrictions in computer science or computer engineering.
Each school is allowed to have its own rules concerning how courses count toward its programs of study. For example, ArtSci prohibits double counting of almost all courses, so that if a student takes discrete math within the math department (Math 310), then it can count toward a math program or toward computer science, but not both from the ArtSci perspective.However, it is up to each school to reason about whether a given course is necessary for students in its programs of study. Thus, if a student has taken Math 310 there is no reason our department would require that student to take another course (say, CSE240) in discrete math. We indicate this by waiving the discrete math requirement for that student's computer science program, by saying it has been satisfied by studies outside our department. This avoids double counting Math 310, which allows the student to use that course in a math program (or once in any program of study in ArtSci that requires or counts Math 310 as an elective).
Similarly, if a student takes an upper level math course, say Number Theory and Cryptography, we would say that the student then has 3 fewer units to satisfy for elective credit by virtue of studies outside of our department. This allows the Number Theory and Cryptography course to count within ArtSci without any problems.
The current degree requirements are listed here. Once you follow that page to a particular program, you will see a place to click to access previous years' degree requirements. You can pick any year while you are a student at Washington University, but you cannot mix or match between years. You must satisfy all of the requirements of whichever year you designate as your effective requirements year.You should visit Engineering Student Services in Lopata 303 after you have decided which year you want, so they can make sure your degree audits reflect your degree requirements.
The core courses are those courses specifically required for your major.
- Computer science first or second major (they are the same)
- Computer engineering first major (no second major available)
- The minor in computer science requires CSE131 and CSE247.
- The bioinformatics minor.
Physics used to have 4-unit first-year courses 197 and 198 that each counted as 4 units of natural science for our students. Those courses included lab work.Physics has changed their formulation to separate lecture from lab in their courses. Each 3-unit lecture course has a 1-unit lab for which a student must explicitly register. Physics 191 and 192 are the lecture courses and their labs are 191L and 192L, respectively.
Maintaining continuity in how we treat the intro physics sequence, our department will count the lecture and lab units toward your natural science requirements, even though the lab courses (191L and 192L) do not carry the natural science tag for arts and sciences.
It's really between you and your research or independent study mentor. Some students prefer credit, as it makes progress toward their degree; others prefer to be paid
Many students seek to expand or deepen their knowledge of computer science and engineering by pursuing graduate study after or in concert with their undergraduate studies. The financial assistance and incentive programs described here are written assuming you are a current Washington University undergraduate student. If you are not such a student, you can find more information about programs that are available to you here.While we encourage applications for graduate study from outside our campus, the financial assistance and incentive programs described here are not available for such students.
Our faculty conduct research to push the field of computer science and computer engineering in new, interesting, and important directions. We encourage you to conduct research with faculty
Other parts of this FAQ describe the research you might do as an undergraduate.
- to help us with our research and
- to help you decide whether you want to perform research as part of graduate studies.
At this point, you might find yourself somewhere on the spectrum of interest in graduate studies as follows:
- You like taking classes and learning more about computer science, but you are not interested in participating in research.
- In this case, the best advice is to work ahead toward the courses you need to complete a master's degree while you are an undergraduate. The requirements for those degrees can be found on these pages, and you are encouraged to take courses that count for those degrees as you are able.
Thereafter, you may stay one or more semesters to finish the master's work, and the tuition you pay may be decreased by our dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Most students find they can finish the combined undergraduate and master's work in one extra semester. Rarely, a student finds that the work can be done in the same four years as the undergraduate degree. Sometimes the work may take two extra semesters.
- You are certain you want to earn a doctorate in computer science
- In this case, you are encouraged to become involved in research with our faculty as soon as possible and develop an impressive application for doctoral graduate study.
Doctoral students in computer science (at Washington University and elsewhere) are fully funded with a stipend to support living expenses and no tuition expenses whatsoever.
Doctoral work typically takes some 5 or 6 years to complete.
- You are interested in research and a master's degree but don't want a PhD
- In this case you have the following options, but all paths here begin by establishing a research relationship with a faculty member.
- You fund yourself to continue your studies into a master's program, but complete up to 6 units of master's project or thesis credit in place of the same number of units you could earn by completing courses. As described above, your tuition may be discounted by the dean's scholarship program (see table near bottom of that page), which is based on your undergraduate cumulative GPA at Washington University.
Up to 6 units are earned as a master's project or thesis through the research you conduct with a faculty member. Faculty usually agree to such an arrangement only where the student has demonstrated interest and ability to work as a reseacher with faculty and other students.
- You are funded by a faculty member to complete your master's studies. Here it is especially important for you to have already engaged with a faculty member in research, perhaps working in a lab or with a faculty member for one or more semesters or over the summer on research.
There are currently two forms of this kind of support, which differ in terms of the time commitment made by the student for the research efforts. As stated above, these are available only for our current students and each requires recommendation by a faculty member.
- Master's Fellowship
- Think of this as some funding you can receive one semester at a time by helping a faculty member with research.
This arrangement takes place one semester at a time and is usually based on a faculty member's need for immediate help with research. For this one semester, you receive a fellowship at a level that is 50 percent of the stipend support given to doctoral students, and your tuition is discounted from its full price by 15 percent.
With mutual agreement this could be extended into subsequent semesters.
- Master of Science Research Assistantship
- Think of this as a slow (2-year) but fully funded (tuition and stipend) path to an MS degree.
You commit to being a full-time graduate student for a particular faculty member for two years, taking no more than two regular classes each semester, and devoting the rest of your time to research. Over a period of two years, you will finish the eight courses you need for the MS as well as a master's project or thesis for the other two courses needed for the degree. Your tuition is covered by the school, and you receive a research assistantship at a level that is 80 percent of the support given to PhD students.
There are high expectations here of devotion to and progress on the research. The trust that such progress would be made is developed by prior experiences with the particular faculty member, who must be suitably impressed with your work ethic, research potential, and time management to make this commitment to you. Failure to sustain progress could terminate this arrangement at the faculty member's discretion.
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
The information below is meant to be generic advice, but our faculty hope you will take interest and notice of our REU program.Many institutions offer the chance to spend part of your summer working with faculty and graduate students on research. These programs are designed to show its participants the nature of research: identifying interesting problems, formulating methods to try to solve those problems, and communicating results to diverse audiences.
While the applications for REU sits will vary, they almost all require some statement of purpose, some letters of recommendation, some record of your academic progress to date, and some idea of the projects that interest you. You are therefore advised as follows:
- Peruse the REU institution's web site and find projects and their associated faculty that interest you. The interest need not stem from extant exposure or experience in that area.
- Identify your letter writers. Reference letters should come from those who are familiar with your achievements and who can address your work ethic, potential, and suitability for the research experience. Contact those letter writers in advance of their receiving any solicitation for letters. Provide those letter writers with your statement of purpose and a current resume.
- Be sure to observe the deadlines posted for applications. Be sure to line up your letter writers well in advance of those deadlines.
While the NSF largely funding our REU programs only pays for US citizens to participate, our department has some funds that allow us to recruit and train non-US citizens in this same program.
Many of our undergraduates are involved in the research conducted by our department's faculty. It is worthwhile to consider the artifact(s) that might be produced from such research.If you are a student interested in graduate school, then the best artifact would be a published paper, even if it is co-authored. Your research advisor can mentor you concerning where and how to publish such a paper. Such papers are often jointly authored with other students and your research advisor. While it's not a document you author solely on your own, the value of having it pass muster with a conference or journal review process is high.
A senior thesis is written solely by you. If you wish to do this instead or in addition to publishing a paper externally, then sign up for CSE
499 in the section associated with your research advisor. Most students favor the published paper or a presented project over writing a thesis, but the choice is up to you and your research advisor.
How is such a thesis recorded in our records?
Long ago before the advent of our current information infrastructure, undergraduates who completed a thesis and who had at least a certain GPA (3.7 perhaps) would graduate with distinction and that phrase was printed on their diplomas. The university says we have lost the ability to do that, so instead of a designation on your diploma, we use the milestones feature of our current information system and record a senoir thesis as such a milestone. It thus shows up on your transcript rather than on your diploma, which ultimately might be more useful for you.
The requirements for our minor are CSE131 (Introduction to Computer Science), CSE247 (Algorithms and Data Structures, and then three courses of your choosing that end with S, T, M, A, or E. You may also take CSE132, CSE240, or CSE347 and have it count toward the minor. At least 4 of your 5 courses must be traditional classroom courses offered by our department. One of your 5 courses can be outside the traditional classroom, as detailed here.
There is a different answer for study abroad, so please look there for information about that.Computer science and computer engineering are broad areas of study, and we recognize this by looking for courses outside our department that we can count toward your major or minor programs.On the other hand, it would not make sense for a student to take most of his or her courses outside our department and still earn a CSE major or minor from our department. We therefore have the following residency requirement for our department's elective credits:
How should you think about spending your 3 or 6 units?
- If you are earning a major, then all but two electives (6 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- If you are earning a minor, then all but one elective (3 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- You can take on independent study with faculty. Details of that are covered elsewhere.
- You can take a course from the approved list of courses below.
- You can arrange by exception to count a course that doesn't appear in our list below. That conversation starts with your advisor and ends with the department's associate chair.
The list of courses TBD
Note that study abroad units count as if resident: see elsewhere in this FAQ for information about study abroad.To earn a degree from a particular university, school, or department, each will insist that you spend a certain amount of time taking its courses.
- Students earning a degree from Washington University must have at least 60 units of credit earned at our university.
- Studenst in SEAS must have at least 30 units at the 200 level or above earned from our school.
- The residency requirements for our department are articulated elsewhere in this FAQ.
We describe elsewhere in this FAQ our department's residency requirements, which limits how many courses you can take outside our department and still earn an major or minor from our department.Those rules ensure that students graduating from our programs have taken a sufficiency of courses from our department.
Most often, students seek transfer of elective courses from outside our department. Courses such as game theory, numerical analysis, and operations research are offered by other departments but not by our department: we have no courses that cover those topics. Subject to our residency requirement, we count certain courses toward our students' electives as described elsewhere in this FAQ.
But what about core courses? Such courses are offered quite frequently by our department and we rarely get requests to consider courses outside our department to count toward our students' core requirements.
Subject still to our residency requirements, our department will consider allowing our students to take a core course outside our department, almost certainly at another university. Here we look not only for appropriate rigor but also to determine that the outside course is truly a good match for what we teach in a core course. We look for a close match because many courses in our department depend on the material taught in core courses. We want to ensure that students can make progress in our programs, prepared to take courses by having the appropriate prerequisite material.
A notable exception is that we will waive or transfer outside credit for our introductory course, CSE131, without counting that against any residency requirement in our department. There again we look for a close match to what we teach in that course.
Study abroad is treated differently, and you should look elsewhere in this FAQ for information about how courses count when studying abroad.Otherwise, there are two issues that must be considered:
Here is a step-by-step procedure for applying for approval of transfer course credits.
- Our university, our school, and our department each has a resdiency requirement, which you can find elsewhere in this FAQ. There is thus a limit on the number of outside credits you can apply to your Washington University programs.
- Is the course deemed acceptable for transfer? The process for that decision begins with your four-year advisor, but the decision is usually made by the department closest in area to the subject matter of the course. For example, the merit of a computer science course would be evaluated by the computer science department.
Our school maintains this database of outside courses already approved for transfer credit.You should check this database before requesting approval.
Also the database may help you shop around for already approved courses from a geographic area of interest.
If you are unsatisfied with your performance in a given course, and if you feel that another experience with that material is necesssary, you can retake that course. This should be considered carefully and with the advice of your departmental and 4-year advisors.Except as noted below, retaking a course causes the following actions on your transcript and for your GPA computation:
However, take careful note of the following:
- The previous enrollment in the course is annotated with an R to show that the course was replaced by a subsequent enrollment in the same course. So, the prior enrollment in the course persists on your transcript. The grade earned in that prior enrollment is also shown. If you withdrew from the course, then the W persists as well.
- The new grade replaces the previous grade in terms of GPA computation. This is true even if the new grade is worse than the previous grade.
- If in your prior enrollment you were found in violation of academic integrity policies for that course, then your prior grade may not be replaced by the new grade. Each school currently makes its own decision about this.
- University rules concerning plagiarism apply also to retakes of the same course. Those rules do not allow you to submit the same work for credit in two courses, even if one of those courses is a retake of the other, without the explicit permission of the instructor of both courses.
You cannot repeat a course and submit any of the same work again for credit, without the explciit approval of both instances of that course.
You should first identify the source of the dissatisfaction:
- Was the point tally on an assignment computed incorrectly?
- Do you believe you had a correct response or solution but your grade indicated otherwise?
- Did you miss a deadline for an assignment? Are seeking to turn in work late?
- Did you miss turning in an assignment because of school-, athletic-, or career-related events?
Next you should consider the following principles in terms of addressing your concerns:
- You should address any expected absences before the semester begins. Athletic events, conferences, job interviews—all of these are important to your success and trajectory as a student at Washington University. Faculty are generally supportive of such absences, but to be certain you need to have the appropriate conversation as soon as possible.
Do not rely on a TA's response to such questions or issues. You must have this conversation with the course's instructor.
- Some of our courses, especially the larger ones, feature late coupons or dropped grades. In those courses, you should expect to apply coupons or dropped grades to unexpected as well as expected absences.
- Unexpected absences can happen, and these usually take the form of extended illness or loss of a friend or family member. In such cases, you should contact your school's academic dean (e.g., Chris Kroeger for SEAS). The dean will then send faculty an email explaining the circumstances and asking for accommodation.
- You should address the issue you have with the grading of an assignment as soon as possible after you receive the assignment and its grade. If you wait until the end of the semester, thinking that at that point the grade change will benefit your final grade in the course, you are likely to be turned away. This has to do with the justice of your overall performance evaluation in the course (see below).
Some important caveats:
- Where do you address a grading issue?
- Generally you should start with the staff of your course who issued the grade, working your way up the chain as necessary. That chain from top to bottom is:
For example, if the grade is for a lab assignment that was graded by any TA, then you would start with the course's head TA or head grader. If the grade is for an exam that the instructor graded, then begin with the instructor unless instructed otherwise.
- The school's academic dean
- The course's department's associate chair
- The instructor(s) of the course
- A head TA or head grader
- What steps do you take?
- First check the courses's web pages or other documentation and look for instructions about how to request a regrade of submitted work. Follow those instructions carefully. If no such instructions are available, then:
- Write an email to the person who should field your request (see above). In that email provide as much information as possible, but you can also request a meeting during that person's office hours. If you are unable to make that person's office hours, provide specific times for the next 5 business days during which you are available.
The idea here is to minimize effort on the side of the person receiving your request. If you can be thorough, the matter can be handled expeditiously.
- Many faculty will regrade an entire assignment rather than just the place where you feel you received insufficient credit. In some cases, the result may be a lowering of your grade. See the information below on justice.
- Students have been caught cheating by changing their work between receiving its grade and submitting it for regrading.
This violation of academic integrity is easy to prove and is met with harsh consequences. You will likely receive an F in the course and the infraction will be retained in the permanent record of your work at the university. Look elsewhere in this FAQ for information about academic integrity and community standards.Do not make any marks or changes to work if you intend to resubmit for regrading.Justice Faculty, staff, and students are interested in justice and fairness in grading. This means that the grade given on submitted work fairly evaluates the student's work. Where possible, instructors provide rubrics as to how an assignment will be graded. Some students receive a poor grade for simply not reading the rubric and following an assignment's required instructions. A student truly interested in justice would bring any grading error to the attention of the instructor, whether it benefits the student or not. Instructors are sometimes approached by students who point out grading mistakes not in their favor. Instructors are also approached by students near or at the end of the semester, asking for grade reconsiderations or extra work those students might do to improve their grade. Justice requires that instructors not make opportunities available to some students that are not available to all students. Requests along those lines betray a student's intent and are not recommended.
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
The information below is meant to be generic advice, but our faculty hope you will take interest and notice of our REU program.Many institutions offer the chance to spend part of your summer working with faculty and graduate students on research. These programs are designed to show its participants the nature of research: identifying interesting problems, formulating methods to try to solve those problems, and communicating results to diverse audiences.
While the applications for REU sits will vary, they almost all require some statement of purpose, some letters of recommendation, some record of your academic progress to date, and some idea of the projects that interest you. You are therefore advised as follows:
- Peruse the REU institution's web site and find projects and their associated faculty that interest you. The interest need not stem from extant exposure or experience in that area.
- Identify your letter writers. Reference letters should come from those who are familiar with your achievements and who can address your work ethic, potential, and suitability for the research experience. Contact those letter writers in advance of their receiving any solicitation for letters. Provide those letter writers with your statement of purpose and a current resume.
- Be sure to observe the deadlines posted for applications. Be sure to line up your letter writers well in advance of those deadlines.
While the NSF largely funding our REU programs only pays for US citizens to participate, our department has some funds that allow us to recruit and train non-US citizens in this same program.
Take a look here.
This question presumes you are in one school and are thinking about transferring to another.Why would you want to do such a thing?
Some programs (e.g., computer science and math) offer a first or second major, giving you the following options:
Where students have a choice of first or second major, the considerations students must use in choosing their school usually pertain to the requirements of the school outside of the main program of study. For example, you can earn a computer science first or second major, and the program requirements are the same for the computer science portion. If you do this as a first major, then you must satisfy SEAS distribution requirements. If you do this as a second major, then you must satisfy your primary school's distribution requirements.
- You earn a major in that area of study as a first major, in which case that department's school is your primary school. If you are a first major in computer science or computer engineering, SEAS is your primary school.
- You earn a major in that area of study as a second major, in which case you must have some other major as your first major. If you are primarily a math major and you are earning a second major in computer science, then ArtSci is your primary school.
Thus, the decision of school should be made by thinking about all of the programs (majors and minors) you wish to complete, and then finding the best fit. That fit may be based on the requirements of a particular school, the flexibility it offers to complete programs outside of that school, and the advising and other support you receive.
CSE and SEAS aim to provide you the maximum flexibility in your studies across the university, but your best option will depend on your particular situation. You are encouraged to consider all options and discuss them with your advisors and other mentors.
It is helpful to begin this exploration with your academic and 4-year advisors, but you should also talk with other students, in your current and potential future school, to get as much input as possible to make your decision.
Generally those who graduate from our department do one of the following:
- Obvious tech job, such as Google, Microsoft, facebook, etc.
- Non-obvious tech job, such as Wolverine, Epic, Union Pacific Railroad
- Start-up (often staying in St. Louis!)
- Consulting such as Bain, McKinsey, etc.
- Graduate school
This question presumes you are in one school and are thinking about transferring to another.Why would you want to do such a thing?
Some programs (e.g., computer science and math) offer a first or second major, giving you the following options:
Where students have a choice of first or second major, the considerations students must use in choosing their school usually pertain to the requirements of the school outside of the main program of study. For example, you can earn a computer science first or second major, and the program requirements are the same for the computer science portion. If you do this as a first major, then you must satisfy SEAS distribution requirements. If you do this as a second major, then you must satisfy your primary school's distribution requirements.
- You earn a major in that area of study as a first major, in which case that department's school is your primary school. If you are a first major in computer science or computer engineering, SEAS is your primary school.
- You earn a major in that area of study as a second major, in which case you must have some other major as your first major. If you are primarily a math major and you are earning a second major in computer science, then ArtSci is your primary school.
Thus, the decision of school should be made by thinking about all of the programs (majors and minors) you wish to complete, and then finding the best fit. That fit may be based on the requirements of a particular school, the flexibility it offers to complete programs outside of that school, and the advising and other support you receive.
CSE and SEAS aim to provide you the maximum flexibility in your studies across the university, but your best option will depend on your particular situation. You are encouraged to consider all options and discuss them with your advisors and other mentors.
It is helpful to begin this exploration with your academic and 4-year advisors, but you should also talk with other students, in your current and potential future school, to get as much input as possible to make your decision.
The short answer is you almost certainly want a second major and not a second degree. The intrepid can find the whole story below.At Washington University, a degree is the primary unit of recognition conferred by a school (such as SEAS or ArtSci) on a student at commencement, indicating that a student has completed one or more programs of study in that school. Within a given school, students can complete multiple majors. Moreover, many programs (and computer science is anong them) have second majors which allow students to study disciplines outsisde their primary major. A student's transcript indicates all of the majors, first and second, that the student has completed.
To make sense of this, it is useful to think of a degree and a primary major as coupled: a student studies a primary major in his or her school (SEAS or ArtSci for example) and earns a degree from that school. The rules governing the number and types of courses that must be taken for graduation are drawn from the school in which a student has a primary major.
A second major brings the burden only of the subject itself, without incurring distribution and other requirements of any school. Thus, a second major in computer science may be earned by students who are primarily situated in any school (including SEAS), but the courses needed to complete the second major are dictated by the second major itself, and not by the school.
Thus, most students can be described as follows. The student is primarily situated in some school and pursuing a primary major in that school. That same student may be completing second majors in departments and programs across the university. Each such second major has its own requirements, but they do not carry any associated school requirements beyond what the student must complete for his or her primary major. Here are some examples:
- Alice's primary major is electrical engineering, which situates her in SEAS. Alice would like to earn a second major in computer science. She does this by looking at the web page for the second major, by adding the second major to her programs of study using WebSTAC, and by consulting with her second major advisor as needed. That advisor does not need to approve Alice for registration, but serves as needed to support Alice in her studies of computer science.
- Bob's primary major is economics, which situates him in the College of Arts and Sciences. Bob would like to earn a second major in computer science, and he follows the same steps Alice did to enroll in the second major and to secure an advisor for those studies. Because Bob is primarily in the College of Arts and Sciences, their rule of 3 restriction applies, which means he would not be allowed to add the second major if the sum of his primary majors, second majors, and minors would exceed three. If that is the case, Bob then considers transferring into the School of Engineering and Applied Sciences, which has no rule of three restriction.
Then what is a second degree? First let me explain that the distinction between a second degree and a second major is almost impossible for people outside our walls to discern. So if you are satisfied with doing a second major, you need not read on. Still here? A second degree acts as if you were also primary in the school of your second degree. Let's return to Alice and Bob.
- Alice, already a SEAS student, wants a degree in electrical engineering and also a degree in computer science. She must read the rules for multiple degrees in the bulletin where she will discover she needs more resident credit in SEAS than if she had chosen a second major. She most likely decides this isn't worth it because she can simply list both majors on her resume, and the difference between the second major and a second degree is difficult to explain.
- Bob is even in worse shape should he choose the second degree. Because he is in ArtSci, he would have to complete the distribution requirements of both schools to earn both degrees.
The short answer is you almost certainly want a second major and not a second degree. The intrepid can find the whole story below.At Washington University, a degree is the primary unit of recognition conferred by a school (such as SEAS or ArtSci) on a student at commencement, indicating that a student has completed one or more programs of study in that school. Within a given school, students can complete multiple majors. Moreover, many programs (and computer science is anong them) have second majors which allow students to study disciplines outsisde their primary major. A student's transcript indicates all of the majors, first and second, that the student has completed.
To make sense of this, it is useful to think of a degree and a primary major as coupled: a student studies a primary major in his or her school (SEAS or ArtSci for example) and earns a degree from that school. The rules governing the number and types of courses that must be taken for graduation are drawn from the school in which a student has a primary major.
A second major brings the burden only of the subject itself, without incurring distribution and other requirements of any school. Thus, a second major in computer science may be earned by students who are primarily situated in any school (including SEAS), but the courses needed to complete the second major are dictated by the second major itself, and not by the school.
Thus, most students can be described as follows. The student is primarily situated in some school and pursuing a primary major in that school. That same student may be completing second majors in departments and programs across the university. Each such second major has its own requirements, but they do not carry any associated school requirements beyond what the student must complete for his or her primary major. Here are some examples:
- Alice's primary major is electrical engineering, which situates her in SEAS. Alice would like to earn a second major in computer science. She does this by looking at the web page for the second major, by adding the second major to her programs of study using WebSTAC, and by consulting with her second major advisor as needed. That advisor does not need to approve Alice for registration, but serves as needed to support Alice in her studies of computer science.
- Bob's primary major is economics, which situates him in the College of Arts and Sciences. Bob would like to earn a second major in computer science, and he follows the same steps Alice did to enroll in the second major and to secure an advisor for those studies. Because Bob is primarily in the College of Arts and Sciences, their rule of 3 restriction applies, which means he would not be allowed to add the second major if the sum of his primary majors, second majors, and minors would exceed three. If that is the case, Bob then considers transferring into the School of Engineering and Applied Sciences, which has no rule of three restriction.
Then what is a second degree? First let me explain that the distinction between a second degree and a second major is almost impossible for people outside our walls to discern. So if you are satisfied with doing a second major, you need not read on. Still here? A second degree acts as if you were also primary in the school of your second degree. Let's return to Alice and Bob.
- Alice, already a SEAS student, wants a degree in electrical engineering and also a degree in computer science. She must read the rules for multiple degrees in the bulletin where she will discover she needs more resident credit in SEAS than if she had chosen a second major. She most likely decides this isn't worth it because she can simply list both majors on her resume, and the difference between the second major and a second degree is difficult to explain.
- Bob is even in worse shape should he choose the second degree. Because he is in ArtSci, he would have to complete the distribution requirements of both schools to earn both degrees.
You are assigned a departmental advisor when you choose to major or minor in any of our department's programs. If you are a first major in our department, then your advisor must explicitly approve your ability to register for courses. Each semester, there is an advising period during which it is expected that you will make an appointment to meet with your advisor.While approval for registration is one subject for such meetings, you and your advisor will likely engage in conversations concerning
In truth, some students will seek their advisor's approval for registration without such meetings, and some advisors are willing to give such approval. Those students are not making best use of the resources offered by our department, so you are strongly encouraged to meet with your advisor each semester prior to registration.
- other majors or minors that might interest you
- research opportunities
- internships and job search
- difficulties you may be facing
- letters of reference for employment, graduate school, or fellowships
Your advisor can offer advice at other times as well, and if you find yourself in need of such advice, send an email to your advisor and arrange for a conversation to address any concerns you have. Some examples of situations that might trigger a conversation with your advisor are as follows:
- You are struggling in a course and are not sure how to get help.
- You are finding yourself in a difficult semester and you need to lighten your load.
- You are finding yourself with extra time available and would like to consider some activities to enrich your studies.
- You are trying to choose between multiple job or internship offers.
- You have been accused of violating the rules for academic integrity.
- You need a letter of reference.
In all of the above situations, your advisor is best able to help you if your advisor knows you well, and the best way to establish a solid relationship with your advisor is to meet with the advisor regularly, show up promptly for any meetings you have scheduled, and be as prepared as possible for such meetings.
While second majors and minors do not require explicit approval from their advisors to register, they are encouraged for all of the above reasons to meet with their advisors regularly and as needed.
If you are a primary major in computer science, then you have two kinds of course obligations you must fulfill:A second major need only do the first set of courses, and the requirements for the second major are found here. The careful reader will note that the computer science course requirements for both first and second majors are identical.
- Some courses are required for the computer science aspect of your primary major in computer science.
- Some courses are required because, as a primary major in computer science, you are also primarily situated in SEAS. This brings obligations of coursework you must do that is outside of what the computer science part of your studies require.
Thus, our department supports students saying they have majored in computer science whether they have done so by primary or by second major.
Note that a second major in computer science must be a first major in some school. The rules and requirements of that school and that student's first major must be followed to graduate from Washington University.
You can't: we don't offer a second major in computer engineering. May we suggest a second major in computer science, where you focus on computer engineering courework? Or perhaps you would like to make computer engineering your primary major?
This is a great question and you should ask for advice on this topic from all fronts: your four-year advisor, your departmental advisor, your friends and colleagues.A great advantage of being a student at Washington University is the large breadth of topics covered by our faculty. You can and you should take courses outside your main interests to become a more educated, well rounded, and balanced student. We hear many stories from our students about the course they took to satisfy some distribution requirement that truly changed their thinking, encouraging them to take on a new minor or major, or even reshaping their career goals.
In truth, it's hard to predict which course might be life-changing for you, but here are some ideas:
We also hear that as much as the material might interest a student, the passion, expertise, and engagement of the professor teaching the course matters greatly. You might look for professors who excel at teaching by reading course evaluations using
- How do you like spending your free time?
- Do you have artistic or musical inclinations?
- Have you thought about acting or production of plays or musicals?
- Is there a culture or country you would like to explore?
.
- our new system (in use since 2016) or
- the old one.
Another way students look at this question is to see what it would take to complete a major or minor in program outside CSE given what they take to earn their CSE major or minor. For example, many students find themselves close to completing a program in math, electrical engineering, or systems sciences as they finish coursework for their CSE major or minor.
Here is the document and here is the sheet with upper level courses that count at present.If you don't see a course on the upper-level list, then it could be for one of these reasons:
The CS+Math program is also available as a second major through the McKelvey School of Engineering. Second majors are available to any student from any school on campus.
- It should be there but we haven't thought to put it there. So talk with us about that. We'd like to improve the list. You should contact the associate chair in the department hosting your CS+Math studies (Computer Science and Engineering, or Math).
- It's not in the spirit of CS+Math. Courses like CSE132, CSE332S are interesting and useful computer science courses but don't live at the intersection of CS and Math.
The CS+Math major is designed to be the same load as any single major. For example, a first major in computer science requires 14 courses not including the calculus sequence. The CS+Math major has the same number of courses excluding the calculus sequence. It is slightly heavier than a math major.The reason for its efficiency is exactly the strong intersection in these two departments' fields of study.
Students in computer science with an interest in theory or data analytics will find this program attractive. Students in math who want skills and applications of their studies in math will similarly be drawn to this program.
The Math department has determined that taking their honors math courses should count as follows in terms of our department's requirements:
Math 203 Math 204 CSE 240
or
Math 310Math 233 and Math 309 You can't take Math 204 without first taking Math 203
The answer here depends on the courses in computer science you wish to take and the other majors or minors you are completing at the university.ESE 326 is our school's course in probability and statistics. It's a great course and you are welcome to use that to satisfy our requirement.
But if you are a major or minor outside our school, you should consider other departments' probability/statistics offerings, which we count as follows:
- Students studying Math may be required to take Math 3200, which we count.
- If you are considering a program in the Olin Business School, most of those require QBA 120 and QBA 121. If you take both of those courses, then Our department considers your probability/statistics requirement satsified.
- If you are considering a major or minor in Psychology, you may be taking Pysch 300, which we count.
In cases where the course you take is outside our school, look elsewhere in this FAQ for double counting to learn how that is handled.Another important consideration is to think about the courses you want to take in computer science. Which topics do those courses require and which probability/statisics courses cover those topics? Here is a table to help you make an informed decision:
TBD
Many of our undergraduates are involved in the research conducted by our department's faculty. It is worthwhile to consider the artifact(s) that might be produced from such research.If you are a student interested in graduate school, then the best artifact would be a published paper, even if it is co-authored. Your research advisor can mentor you concerning where and how to publish such a paper. Such papers are often jointly authored with other students and your research advisor. While it's not a document you author solely on your own, the value of having it pass muster with a conference or journal review process is high.
A senior thesis is written solely by you. If you wish to do this instead or in addition to publishing a paper externally, then sign up for CSE
499 in the section associated with your research advisor. Most students favor the published paper or a presented project over writing a thesis, but the choice is up to you and your research advisor.
How is such a thesis recorded in our records?
Long ago before the advent of our current information infrastructure, undergraduates who completed a thesis and who had at least a certain GPA (3.7 perhaps) would graduate with distinction and that phrase was printed on their diplomas. The university says we have lost the ability to do that, so instead of a designation on your diploma, we use the milestones feature of our current information system and record a senoir thesis as such a milestone. It thus shows up on your transcript rather than on your diploma, which ultimately might be more useful for you.
Our core requirements will ensure that your goals of becoming a proficient software engineer are achieved by becoming an accomplished computer scientist. The core is described elsewhere in this FAQ, so let's look more into the software offerings based on the kind of work you want to do. Generally, those courses ending with an S are software courses, but there courses with other suffixes that should interest you as well.
- Software engineering
- Consider taking some or all of the following elective courses:
- 361S explores the programming stack from the assembly language level into the basic hardware of a computer. For many students, this course serves to demystify those aspects of computation that lie below the high-level programming languages (e.g., Java). Software engineers will appreciate the aspects of performance and security covered by this course.
- 365S is our version of Shimon Shocken's NAND to Tetris course. Each module of this course features an increasingly higher level of the programming stack. The course begins with simple logic gates and ends with a video game project. While each level cannotonly be covered in great depth, this course serves as great tour of the programming stack.
- Classic software component courses:
- 422S explores the fundamentals of operating systems such as Windows, Mac OS X, Linux. The coursework is currently hosted on raspberry pi kits.
- 431S examines the construction of a compiler, which is the software component that translates a high level language (such as Java) into a form that is closer to the actual operations offered on a computer. Students build a compiler for a subset of Java (called Java minus minus) that genrates bytecodes that can be executed by a Java virtual machine (JVM).
- 425S has not been offered for a while, so no description will be offered here.
- 330S is a very popular course because the techniques and tools used in this course are valuable skills for employment. The course examines the back-end of a web server, which responds to requests generated from a web browser. The course looks at php, mysql, javascript, nodejs, python, and associated libraries that enable development of web servers. Students work both individually and in groups, and the course features creative projects that allow students to apply what they have learned to problems of interest to them.
- 427S looks at cloud computing and the MapReduce paradigm, which are important for analyzing large volumes of data.
- 437S is our software engineering workshop, and it has most recently been co-taught by faculty and industry professionals. The course examines the life-cycle of a project, with students working in teams to develop minimum viable products throughout the semester. Unlike our other courses, the result is subservient to the process for creating the result. Issues of teamwork, design, testing, and documentation are central to the course. Students grapple with tradeoffs between features, resources, and cost. Historically, some groups continue to develop of their ideas into start-ups after completing this course.
- 438S is our mobile applications course, which most students call our iPhone course. The focus is on the development of applications for a mobile environment. Screen real estate is scarce, and location could be prominent for applications developed here. The course features a project in which students apply what they have learned to a problem of interest to them.
- 556A examines the interactions between humans and computers, with an emphasis on design and evaluation of designs.
- Video game development
- 450A is a course specifically geared for teaching video game development. Most recently, this course was taught by Sam and Seth Coster, co-founders of Butterscotch Shenanigans. Students in their course developed two games in the semester, and the course focused on design, viability, story, marketability, and user interface.
- 556A described above.
- 437S described above.
Our core requirements will ensure that your goals of becoming a proficient software engineer are achieved by becoming an accomplished computer scientist. The core is described elsewhere in this FAQ, so let's look more into the software offerings based on the kind of work you want to do. Generally, those courses ending with an S are software courses, but there courses with other suffixes that should interest you as well.
- Software engineering
- Consider taking some or all of the following elective courses:
- 361S explores the programming stack from the assembly language level into the basic hardware of a computer. For many students, this course serves to demystify those aspects of computation that lie below the high-level programming languages (e.g., Java). Software engineers will appreciate the aspects of performance and security covered by this course.
- 365S is our version of Shimon Shocken's NAND to Tetris course. Each module of this course features an increasingly higher level of the programming stack. The course begins with simple logic gates and ends with a video game project. While each level cannotonly be covered in great depth, this course serves as great tour of the programming stack.
- Classic software component courses:
- 422S explores the fundamentals of operating systems such as Windows, Mac OS X, Linux. The coursework is currently hosted on raspberry pi kits.
- 431S examines the construction of a compiler, which is the software component that translates a high level language (such as Java) into a form that is closer to the actual operations offered on a computer. Students build a compiler for a subset of Java (called Java minus minus) that genrates bytecodes that can be executed by a Java virtual machine (JVM).
- 425S has not been offered for a while, so no description will be offered here.
- 330S is a very popular course because the techniques and tools used in this course are valuable skills for employment. The course examines the back-end of a web server, which responds to requests generated from a web browser. The course looks at php, mysql, javascript, nodejs, python, and associated libraries that enable development of web servers. Students work both individually and in groups, and the course features creative projects that allow students to apply what they have learned to problems of interest to them.
- 427S looks at cloud computing and the MapReduce paradigm, which are important for analyzing large volumes of data.
- 437S is our software engineering workshop, and it has most recently been co-taught by faculty and industry professionals. The course examines the life-cycle of a project, with students working in teams to develop minimum viable products throughout the semester. Unlike our other courses, the result is subservient to the process for creating the result. Issues of teamwork, design, testing, and documentation are central to the course. Students grapple with tradeoffs between features, resources, and cost. Historically, some groups continue to develop of their ideas into start-ups after completing this course.
- 438S is our mobile applications course, which most students call our iPhone course. The focus is on the development of applications for a mobile environment. Screen real estate is scarce, and location could be prominent for applications developed here. The course features a project in which students apply what they have learned to a problem of interest to them.
- 556A examines the interactions between humans and computers, with an emphasis on design and evaluation of designs.
- Video game development
- 450A is a course specifically geared for teaching video game development. Most recently, this course was taught by Sam and Seth Coster, co-founders of Butterscotch Shenanigans. Students in their course developed two games in the semester, and the course focused on design, viability, story, marketability, and user interface.
- 556A described above.
- 437S described above.
The answer here depends on the courses in computer science you wish to take and the other majors or minors you are completing at the university.ESE 326 is our school's course in probability and statistics. It's a great course and you are welcome to use that to satisfy our requirement.
But if you are a major or minor outside our school, you should consider other departments' probability/statistics offerings, which we count as follows:
- Students studying Math may be required to take Math 3200, which we count.
- If you are considering a program in the Olin Business School, most of those require QBA 120 and QBA 121. If you take both of those courses, then Our department considers your probability/statistics requirement satsified.
- If you are considering a major or minor in Psychology, you may be taking Pysch 300, which we count.
In cases where the course you take is outside our school, look elsewhere in this FAQ for double counting to learn how that is handled.Another important consideration is to think about the courses you want to take in computer science. Which topics do those courses require and which probability/statisics courses cover those topics? Here is a table to help you make an informed decision:
TBD
Our department and school offer many incentives for you to stay and continue your studies by earning a master's degree. Those are covered elsewhere.But how do you decide whether to stay or go?
Try the following Gedankenerfahrung:
- Imagine that are going to stay one or two semesters to complete your master's degree. The number of semesters you need depends on credit you have accumulated and how many courses you would take a semester.
- How do you feel about staying for that extra time to complete the master's degree? Remember to factor in how you generally feel each semester about coming back, and how you feel once you are here.
- If on balance, you feel neutral to positive about coming back for the studies, then you should probably do the master's degree. It typically commands a higher starting salary, it allows you to do a project with faculty, and students are generally very satisifed with their advanced studies.
- If on balance, you would rather schedule root canal than take another class, then you are probably not in the frame of mind to continue your studies. Employment is quite strong and you are advised to take a job and evaluate your feelings about further education in six months or a year.
Many of our students are interested in studying abroad, and plans for such studies typically begin at least a year before travel.Our department is eager to work with you to select a destination and to help you plan courses that count toward graduation. It is difficult to find a destination that doesn't offer computer science courses, but your plans should include destination-specific coursework to align with your interests of studying in that location.
There is also much work you have to do, to identify where you want to go, to line up reference letters, and to submit the appropriate applications. Here is an overview of how all of this works:
- Take a look at the university's study abroad information.
- Engage your four-year advisor and your departmental advisor as early as practicable in a conversation to identify possible locations. We have locations where students frequently study abroad, but you do not need to limit yourelf to those destinations.
- Most students pick a semester their junior year to study abroad, but some students will study abroad as sophomores or seniors.
- If your destination's language of instruction is not English, then you must have 3rd year proficiency or better in the language of instruction. For some countries, English is not their national language, but some of their universities may offer instruction in English:
- Your four-year advisor in your primary school can put you in touch with the processes for your school's study abroad arrangements:
- Melanie Osborn for SEAS programs
- here for the ArtSci departments
- Business?
- By university mandate, all courses you take while studying abroad
- count as resident at Washington University
- appear as pass/fail on your transcript
- However, it is up to a given department to decide whether a course taken while studying abraod counts toward its requirements. It's the same situation if you were to take a course at some other university in this country. Look elsewhere in this FAQ for information about transfer courses.
Our department is in particular very flexible in the way it counts study-abroad courses toward your minor or major.- The departmental advisors for your major and minor programs can help identify particular courses that will count as you study abroad. Some guidelines for choosing courses are as follows:
- Look for courses in an area that is not covered by our department, our school, or our university.
- Look for courses that complement the country or environment in which you will be studying. These may include topics of geographical, political, or cultural interest.
- If you are concerned about a required course that is not offered frequently, look for a course that can fulfill that requirement.
- The semester before you go abroad, you are required to take L99 101: Study Abroad 101. The course provides useful information generally for your studies, and it has destination-specific sessions and activities for you.
Mostly where there is oxygen.The latest information given to us shows students showing in the following places:
- Australia
- University of Queensland
- China
- Hong Kong Univesity of Science and Technology
- Tsinghua Unviersity
- England
- Goldsmiths London
- King's College London
- University College London
- Germany
- RWTH Aachen University
- Hungary
- AIT-Budapest
- Ireland
- University College Dublin
- Trinity College Dublin
- Israel
- The Technion
- IDC
- New Zealand
- University of Auckland
- Scottland
- University of Edinburgh
- Spain
- Carlos III University in Madrid
- Barcelona
- Netherlands
- Vrije University
- Denmark
- DIS in Copenhagen
For more information, please contact:
- Requirements
- Minimum 3.0 GPA, but some programs require stronger grades
- Academic approval
- Enrollment in Study Abroad 101 semester prior to departure
- With compelling reason and strong support of advisors, students can petition to participate in non-WU approved courses or programs
- Helpful Sites
- Deadlines
Admission notification varies by program
- February 1: Fall Semester, Entire Year Programs and Summer
- February 15: WU approved Summer programs
- May 1: Spring semester
- Financial Considerations
- Students pay WU tuition for semester/year programs or direct costs for summer programs. Housing is usually paid directly to the school aboard or program.
Melanie Osborn, Engineering Student Services Lopata Hall, room 303 935-8013 or osborn@wustl.edu
First, please take all the steps recommended by reputable scientists to keep yourself, your family, and your friends safe.A number of summer opportunities have changed because of the spread of the Novel Coronavirus and the associated disease it can cause, COVID-19. Some of those internships have moved to remote presence, and others may have been rescinded.
In any case, if you find yourself with some extra time this summer, here are some suggestions of what you might do:
- We have a number of courses being offered this summer by our department. They will all be taught online. Please consult the course listings to see what is offered. You may be interested in
- Taking some courses. These could help satisfy some requirements.
- TAing some of those courses. We can use your help and can pay you $10 an hour.
- We are allowing online courses this summer to count for your studies in our department, school, and university. Courses that already are approved as counting will count even if taught online. The process for petitioning for not-yet-approved courses is the same as usual.
The department has published the list of courses that already count for your consideration. We don't know which of those will be offered online this summer.
A similar list for math courses can be found here.
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An
- You might find a job tutoring students online for our courses or for courses at high schools or colleges elsewhere.
- There may be international opportunities to participate in remote research or development internships, or to take courses from schools abroad.
- There are many open-source projects and associated communities. An idea for you here is to take a hobby or interest, find an associated open-source project, and investigate features the associated community has up-voted. Start small with a simple feature, develop the feature, and contribute it to the community. You will get some realistic feedback about your coding style and implementation, and you will contribute to a project of mutual interest between yourself and others.
You complete this summer school enrollment form found on our summer school website.
Some of our courses would like your help with grading exams and other work, even if you are not currently a TA for a particular course needing your help. When the TA draft is published, we ask if you would like to be part of EGRT, the Emergency Grading Response Team.If you are hired to be a TA for any course, then we can also use your help with EGRT. We solicit your help as-needed by an email asking for your help on a particular day at a particular time. You don't need to have taken the class in most cases. You are given a grading rubric and surrounded by people who can help answer any questions you have.
We try to recruit as many TAs for grading as needed to keep the grading session to two hours. In this way we don't impose too much on your time.
We can't hire you for EGRT unless you are otherwise employed as a TA. The pay is the standard TA pay, currently $10 an hour.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
We ask our students in our major and minor programs, and often those students who recently took a course, to apply for the department's fantasy draft. The timeline for that is generally as follows:
- The draft will open in the week after students have registered for the next semester's classes. This way, you know your schedule.
- An email will be sent to you to notify you of the draft.
- You indicate your interest by filling out the draft, on time and completely, with the information solicited on that form.
- Professors then make their picks from those who have applied.
- You are notified about the outcome, generally within a month of the draft's appearance.
Pooled classrooms are released after the second week in a semester, and those are your best spaces for hosting TA hours. Andrew Swafford in our office can arrange for you to get space. If you need space before the second week, we have Jolley 408 set aside as a TA mentoring space.
Take a look here.
Some of our courses would like your help with grading exams and other work, even if you are not currently a TA for a particular course needing your help. When the TA draft is published, we ask if you would like to be part of EGRT, the Emergency Grading Response Team.If you are hired to be a TA for any course, then we can also use your help with EGRT. We solicit your help as-needed by an email asking for your help on a particular day at a particular time. You don't need to have taken the class in most cases. You are given a grading rubric and surrounded by people who can help answer any questions you have.
We try to recruit as many TAs for grading as needed to keep the grading session to two hours. In this way we don't impose too much on your time.
We can't hire you for EGRT unless you are otherwise employed as a TA. The pay is the standard TA pay, currently $10 an hour.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
We ask our students in our major and minor programs, and often those students who recently took a course, to apply for the department's fantasy draft. The timeline for that is generally as follows:
- The draft will open in the week after students have registered for the next semester's classes. This way, you know your schedule.
- An email will be sent to you to notify you of the draft.
- You indicate your interest by filling out the draft, on time and completely, with the information solicited on that form.
- Professors then make their picks from those who have applied.
- You are notified about the outcome, generally within a month of the draft's appearance.
Pooled classrooms are released after the second week in a semester, and those are your best spaces for hosting TA hours. Andrew Swafford in our office can arrange for you to get space. If you need space before the second week, we have Jolley 408 set aside as a TA mentoring space.
CSE347 is our Analysis of Algorithms course. A discussion of whether it is required for you appears below; however, you should strongly consider taking it even if it is not required. It is a challenging and extremely worthwhile course.CSE347 is a requirement for first- and second-major students who use our current bulletin as the specification of their requirements. While a student at our university, you are are allowed to follow any bulletin dating back to when you would have been a first-year on campus. Some of those programs do not require 347 specifically, but require a T course; 347 counts as a T course. Other programs do not require a T course or 347.
Many of our undergraduates are involved in the research conducted by our department's faculty. It is worthwhile to consider the artifact(s) that might be produced from such research.If you are a student interested in graduate school, then the best artifact would be a published paper, even if it is co-authored. Your research advisor can mentor you concerning where and how to publish such a paper. Such papers are often jointly authored with other students and your research advisor. While it's not a document you author solely on your own, the value of having it pass muster with a conference or journal review process is high.
A senior thesis is written solely by you. If you wish to do this instead or in addition to publishing a paper externally, then sign up for CSE
499 in the section associated with your research advisor. Most students favor the published paper or a presented project over writing a thesis, but the choice is up to you and your research advisor.
How is such a thesis recorded in our records?
Long ago before the advent of our current information infrastructure, undergraduates who completed a thesis and who had at least a certain GPA (3.7 perhaps) would graduate with distinction and that phrase was printed on their diplomas. The university says we have lost the ability to do that, so instead of a designation on your diploma, we use the milestones feature of our current information system and record a senoir thesis as such a milestone. It thus shows up on your transcript rather than on your diploma, which ultimately might be more useful for you.
Our general rule of thumb is that a 3 unit course takes somewhere between 10–12 hours of your time a week, including the time you spend in lecture. For a project, thesis, or independent study, a 15-week semester would therefore take 150–180 hours of your time. If you are interested in a 6 unit project it would take twice that, and that's usually not possible in a single semester, so most 6-unit projects and such are accomplished in two semesters.
This question presumes you are in one school and are thinking about transferring to another.Why would you want to do such a thing?
Some programs (e.g., computer science and math) offer a first or second major, giving you the following options:
Where students have a choice of first or second major, the considerations students must use in choosing their school usually pertain to the requirements of the school outside of the main program of study. For example, you can earn a computer science first or second major, and the program requirements are the same for the computer science portion. If you do this as a first major, then you must satisfy SEAS distribution requirements. If you do this as a second major, then you must satisfy your primary school's distribution requirements.
- You earn a major in that area of study as a first major, in which case that department's school is your primary school. If you are a first major in computer science or computer engineering, SEAS is your primary school.
- You earn a major in that area of study as a second major, in which case you must have some other major as your first major. If you are primarily a math major and you are earning a second major in computer science, then ArtSci is your primary school.
Thus, the decision of school should be made by thinking about all of the programs (majors and minors) you wish to complete, and then finding the best fit. That fit may be based on the requirements of a particular school, the flexibility it offers to complete programs outside of that school, and the advising and other support you receive.
CSE and SEAS aim to provide you the maximum flexibility in your studies across the university, but your best option will depend on your particular situation. You are encouraged to consider all options and discuss them with your advisors and other mentors.
It is helpful to begin this exploration with your academic and 4-year advisors, but you should also talk with other students, in your current and potential future school, to get as much input as possible to make your decision.
There is a different answer for study abroad, so please look there for information about that.Computer science and computer engineering are broad areas of study, and we recognize this by looking for courses outside our department that we can count toward your major or minor programs.On the other hand, it would not make sense for a student to take most of his or her courses outside our department and still earn a CSE major or minor from our department. We therefore have the following residency requirement for our department's elective credits:
How should you think about spending your 3 or 6 units?
- If you are earning a major, then all but two electives (6 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- If you are earning a minor, then all but one elective (3 units) must be consist of courses taken (not by transfer) in our department ending in S, T, M, or A.
- You can take on independent study with faculty. Details of that are covered elsewhere.
- You can take a course from the approved list of courses below.
- You can arrange by exception to count a course that doesn't appear in our list below. That conversation starts with your advisor and ends with the department's associate chair.
The list of courses TBD
Note that study abroad units count as if resident: see elsewhere in this FAQ for information about study abroad.To earn a degree from a particular university, school, or department, each will insist that you spend a certain amount of time taking its courses.
- Students earning a degree from Washington University must have at least 60 units of credit earned at our university.
- Studenst in SEAS must have at least 30 units at the 200 level or above earned from our school.
- The residency requirements for our department are articulated elsewhere in this FAQ.
We describe elsewhere in this FAQ our department's residency requirements, which limits how many courses you can take outside our department and still earn an major or minor from our department.Those rules ensure that students graduating from our programs have taken a sufficiency of courses from our department.
Most often, students seek transfer of elective courses from outside our department. Courses such as game theory, numerical analysis, and operations research are offered by other departments but not by our department: we have no courses that cover those topics. Subject to our residency requirement, we count certain courses toward our students' electives as described elsewhere in this FAQ.
But what about core courses? Such courses are offered quite frequently by our department and we rarely get requests to consider courses outside our department to count toward our students' core requirements.
Subject still to our residency requirements, our department will consider allowing our students to take a core course outside our department, almost certainly at another university. Here we look not only for appropriate rigor but also to determine that the outside course is truly a good match for what we teach in a core course. We look for a close match because many courses in our department depend on the material taught in core courses. We want to ensure that students can make progress in our programs, prepared to take courses by having the appropriate prerequisite material.
A notable exception is that we will waive or transfer outside credit for our introductory course, CSE131, without counting that against any residency requirement in our department. There again we look for a close match to what we teach in that course.
Study abroad is treated differently, and you should look elsewhere in this FAQ for information about how courses count when studying abroad.Otherwise, there are two issues that must be considered:
Here is a step-by-step procedure for applying for approval of transfer course credits.
- Our university, our school, and our department each has a resdiency requirement, which you can find elsewhere in this FAQ. There is thus a limit on the number of outside credits you can apply to your Washington University programs.
- Is the course deemed acceptable for transfer? The process for that decision begins with your four-year advisor, but the decision is usually made by the department closest in area to the subject matter of the course. For example, the merit of a computer science course would be evaluated by the computer science department.
Our school maintains this database of outside courses already approved for transfer credit.You should check this database before requesting approval.
Also the database may help you shop around for already approved courses from a geographic area of interest.
Yes. Dean Chris Ramsay keeps a list of available tutors for classes and he can try to match you with somebody who can help. The relevant web page at Engineering Student Services (ESS) is here. If you are primariy a SEAS student you may receive up to 4 hours of tutoring free through ESS. Otherwise, tutors can still be found but you would have to pay.
First, please realize that you are valuable and that almost all of our students' internships are paid.But some are not, and there can be good reasons to consider an unpaid internship:
- A nonprofit may be in need of your skills and lack the funds to pay you.
- There may be a particular experience or set of skills you wish to develop and you are willing to do so without pay.
There are some issues you should consider in taking on an unpaid internship:
- credit
- Our department does not award credit for paid internships. For an unpaid internship, you may be eligible to receive credit for the work you do, subject to the following:
- The work should be for a non-profit or not-for-profit institution. Our department generally is unwilling to sponsor work for companies that make (or hope to make) profit without paying our students accordingly. We have made exceptions where the student benefits substantially from the experience.
- A three-unit course is generally 10 hours of work a week. Thus, to receive credit for three units of study, you should be spending between 140 and 150 hours on your project.
- A faculty member must agree to sponsor the credit portion of your work, in the sense of evaluating the grade you will receive and ensuring that the work you do is worthy of the credit.
- A supervisor at your unpaid internship must be willing to correspond with said faculty member for the purposes of establishing that you did the work and to assess the quality of the work.
- You have to register for CSE400E in the section associated with the faculty member supervising your project. To do so in summer, when you are otherwise not a student, is unwise, because you are then paying for credit while not being paid for your work.
Our department generally allows you to defer enrolling for credit until the next semester in which you are able to enroll in CSE400E without experiencing extra financial burden for taking that independent study course.
Once you have your faculty member and supervisor lined up, you can register for CSE400E and will appear on the waitlist. Ask your faculty member to notify the department of the arrangement and you will be admitted to the independent study course.
- Intellectual Property (IP)
- Our university generally holds that work our undergraduates perform while students is completely their intellectual property. When you work for a company and are paid, you typically sign away rights to intellectual property developed during that time.
But what happens with an unpaid internship? This varies by situation, and you are advised to get a written answer to this question before starting an unpaid internship. Because you are not paid, you might expect to own any intellectual property you develop while working without pay for an institution. But the institution may have other ideas and expectations about IP ownership.
Yes. Our UPE chapter is the local instantiation of the international UPE honor society, which is endorsed by the ACM and IEEE Computer Society. We also have a local ACM chapter that is described elsewhere in this FAQ.
Because specific points and language are needed for such letters, the letter originates from your company and is then sent to us for verification, printing on department letterhead, and return to you.For our undergraduate students (including those who are in a combined BS/MS program), we follow the following process:
Graduate students should consult the director of our graduate program for advice about this.
- Our department staff produce your transcript and pass that and your letter to the associate chair.
- The associate chair verifies the wording of the letter is an accurate reflection of the courses you took here and the grades you earned in those courses.
- If approved, the letter is printed on department letterhead, signed by the associate chair, and returned to you. If there needs to be some wording changed in the letter to make it more accurate, you will be contacted.
The popularity of our courses has risen over the years to the extent that unless we take special action, many of our own students would not be able to get seats in our courses.Of course we strive to make room for all students interested in our courses, but we can only let in students whom we can effectively mentor, teach, and grade.
We also try to seat students based on their urgency for taking a given course. Students who will soon graduate will get priority over students who have another semester or year to take the course. The university's automatic registration system doesn't quite achieve this goal. It allows students to register based on their year of entry, not their year of exit.
With the above provisos in mind, we have therefore adopted the following policy about admission to the most popular courses.
We realize that some programs on campus list our courses as required or optional for their own programs, but they do this without communication with our department. We cannot guarantee such students seats in our courses.
- For courses required for a particular program in CSE, we prioritize those in the program over those not in the program, subject to other considerations listed below.
- For graduate courses (those listed at the 4xx or 5xx levels), PhD students from any department have the highest priority.
In practice this has not been a problem, and there is a fair trade agreement among schools so that doctoral students can take the courses they need to make progress on their research. If the numbers rise to the level that our students are excluded from seating, we will revisit this policy.
- Students with an open program in CSE are next seated. This could be a major or minor program.
- This is intended to include CS+X students who are primarily in another school. We treat you as our own.
- Students who are primarily in the McKelvey School of Engineering are seated next.
- All other students are seated last.
Also, students who have already taken a course may have lower priority than students waiting to take that course for the first time.
The short answer is you should have plan A and plan Z.You are allowed to register for up to 21 units, so you may have to make (strategic) choices about where to register to get the courses you want.
- Plan A
- Stay on the wait list for this course. If this is a required course for any of your programs, and you have an urgent need to take the course now, be sure to let the instructor know, and see what might be done to gain admission to the course.
It is important to show up for class as if you are enrolled if Plan A is your plan. There is an apochryphal story about a student who just kept showing up. The professor finally eventually enrolled the student in the course.
Also, be aware that students drop usually in the first two weeks of class, which opens up room in a course.
- Plan Z
- Because you might not get in, it's a good idea to sign up for another course that has room. Seek the usual advice about courses from your advisor, colleagues, and friends.
For many years we offered CSE104 as a web design course that did not count for CSE elective credit.We have moved away from CSE104 to CSE204A, which is a course that does carry elective credit and teaches at and beyond the material previously covered in CSE104.
The main difference is that CSE204A requires CSE131 or the ability to write simple programs.
If you have already taken 104, you probably do not want to take 204A. If you really want to take it, be aware that you are not allowed to turn in the same work twice for any classes, even two instances of the same class. So you will have to complete new assignments for 204A.
An open program is a major or minor that you have in progress. WebSTAC can show you your open programs, and most changes to your programs can be done there too. You can declare second majors, switch from one major to another within the school, declare a minor program—all within WebSTAC.Some changes require approval of an advisor or two, and emails are generated automatically by the changes you request to obtain such approvals.
How do you know how your classes you've taken fit into a new major you might choose? WUAchieve can show you that. If you can't get it to show you the program you want, please see Dean Tobin Harris in the Undergradute Engineering Student Services office.
Some changes require a more personal touch. Would you like to switch your major program to the one that was in the Bulletin at the start of your sophomore year? If you cannot manage to do that via WebSTAC, then you should correspond with Dean Tobin Harris in the Engineering Student Services office. He has magic powers to make WebSTAC and WUAchieve follow the programs of your dreams.
Transferring schools? That's a bigger deal and requires more meetings, emails, and approvals, but it also begins with WebSTAC. Look for the Change WU School link. I'm told it's there but because I'm not a student, I can't verify its existence. Why transfer schools? That's the subject of another FAQ.
Yes! The Women in Computer Science (WiCS) group welcomes all women interested in computer science or computer engineering. Our chapter is just one of many, with the goal of increasing the participation and representation of women in CSE, as they are currently in our discipline.This group provides mentoring, talks, preparation for job interviews and graduate school. Our department sends a group of students from WiCS to the annual Grace Hopper conference, and there have been incredibly positive and life-changing results from attending that meeting.
If you identify as a women then we urge you to join WiCS so that you can learn from and contribute to this vibrant group of students.
The university distinguishes dropping a course and withdrawing from a course. Those distinctions are related to when you take action, and the relevant dates are published each semester on that semester's academic calendar, such as the one that appeared in Spring 2017.Note that if you are required to maintain a certain course load, dropping or withdrawing from a course may reduce your enrolled units below that threshold.
- The earlier of the two dates is the last day to drop (D) a course. By taking action on or before that day, the course is erased from your transcript as if you had never enrolled in that course. There is no effect on your transcript.
- The later of the two dates is the last day to withdraw (W) from a course. The course remains on your transcript, but there is no effect on your GPA.
Many students worry needlessly about the appearance of a W on their transcript. Quite often, withdrawing from a course is a wise choice, and the W can therefore stand for Wisdom. If you are conflicted about whether to stay or withdraw from a course, then talk with your academic or 4-year advisor.
You should check with your school's student services group to make sure that dropping or withdrawing from a course does not trigger an unpleasant consequence.
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
The information below is meant to be generic advice, but our faculty hope you will take interest and notice of our REU program.Many institutions offer the chance to spend part of your summer working with faculty and graduate students on research. These programs are designed to show its participants the nature of research: identifying interesting problems, formulating methods to try to solve those problems, and communicating results to diverse audiences.
While the applications for REU sits will vary, they almost all require some statement of purpose, some letters of recommendation, some record of your academic progress to date, and some idea of the projects that interest you. You are therefore advised as follows:
- Peruse the REU institution's web site and find projects and their associated faculty that interest you. The interest need not stem from extant exposure or experience in that area.
- Identify your letter writers. Reference letters should come from those who are familiar with your achievements and who can address your work ethic, potential, and suitability for the research experience. Contact those letter writers in advance of their receiving any solicitation for letters. Provide those letter writers with your statement of purpose and a current resume.
- Be sure to observe the deadlines posted for applications. Be sure to line up your letter writers well in advance of those deadlines.
While the NSF largely funding our REU programs only pays for US citizens to participate, our department has some funds that allow us to recruit and train non-US citizens in this same program.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
We ask our students in our major and minor programs, and often those students who recently took a course, to apply for the department's fantasy draft. The timeline for that is generally as follows:
- The draft will open in the week after students have registered for the next semester's classes. This way, you know your schedule.
- An email will be sent to you to notify you of the draft.
- You indicate your interest by filling out the draft, on time and completely, with the information solicited on that form.
- Professors then make their picks from those who have applied.
- You are notified about the outcome, generally within a month of the draft's appearance.
If you are a minor or major in computer science, the good news is that employment in our industry is extremely strong. Internships are ideal settings for a company and an employee to see if there is a good fit for full-time employment. Here is some advice about preparing for an internship.
- Accumulate a portfolio of projects and other artifacts of your work in and outside of class. You can do this with a github or bitbucket account.
Be sure that the code you post from course work is private, so that you do not provide your solutions to other students and run afoul of our community standards.The portfolio serves to document your progress as a student of computer science, but it also serves as a backdrop for a conversation in which you can express your passion and interest about your work. How did you arrive at a given interface? What obstacles did you face in developing your solution? What did you learn about teamwork, algorithms, interfaces?Likewise, companies may have policies that prohibit you from publishing or disclosing code while working for them.
Be careful!
- Have a resumé handy. Have it on paper and ready to send electronically. You never know when somebody will ask, and having one current and ready conveys professionalism.
- Visit the SEAS Career Center. Your resume and other interview artifacts can be improved by interacting with advisors there.
- Attend the job fairs every semester. Even before you are ready for an internship, make it a habit to attend the job fairs, to talk with the representatives, and to talk about your work and your interests. Ask other students or your advisor about how to dress. Most companies doing computer science do not expect formal attire, but it's worth finding this out before you show up.
- Prepare for a phone or other interview.
- Much information can be found online, and it's worth reading through resources such as Cracking the Coding Interview. One student I know worked over 400 problems before she interviewed with facebook and she landed the job. That seems extreme, but such preparation serves to make you feel more confident and to help you field questions well.
If your interview is via a video chat session, be sure to dress fully for the interview. Some of our students have been asked to stand up. Crazy, but true.
- Our department's UPE chapter has been organizing mock technical interviews. Try to schedule one or two mock interviews before an actual interview. UPE is described elsewhere in this FAQ.
- Network as best you can at venues that allow you to do so. One recent student attended the Grace Hopper Conference, and landed a job as an intern for project management at Apple. Her story is inspiring because at first Apple did not respond to her resumé. However, she returned to the booth and insisted on talking with somebody because she really wanted to be considered for the job. After that conversation, she was hired on the spot.
- Establish a relationship with faculty so that they can supply letters of recommendation. There is advice elsewhere in this FAQ about that.
All departments across Washington University are eager to involve you in their research, so we are glad you asked this question! The points to address here are:
- How do you find out the research topics of interest to the department?
- What is the best way to approach faculty about working with them?
- What modes of interaction are available for collaborating with faculty on research?
- Why should you have a research experience?
- Research areas
- There are two approaches but each uses our web pages.
- You can take a look at the general overview of our research areas. You can click on an area to find more information and to see which faculty work in that area.
- If you want to start with the faculty because you know some of us already, then visit the faculty section and you can click on a faculty member to see his or her research interests.
- Approaching faculty
- Many students will send us emails or drop by and we are always glad to talk about our research. However, the best approach is to engage in a conversation based on preparing yourself to ask meaningful questions about our research. Take a look at our web pages as suggested above, and try to read the introductory portions of some of our papers. This will allow you to have a more meaningful conversation in person or by email and you will likely get a more meaningful response from faculty.
When students approach us about working in our groups, we typically give them a small problem as a starter. Many students never return with questions or results from that starter problem. The interested and diligent student will follow up with questions and hopefully results from this small exercise. Successful completion will likely result in increased involvement in our research groups.
- Modes of conducting research with faculty
- Consider one or more of the following ways you can become involved with our research:
The REU program deserves more explanation. Each Spring we accept applications for students to work with faculty in our REU program. Students are accepted from Washington University and also from other institutions. The students spend about 8 weeks on campus in the summer. They participate in some training sessions and are assigned to work with a specific group on a research problem.
- Attending research group meetings or seminars
- Working in a research group for credit (independent study CSE 400E)
- Working in a research group for pay
- Conducting research as part of a project for a course
- Participating in our summer REU (Research Experience for Undergrads) program
- Taking on a research problem as part of a master's project (CSE 598) or master's thesis (CSE 599)
For our participants, we hope they learn about the process of conducting research so as to make an informed decision about pursuing doctoral studies after their undergraduate studies. The faculty aim to mentor students, convince them that research is exciting and worthwhile, and attract them to further their studies in our department. Both participants and faculty are interested in developing results of publishable quality.
- Why should you have a research experience?
- In almost all aspects of an undergraduate's academic life, they solve problems whose answers are already known. While those efforts help educate and train our undergraduates, we add to the knowledge of the world by attacking problems that do not already have solutions. This is the nature of research, and there is no better way to become familiar with the life of a researcher than to collaborate in research with our faculty.
The information below is meant to be generic advice, but our faculty hope you will take interest and notice of our REU program.Many institutions offer the chance to spend part of your summer working with faculty and graduate students on research. These programs are designed to show its participants the nature of research: identifying interesting problems, formulating methods to try to solve those problems, and communicating results to diverse audiences.
While the applications for REU sits will vary, they almost all require some statement of purpose, some letters of recommendation, some record of your academic progress to date, and some idea of the projects that interest you. You are therefore advised as follows:
- Peruse the REU institution's web site and find projects and their associated faculty that interest you. The interest need not stem from extant exposure or experience in that area.
- Identify your letter writers. Reference letters should come from those who are familiar with your achievements and who can address your work ethic, potential, and suitability for the research experience. Contact those letter writers in advance of their receiving any solicitation for letters. Provide those letter writers with your statement of purpose and a current resume.
- Be sure to observe the deadlines posted for applications. Be sure to line up your letter writers well in advance of those deadlines.
While the NSF largely funding our REU programs only pays for US citizens to participate, our department has some funds that allow us to recruit and train non-US citizens in this same program.
Well, yes! Almost all of our courses are supported by undergraduate TAs. While TA stands for teaching assistant, the duties associated with that title vary widely among institutions, schools, and departments. In our department, a TA is an undergraduate who does one or more of the following:
- Works with students in a lab or studio setting
- Grades assignments
- Holds office hours to help students
- Assists in the development or preparation of course materials
TAs are paid by the hour for their work, at the current rate of $10 an hour. We do not offer course credit for serving as a TA. There are many reasons why you should consider becoming a TA:
- The best way to learn material is to help teach it to others. Our TAs are the most proficient students at the material they mentor.
- As a recent student of the material you TA, you are in a great position to understand (and empathize) with the difficulties of mastering that material. Thus you offer a unique perspective on the material that students find valuable.
- It feels good to help others. Our TAs express satisfaction in using their knowledge to help other students.
- You develop better communication skills by serving as a TA, and those skills are valued by employers and graduate programs.
- You work closely with faculty as you TA their courses, and this helps to establish a relationship and basis for faculty writing letters of recommendation for you.
Look for an email that advertizes our fantasy TA draft. There you indicate your experience and interest in TAing our courses. The faculty then draft students to serve as TAs.
The size of this effort is impressive. We receive some 350 responses to the draft and typically choose some 250 students to serve.
We ask our students in our major and minor programs, and often those students who recently took a course, to apply for the department's fantasy draft. The timeline for that is generally as follows:
- The draft will open in the week after students have registered for the next semester's classes. This way, you know your schedule.
- An email will be sent to you to notify you of the draft.
- You indicate your interest by filling out the draft, on time and completely, with the information solicited on that form.
- Professors then make their picks from those who have applied.
- You are notified about the outcome, generally within a month of the draft's appearance.