Table of Contents
Can I earn money outside of Washington University while on an F1 visa?
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:
- 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.
Students are advised to consult counsel and to take steps to be on the safe side of any line drawn for such issues. 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.
Can I take courses at other universities and have them count here?
Courses from other universities (non study abroad) may be transferred in with some restrictions:
- Our university, our school, and our department each has a residency requirement, which you can find elsewhere in this FAQ. There is a limit on the number of outside credits you can apply to your Washington University degrees.
- Not all courses are deemed acceptable for degree needs. For example, the merit of a computer science course would be evaluated by the computer science and engineering department.
- The school of engineering maintains this database of outside courses already approved for transfer credit. You should check this database before requesting approval. The database also may help you shop around for already approved courses from a geographic area of interest. Even if a course is pre-approved, consult with your four-year and faculty advisor to ensure it can count as meaningful credit for you (i.e., that you haven’t hit limits on transfer credits or residency policies).
- You can request consideration of courses that are not already in the database by following the Course Transfer Policies.
Can I take courses outside the department to satisfy core requirements or electives? What courses count toward my major or minor from outside the CSE department?
There are a few different categories of “outside” courses:
- Computing courses from other universities (not study abroad)
- If a course has been approved as a transfer equivalent to a core course (See transfer courses), it is subject to residency requirements and needs to be replaced with a WashU course in a comparable area. This ensures all WashU CSE grads have had exposure to all core areas via some WashU course, either the designated core course or another course in a comparable area.
- If a course is approved as an elective and is a valid transfer, you are still subject to residency requirements and may need to take additional WashU electives.
- Courses at WashU in other departments that seem like relevant electives
- CSE does count certain courses toward technical electives for some degrees (Majors and Minor in Computer Science) with some limits. “Technical Electives” should have a significant component that includes: coding/programming and/or algorithm development/analysis. If you know of a relevant course you’re interested in taking and you are in a Computer Science degree, contact your CSE faculty advisor to discuss the course and having it approved for your studies.
CSE 131 is a little bit of an exception. Appropriate courses and AP CS-A credit can count as CSE 131 without counting that against any residency requirement in our department.
Can the same course satisfy requirements across majors between SEAS and other schools?
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.
Can the same course satisfy requirements for multiple majors?
The McKelvey School of Engineering has no prohibition against the same course satisfying multiple requirements. For example, if CSE 131 is required by both computer science and mechanical engineering, then it counts for both by satisfying each such requirement concurrently.
Other Departments or Schools, like the School of Arts and Sciences, may have rules that restrict double counting. If/when there are courses that may be used by a degree that generally restricts “double counting”, Computer Science and Engineering is usually willing to “waive” requirements on the Computer Science and Engineering degree to offset coursework in recognition of the coursework that was completed for other degrees.
For example, a student majoring in Math may take MA 310 as a requirement of their Math studies. Many CSE degrees require either MA 310 or CSE 240 to ensure our students have experience with Discrete Math and proof techniques. We usually “waive” the requirement for students who have taken MA 310. They clearly have completed coursework needed for our degree and the waiver allows the MA 310 credit be used by the Math degree rather than being rejected due to double counting rules.
CSE courses are popular; how do we decide whom to admit to our courses?
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.
- 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.
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. Also, students who have already taken a course may have lower priority than students waiting to take that course for the first time.
Degree requirements have changed since I started. Am I required or allowed to use the new requirements?
By default, degree requirements are based on the year you started that degree (see here. The year you start is referred to as your “catalog year”. Requirements for the current year are listed in the Bulletin. You can browse prior years at https://bulletin.wustl.edu/about/prior/.
Degree audits (WUAchieve) will use the year you added a degree. You can also run a “What If” report to see how well you comply with other years. It’s not possible to mix-and-match rules from different years, but the School of Engineering generally does allow students to request changes to newer catalog years. If updates to the requirements seem to be beneficial to you, contact your advisors (both faculty and four-year) to review the situation. If the consensus is that a newer catalog year is beneficial, contact either Undergraduate Student Services or Graduate Student Services to request a change (in some cases advisors may contact relevant parties on your behalf).
Do I need any computer science background to succeed in CSE131?
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!
Do I need to take CSE 240 before CSE 247?
It’s often best to take 240 (Discrete Math) before or concurrently with 247 (Data Structures and Algorithms) because it reviews concepts that are required in 247. Specific concepts used in 247 include:
Discrete Math typically covers concepts used in data structures, including:
- Summations, which is used in 247 for analysis of algorithms (early in the semester).
- Mathematical Induction, which is used in 247 for proofs about properties and behavior of algorithms (throughout the semester).
- Pigeonhole Principle. This is helpful for work in 247 using “hashing”. Most people find it to be relatively straight forward and experience prior to 247 is not critical.
- Graphs CSE 247 covers the concepts needed for 247 and not all semesters of CSE 240 cover graphs. Prior exposure is slightly beneficial, but not expected.
In addition, 247 assumes prior experience with Calculus concepts:
Do I need to take CSE347?
CSE 347 is currently required for:
- B.S. in Computer Science / Second Major in Computer Science
- B.S. in Computer Science + Economics / AB in Economics & Computer Science
- B.S. in Computer Science + Mathematics / Second Major in Computer Science + Mathematics / AB in Mathematics & Computer Science
How are admissions handled?
Our department decides on admissions to our Master’s and doctoral programs. If you have questions you are encouraged to look at our graduate program pages.
Each school (Olin, McKelvey (Engineering), ArtSci, etc.) decides whether or not to admit the transfer student. The McKelvey School of Engineering’s Policies are described in the Interdivision Transfer Policy, which includes a section on the requirements for eligibility to transfer to CSE degree programs. Individual departments, like CSE have no say in individual admissions.
You should start by:
- Discuss a potential transfer with your current advisors (faculty advisors and four-year advisors)
- Review the contacts for degrees or schools that you want to join. If you want to join the School of Engineering, contact one of the advising staff who list “Interdivision Transfer” as one of their areas.
- If there’s agreement that a change is appropriate, use WebSTAC to make a Change School request.
- Transfers are usually handled at the end of each semester.
How are TAs chosen? When does the TA draft occur?
- The draft will open about a week after you register for the next semester. Some classes hire TAs to help with the class sessions, so it’s important you know your schedule.
- You will get an email with details about the draft and a link to an application form. Many courses also post the draft in their course forums.
- You indicate your interest by filling out the form, on time and completely.
- Soon after the forms are due, professors review applicants and indicate who they would like to hire.
- Once professors have indicated their preferences, all hiring requests are reviewed and some adjustments are made to balance hiring requests with: a) course needs and b) each individual TAs’ availability, which you provide in the application.
- You are notified about the outcome, generally within a month of the draft’s appearance.
How can I contribute to this FAQ?
Post your question to the “New Questions” forum. If your question has broad significance, it will be moved to the “FAQ”.
How can I find out what I still need to do to meet my degree requirements and graduate?
WUAchieve is a system Washington University bought to handle degree, major, and minor requirements across the university. It’s used for “degree audits” of CSE degree programs (and most others, with Olin School of Business being an exception).
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 each of your degree programs. Follow the directions on that site, and make sure the open programs it shows for you are correct.
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.
How can I get involved in programming contests?
Participation in Association of Computing Machinery’s annual International Collegiate Programming Contest(ICPC) is one of the best ways to sharpen your problem solving skills with peers. Teams from Washington University have done well at these contests, including winning two international contests! You can learn more by contacting our Student ACM chapter.
You should also consider taking CSE 247R, which is a 1-hour pass/fail seminar that will help you explore the types of algorithmic thinking common in both coding competitions and technical interviews.
How can I get space for students to get help from my TAs?
Pooled classrooms are released after the second week in a semester, and those are your best spaces for hosting TA hours. The CSE Undergraduate Coordinator can help coordinate room reservations or you can request a reservation directly via https://reserve.wustl.edu/. (Some reservations require an account code, which the undergraduate coordinator can assist with).
How can I place out of a course if I think I already know that course’s material? / What happens to my program of study if I do place out?
- You have taken a similar course elsewhere. In that case, you should look at the FAQ for transfer courses and see if it transfers. (Study abroad is treated differently. Consult your study abroad advisor).
- In some cases equivalent course work has been completed elsewhere (i.e., a course that is eligible for transfer credit), but it can’t actually be transferred due to transfer limits. Contact your advisor and ask them to coordinate with the CSE Dept.’s Associate Chair to review the situation.
- 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.
You should first ask yourself are:
- How well do you know the material?
- What fraction of the course’s material do you know? (is it more than 70%?)
- It may help to review recent syllabi from the course:
- Find the course in WebSTAC
- Hover your mouse over (or touch screen on ) a specific section. If a syllabus is posted for the section it will be listed to the right of the “Actions”. Click on the syllabus. If no syllabus is listed, check other sections. Failing that, 1) Click on the “Details” under the course number, 2) Click on “History”, Select other semesters to see if any of them have a syllabus.
- It may help to review recent syllabi from the course:
If you feel you know the majority of the content:
- For CSE131, see CSE Placement Exam.
- 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 do not need to take the course, then it will be waived as a requirement, but you will be required to take some other course instead. The actual course you take should be determined by agreement with your academic advisor.
How do I arrange to study abroad?
- Look at the University’s Study Abroad page, which includes a “Steps to Study Abroad” to help you through the process.
- If you are prime to the McKelvey School of Engineering, see the school’s Study Abroad & International Experiences page and contact the study abroad coordinators listed there.
- Discuss your plans with your four-year advisor and faculty advisors as soon as possible. This will help them ensure you will meet all degree requirements by your intended graduation time.
- Most schools that participate in the Study Abroad program have Computing courses. Not all Computing courses are accepted for all degrees. Be sure to talk to the School of Engineering’s Study Abroad advisors, who can help identify courses that will work for you (contact info. at Study Abroad & International Experiences)
- By university mandate, all courses you take while studying abroad count as resident at Washington University appear as pass/fail on your transcript. It is up to a given department to decide whether a course taken while studying abroad counts toward its requirements. In that sense.
- It may be beneficial to look for courses in topics that are 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.
How do I become a computer programmer/scientist?
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!
How do I become a programmer right now?
- Practice writing / revising / developing / reviewing code
- 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.
Things that can help:
- Taking CSE courses, especially courses that cover programming tools/techniques/paradigms and applied courses (thoat that end with an “A”)
- Working as a Teaching Assistant
- Participate in open source projects
- Apply computing skills via extracurricular activities (student groups or research work that need computing expertise, participation in hackathons, programming competitions, etc.)
How do I do CS+Math? What upper level electives count? Can I do this as a second major?
- B.S. in CS+Math from McKelvey School of Engineering. (Primary major)
- A.B. in Math & CS from Math. (Primary major)
- Second Major in CS+Math from McKelvey School of Engineering. Second majors are available to any student from any school on campus.
Approved electives are based on agreements between C.S. faculty and Math faculty that the course is highly relevant to both disciplines. If you don’t see a course on the upper-level list, then it could be for one of these reasons:
- It’s not in the spirit of CS+Math. Courses like CSE132, CSE204A, CSE330S, CSE332S are interesting and useful computer science courses but don’t live at the intersection of CS and Math.
- It should be there but we haven’t thought to put it there. You should contact the associate chair in the department hosting your CS+Math studies (Computer Science and Engineering, or Math).
How do I earn a minor in bioinformatics?
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. Most Bioinformatics minors are advised by either Prof. Jeremy Buhler or Prof. Michael Brent.
How do I earn a minor in computer engineering?
You can’t. We don’t offer a minor in computer engineering, but you might consider a minor in computer science and focus on computer engineering courses. While many computer engineering courses have prerequisites, you may find some courses, such as 260M: Intro. to Digital Logic and Computer Desicn, are suitable for a minor in computer science and will provide you some background in computer engineering.
You may want to browse courses that are required for Computer Engineering to select courses of interest. Note that any course number that ends with an “M”, like 260M, are focused on “Machines” and have a computer engineering focus.
How do I earn a minor in computer science?
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. See “Can I take courses outside the department…”.
How do I earn a minor in Human-Computer Interaction (HCI)?
HCI studies the way humans and computers interact, aiming to improve the interfaces through which the two sides connect, communicate, and compute. See the requirements of the HCI Minor here.
How do I earn a second major in computer engineering?
You can’t: we don’t offer a second major in Computer Engineering. Consider a primary major in Computer Engineering and a Second Major in Computer Science. This approach will ensure you have the background needed for Computer Engineering and still allows you to get a significant amount of work in Computer Science. In fact, with careful selection of electives it’s possible to get both with only a little additional coursework.
How do I find a summer internship?
- Subscribe to our department’s jobs email list by contacting Monet Demming.
- Look for REU opportunities
- Look for mentoring / teaching opportunities
How do I find out about research opportunities in the department?
- 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:
- 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)
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. 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.
How do I prepare for and find an internship?
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. Likewise, companies may have policies that prohibit you from publishing or disclosing code while working for them. Be careful!
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?
- 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.
How do I sign up for summer classes?
The School of Engineering provides additional details about summer courses, like dates for registration, fees, etc., here.
How do I study CSE while preparing for medical school?
- Many recent/current advances in medicine would not have been possible without the application of computer science.
- 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.
- The B.S. in CSE is quite flexible and students can take courses that help prepare for medical school and the MCAT.
- Of particular interest to our pre-med students is the bioinformatics minor, which combines studies in biology and computer science.
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.
How do I subscribe the the department’s jobs email list?
You can join the list to automatically get emails about jobs by sending an empty email to firstname.lastname@example.org. You will get an email asking you to confirm that you want to join the list by following a link (check spam folders as needed). Follow the link to confirm that you want to join the list.
Each time you get a message from the list it will include a footer that describes how you can leave the list if you no longer want to receive these announcements.
How do the honors math courses count?
|Math 203||Math 204|
|CSE 240 or Math 310||Math 233 and Math 309|
You can’t take Math 204 without first taking Math 203.
How does pass/fail work?
Most courses at our university allow a student to take that course for a grade (A, B, C, etc.) or for credit only. Pass/fail is for credit (the units) only, but pass/fail courses typically require students due the bulk of the work, exams, etc. sufficiently well to “pass”. Many degrees, including all CSE degrees require that all courses for the degree content be taken for credit. (I.e., often only distribution courses, like humanities / social science courses for CSE degrees, or “extra” courses should be taken pass/fail)
Here are some notes about taking courses pass/fail:
- If a course can be taken pass/fail, you select the pass/fail option when you register for the course. Not all courses can be taken pass/fail.
- Some courses, such as seminars, can only be taken pass/fail.
- Make sure you understand what is required to achieve a “pass”. Check the course syllabus. If it doesn’t provide guidance, contact the instructor and ask for clear guidance (email or updates on the course page) that describe the requirements.
- 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 academic career. Check the bulletin for the requirements for your school and/or consult with your four-year advisor.
- It is possible to change between pass/fail and “for credit” during the semester. Check the academic calendar for relevant dates.
- NOTE: It’s usually possible to change back to “credit” from “pass/fail” about a month later than changing to pass/fail. That is, if you are enrolled as pass/fail but are doing well and expect to get a satisfactory grade, you can switch to “credit” relatively late in the semester).
How does the BS/MS work? When do I declare my interest?
See the Bachelor’s/Master’s Program pages, which include details about application deadlines, scholarships, and degree requirements.
You may also want review the Resources for Master’s Students, which includes the Master’s Program Handbook.
For more information go to Graduate Programs, select a degree of interest, then use the “Contact Us” information to contact faculty/staff who can provide further assistance.
How does the CSE131 placement exam work? Do I need to take CSE 131?
Having the course waived does not provide credit for the course, but it will allow you to take any courses that would normally require CSE 131 as a prerequisite without taking CSE 131. It will also satisfy the CSE 131 requirement for degrees that require CSE 131.
See here to see if you may benefit from taking the exam and for directions to sign up.
How is CS+Math different from a double (second) major?
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 (again, 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.
CS+Math also differs in the electives available. A CS Major can select any CSE course as an elective. CS+Math majors can only select from a curated list of electives from Math, CSE, and ESE. There are a designated minimum number of courses from both CSE and Math. See both “Electives” and “List of Approved Electives” here.
How is physics counted for our programs?
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.
How much attention should I pay to a course’s stated prerequisites?
All schools except Olin
The university’s registration systems do not check prerequisites, but many individual courses that are “managed by waitlist” do. In many courses that don’t explicitly check, the prerequisites are advisory but they are there for a reason. You should consider very seriously whether you will perform well in a course if you don’t have the appropriate background. A conversation with the instructor or an advisor may be helpful, and there are many ways you could prepare even if you don’t have the formal prerequisites. Caveat emptor: It is not the instructor’s responsibility to help individual students overcome lack of preparation.
The business school takes a 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 WashU, 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 well prepared 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 prerequisite course. The dean evicted the student from the course, but took that action after the add deadline had passed.
Olin asks us to make sure you are aware of their strict policy concerning prerequisites.
How much time do I spend on a course here?
The rule of thumb is that a unit of coursework is 3-4 hours of time outside class. Most courses are 3 units, so 9-12 of work outside the classroom plus the ~3 hours of class time. So regular classes may require ~11-15 hours per week total. The work in most classes varies from week-to-week, but it’s best to plan for the worst case, where all course have a “busy” (~11 hour) week at the same time.
Non-classroom activities, like project, thesis, and independent study have the same work expectations. For example, a 3 unit project over a 15-week semester should be about 150–180 hours of work. If you are interested in a 6 unit project it would take twice that, and that’s usually not possible in a single semester. Most 6-unit projects and such are accomplished in two semesters.
How much time should I expect to spend on CSE131?
CSE131 emphasises learning by doing. Most of your time outside of class will be spent on weekly assignments. Since CSE131 is a 3 unit course, you should expect to spend about 10-11 hours per week on average, including time spent in class sessions and reading/videos. Some weeks will require more time, some will require less.
How should I back up my work on my computer?
- 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 GitHub. You should get into the habit of working on your software projects using the following approach:
- When you are ready to work, pull any changes from the repository to your laptop.
- Commit and push your code back to the repository regularly. If you follow these instructions, then if your laptop should fail you will not lose significant work.
- Other files can be backed up to dropbox or box or other such providers.
How to I apply for REU programs?
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.
I accepted a job offer with company X but have since received a more attracive offer from company Y. What should I do?
It’s a decision that should not be made lightly. Backing out on a commitment can “burn bridges”. That being said, most companies have encountered this situation and are aware that it’s a competitive job market. Often they will respond in reasonable ways.
It’s important to identify the reasons why the offer from Y is more attractive to you. These often include some elements of:
- Better pay,
- Preferable location (location can be important if there is a real need for you to be in a certain place, but short term jobs are just that — short term. Being in a new location can be an opportunity to get perspective),
- The nature of work,
- Future opportunities from the alternative.
Usually it’s best to:
- Give company X as much notice as possible.
- Give company X an honest explanation about why you want to withdraw from your agreement. This gives them an opportunity to respond to the situation and possibly offer an alternative to their original offer that’s better aligned with the appealing parts of company Y’s offer.
- Convey to company X that you have given deep consideration to the issue and you hope to maintain good relations with them.
- Accept the fact that you may “burn the bridge” between you and company X, no matter how considerate the conversation on both sides.
I am on the wait list for a course. What should I do?
- Plan A: Stay on the wait list for this course. If it (specifically) is a required course for any of your degrees and you have an urgent need to take the course now, be sure to let the instructor know. They may be able to provide additional guidance.
It is important to show up for class as if you are enrolled if Plan A is your plan. 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.
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.
I am on the waiting list for CSE131 or for the lab section I need. Will I be able to take the course?
Most semesters CSE 131 has been able to accommodate nearly all students who want to take it, especially those who are on the waitlist before the semester begins. You can increase your chances of enrollment by selecting a section that has a small waitlist.
Often there is about a 5% change in enrollments in 131 during the first week(s) of class as students are still changing their schedule, which allows 2-8 additional students from waitlists.
If you’re high on the waitlist, be sure to do all course work and attend sections.
I am struggling and need some help. Is tutoring available for CSE classes?
The School of Engineering provides tutoring services for many for many courses. The tutors will help students understand course content, but will not assist with specific assignments.
- Students in the School of Engineering can request tutors for Physics, Math/Calc, Chem, Bio, and many Engineering School courses, including CSE courses.
- Students from other Schools can request tutoring for just Engineering School courses.
Students in the School of Engineering can get some tutoring for free. Students of other schools may have to pay for tutoring services.
To get more information on availability, any time limitations or fees, etc., complete the “Tutor Request” form on the “Advising & Services tab here,
I have a conflict with one of my exams in this class. What should I do?
Usually conflicts are due to:
- An evening exam (not during regularly scheduled exam time) that conflicts with another course. This is somewhat common in very high enrollment courses. The exams are usually scheduled months in advance by the university registrar and are intended to avoid conflict with other high enrollment courses. It’s a students responsibility when planning their semester schedule to avoid such conflicts. Due to the logistics of large courses and integrity concerns that crop by when exams are offered in advance or late, some large courses will not allow exams to be taken at alternate time.
- A conflict due to personal or non-academic events. Individual instructors may have different policies based on the nature of the conflict and whether it was avoidable.
I have accommodation on timed exams and quizzes. How do I arrange to take these?
Please use the Disability Resources portal to request accommodations for all your exams as soon as possible (first week of class). Typically this will send details to instructors, who may ask that Disability Resources proctor exams or may contact you individually to proctor exams.
If you don’t hear from instructors, it’s best to contact them at least a week before any exams or timed activities to ensure appropriate accommodations.
I have enjoyed 131. What course should I take next?
- CSE132 Introduction to computer engineering
- CSE247 Algorithms and data structures. 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 (See note below)
- CSE231S Concurrent and parallel program. It’s like what you did in CSE131, but now your programs do multiple things at the same time (See note below)
- CSE330S Rapid Prototype Development and Creative Programming (As the title implies, it is fast-paced. 330S will introduce many different technologies and may help develop skills beneficial for internships) (See note below)
NOTE: Interest in these courses often exceeds the number of students who can take the course. They may prioritize student in CSE degree who need the course for degree progress. If you have a strong interest in these courses you may want to pursue a degree in computing, like the Minor or Second Major in Computer Science.
I have some programming experience. Will I be bored in CSE131?
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 (AP CS-A in particular), or some other substantive experience, please consider taking the placement exam to see if your experience is commensurate with CSE 131.
I have to take Math 310 (or 310W) as part of my studies for a math major or minor? Can this count toward my CSE studies?
Yes! We view Math 310 (and 310W) as a reasonable substitute for CSE 240. Either can be used for any CSE degree that requires Discrete Math. It can also be used as an elective for the CS Minor, but it will count against the limit on “Courses outside the CSE classroom”.
If you’re pursuing a Major/Minor from the Math/Stat Department, you should check with your advisors there to see if they have any recommendations. Also, if you are a student who is in the School of Arts and Sciences, 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. You may want to review issues related to “double counting”.
I need a laptop for my CSE work and don’t have one that works; what should I do?
- The McKelvey School of Engineering has a limited number of laptops that can be loaned out to students in our courses. These can be especially useful if you just need access to a computer for a week or two while waiting for repairs or a new laptop. If you’d like to borrow a loaner for your course work, contact your instructor.
- You can utilize a computer lab on campus. The directory of labs is here. You can browse Reserve-A-Space for specific labs to see if/when they are reserved for other uses.
I’m having trouble with my computer. Where can I get help?
If you need immediate access to a computer, Engineering IT has a list of campus labs that can be used.
The School of Engineering also has a “laptop loaner” program for students taking courses from the School. It allows you to borrow a laptop for short term use until you have managed to get a repair/replacement. Contact your instructor, who will be able to confirm your enrollment and put you in touch with the laptop loaner coordinator.
I’m struggling and feeling overwhelmed. What should I do?
Student life can be difficult. Course work, student groups, obligations to family, part-time employment—it’s easy to be overwhelmed or feel like you’re falling short. It’s important to take care of your yourself. If you, your instructors, your advisors, or your friends develop concerns about your well-being, you are encouraged to explore the services available:
- WashU’s Mental Health Services have professional staff members who work with students to resolve personal and interpersonal difficulties. These include conflicts with or worry about friends or family, concerns about eating or drinking patterns, and feelings of anxiety, depression, and thoughts of suicide. See: https://students.wustl.edu/mental-health-services/.
- The Division of Student Affairs also offers a telehealth program called TimelyCare. You are encouraged to visit the Habif Health and Wellness Center during business hours, but this additional service also provides after-hours access to medical care and 24/7 access to mental telehealth care across the United States, with no cost at the time of your visit. Students who pay the Health and Wellness fee are eligible for this service.
- WashU Cares specializes providing referrals and resources, both on, and off campus for mental health, medical health, financial and academic resources by using supportive case management. WashU Cares also receives reports on students who may need help connecting to resources or whom a campus partner is concerned about. If you are concerned about yourself or someone else, you can file a report here: https://washucares.wustl.edu/.
If CSE131 is waived do I have to take another course instead?
CSE131, if our department waives CSE 131, then you do not have to take anything in its place. This is only true for CSE 131.
In rare cases, other courses can also be waived due to prior experience/proficiency. For example, if someone has taken a course we’d normally consider equivalent to one of our core courses, but has hit course transfer limits and can’t actually get official credit for the course. In those cases they would be work with the advisor and the associate chair to select another course to replace the waived course. (See residency).
If I am not satisfied with a grade I received on an assignment or in a course, what should I do?
Did you miss a deadline for an assignment? Are seeking to turn in work late? or Did you miss turning in an assignment because of school-, athletic-, or career-related events?
- 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 when at all possible absences and work should be completed in advance. Consult with course instructors as soon as possible to identify ways to overcome known absences. Do not rely on a TA’s response to such questions or issues.
- Many courses have built-in flexibility to help students overcome typical absences that occur in a student’s life (athletics, job interviews, etc.). Examples of this flexibility include accepting work late (or early, “dropping” lowest scores, and/or extra credit. In those courses you should expect to utilize the given flexibility for these needs rather than be given additional accommodations.
- For significant/prolonged, unexpected absences, due to things like an extended illness or loss of a friend or family member, contact your school’s student services (e.g., Engineering Undergraduate or Graduate Student Services offices). They will contact relevant faculty on your behalf.
Was the point tally on an assignment computed incorrectly? (See “Grading Issues” below) or Do you believe you had a correct response or solution but your grade indicated otherwise?
- 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. Many courses specify a window of time for such requests and will not review requests beyond the designated time. If you wait until the end of the semester, you are likely to be turned away. This has to do with the justice of your overall performance evaluation in the course (see below).
- 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 you should start with the staff of your course who issued the grade, working your way up the chain as necessary. You should start with an email or (private) contact via course forums.
That chain from bottom to top is often:
a. A head TA or head grader (they can often mitigate simple grading or point tally errors)
b. The course instructor (particularly if the concern is about correctness of an answer or interpretation of work/answers) c. If still not satisfied, continue as described in the School of Engineering’s Student Grievances Policies (i.e., Instructor, Department Chair, then McKelvey School of Engineering Facilitator, who is listed in the Student Grievances Policies policies).
Some important caveats:
- 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. Blatant deception is usually subject to the most severe penalties allowed by Academic Integrity policies.
- 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 disregarding 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.
If I retake a course, what happens on my transcript and how does this affect my GPA?
If you are unsatisfied with your performance in a given course, and if you feel that another experience with that material is necessary, you can retake the course. This should be considered carefully and with the advice of your faculty and 4-year advisors.
The implications on GPA and transcripts depend on both the grades obtained each time and your prime school. In most cases transcripts will indicate an “R” and letter grade on the first instance to indicate the course was retaken. Refer to the relevant bulletin for policies that apply to your school and degree: Undergraduate Bulletin and Graduate Bulletin. Each Bulletin includes sections for each school, which contain that school’s retake policies. (Searching the PDF version of the bulletin for “retake” in the section for your school may be the best way to find all relevant policies/concerns).
Take careful note of the following:
- Individual schools decide have different policies about how retaking a course applies in cases where a student is found in violation of an academic integrity policy. In many cases the grade may not be replaced.
- University rules concerning plagiarism apply 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. If When retaking any course you should contact all instructors involved with both instances of the course to see if you are allowed to use any of your prior work.
If I withdraw from a course, what shows up on my transcript and how does the dropped course affect my GPA?
The university distinguishes dropping a course and withdrawing from a course. Those distinctions are related to when you take action. The relevant dates are published each semester on that semester’s academic calendar.
- 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. This is usually very soon after the class starts (within the first 2 weeks of a full-semester course).
- 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. This is often a little after the middle of the course.
Many students worry about the appearance of a W on their transcript. Often people who review transcripts consider a W or two to be a sign that a student was able to prioritize work and/or “cut losses” rather than any sort of shortcoming.
If you are conflicted about whether to stay or withdraw from a course:
- Talk with your academic and/or 4-year advisor.
- Review if you are required to maintain a certain course load, if dropping/withdrawing would put you under that threshold, and what the implications may be. You may want to check with your school’s student services group. (If you’re in McKelvey, either Undergraduate Student Services or Graduate Student Services).
Is CSE131 a weed-out course?
Most certainly not! Our motto is that you belong here, and we mean that:
- We welcome you with open arms
- You should be studying computer science
To quote a colleague, this is a weed-in course.
There is no curve for the course, and all students are welcome to earn an A in the course. Grading rubrics are usually available on assignments and the overall grading scheme is posted in advance.
Your grade is typically based on participation, studio work, weekly assignments, and exams. (Exams tend to be a smaller part of the overall grade than other courses). Generally hard work and consistent effort lead to good understanding of the content and, consequently, a good grade.
Is it ever worth it to cheat?
Cheating undermines the trust of your professors and your peers and impairs the academic progress 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. 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 (or course) 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.
Is there a student group for women in computer science or computer engineering?
- Women in Computer Science (WiCS) welcomes all women interested in computing / technology.
- Girls Who Code is a chapter of Girls Who Code, a national non-profit organization dedicated to closing the gender gap in technology.
- Women in Engineering
- Society of Women Engineers (SWE) (Also see here)
- Our department sends a group of students from WiCS to the annual Grace Hopper conference, which most students find to be an immensely positive experience.
- Our department also sends a group of students to the Tapia Celebration of Diversity in Computing Conference
- You can search for other student organizations here.
Is there a student group within our department / school?
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.
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.
Is there any news I should see about registration?
Yes! Every semester this document is revised to provide up-to-date registration information.
My employer wants a letter from the department for my green card application. How do I do that?
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:
- 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.
For Graduate students:
International students who graduate from our MS programs frequently request the department’s help in preparing letters for green card or H1-B applications. These letters are supposed to document that a student acquired specific skills (e.g. Java programming, machine learning) in the course of their master’s program. Often, the student is prompted to request the letter by their employer or immigration attorney.
The CSE Department does not provide such letters to master’s students. However, GSS will do so based on the contents of the student’s transcript. Requests for skill verification letters by master’s students should therefore be forwarded to Holly Stanwich in GSS.
Other ways to get involved
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:
FAQ Forum policies, practices, and use.
This is for frequent questions and answers for students in of Computer Science and Engineering at Washington University in St. Louis.
Here’s overview of the parts of the FAQ page:
- Read Me: This!
- Index: an index of keywords (tags/labels and a brief description of the concepts they cover. Click on the word to see all questions that have been tagged with it.
- Table of Contents: Lists all the questions (links). This can be helpful to skim the topics/questions contained in the FAQ.
- Questions: All questions and the corresponding answer
- Post Questions: Link to post a new question. We will try to answer in a few business days. Questions that seem of general interest may eventually be included in this FAQ.
- Discussions: A “discussion” view of this FAQ and any other pending questions.
These pages utilize GitHub Discussion forums to manage content.
- You can view all official questions and answers on the FAQ Page. The page is regenerated daily from the FAQ discussion category, which contains approved questions/answers.
- Click here to post a new question, which will place it in the New Questions category. If a question has a broad audience and an official answer, it will be moved to the FAQ/FAQ Category. Posts may be removed if:
- They are not relevant to Computer Science and Engineering students at Washington University in St. Louis
- They are deemed uncivil or rude
- They are not of broad appeal
The Discussions View includes the ability to search and filter based on labels (tags / index topics) as well as control sort orders, etc.
The FAQ page can be searched via your web browser’s page search. It also includes a table of contents and an index of keywords, that lists all the questions that contain that keyword. These can be a useful way to get a general sense of the questions answered in the FAQ or questions related to a particular topic.
- Links to Labels: If you want to link to a specific label, please refer to the label in the Meta page with the following format:
[LINK](https://wustlcse.github.io/FAQ/#LABEL). It’s probably easiest to just go to the index, click on a particular label, and use the URL. For example:
- Links to questions: Like with labels, it’s probably best to go to the Meta page, click on the question in the Table of Contents, and use the URL. An example may look like:
- If you are already on the question and on a computer, you can hover the mouse over the question title and a link icon will appear at the end of the title. You can either click on it to get the URL in the URL bar or right click and select “Copy Link Address”.
- Headings: The Meta Page uses level one and two headings (“#” and “##”). Use headings at level 3 or more in answers.
Questions and answer in this FAQ come from a variety of contributors, including:
- 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
Should I 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.
Should I consider becoming a TA?
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 $15 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 become 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.
- Helping others can be rewarding. 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. Often the discussions TAs have with students are comparable to the conversations that take place during job interviews.
- 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.
Approximately 1-2 weeks after you register for classes you should get an email that advertises our TA draft, which is the application process. Complete the provide form by the deadline to indicate your interest in being a TA.
Should I do a project or thesis for my master’s studies, or fulfill my requirements with courses alone? Can I switch between project and thesis credits?
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:
- 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.
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. So consider the options carefully, talk with your colleagues and advisors, and make an informed decision.
Should I get course credit (CSE 400E, CSE 599, CSE 598) or be paid for research with faculty?
Should I pursue a master’s degree (at WashU / BS/MS)?
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 (Also, see Bachelor’s/Master’s).
How do you decide whether to stay or go? Try the following thought experiment:
First, how do you feel about staying for an extra ~2 semesters to complete the master’s degree? Think about how you enjoy your time in/at WashU. Also consider that Master’s coursework is focused entirely on your discipline (i.e., all CSE and related courses).
- If you feel positive about extending your studies, then you should seriously investigate doing a master’s degree. It typically commands a higher starting salary, it allows you to do a project with faculty, and students are generally very satisfied with their advanced studies.
- Your next step is consideration of any outside obligations and the financial impact (cost vs. gain). The Bachelor’s/Master’s Program page lists some of the scholarships available for M.S. work.
- Note that many employer will pay for some or all of graduate studies for their employees. This can offset costs, but sometimes it’s not available until completion of a year or more of employment and often studies take place while working full-time, which can cause it to take longer to complete.
- 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. You may want to start your post-academic career and evaluate your feelings about further education in six months or a year.
What are residency requirements?
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. Course descriptions (in WebSTAC) will indicate the number of “Units” each course is worth. Most regular classroom courses are 3 units.
- The University requires at least 60 units from WashU for all students.
- Students in the School of Engineering requires its students to take at least 30 units of engineering
coursework at the 200-level or higher.
- Students earning multiple primary degrees have increased residency requirements. Two BS Degrees require 45 units of residency in Engineering.
- BS/MS students must complete 84 units at WashU.
- The CSE department’s policies can be found here. They vary from one degree to another, but in general more than half your work for any CSE degree needs to come from the CSE department.
- Most courses from University College do not count towards any residency requirements.
- Study abroad units count as if resident: see elsewhere in this FAQ for information about study abroad.
Most schools provide a system to “Audit” your degree. Most schools use WUAchieve (Olin may be different). You can run an “Audit” to make sure you are on track for your degree. It includes checks for most types of residency. Note that audits are not infallible. Be sure to check degree requirements in the Bulletin and confer with your advisors.
What are the core courses for my degree?
The “core courses” are the common set of courses required for all students in a particular major or minor. In addition to “core” courses, degrees have electives, where students can choose (“elect”) which classes to take. Electives often allow students to focus studies on niches of particular interest.
For all degree requirements, including the “core courses” see details for your degree(s) in the Bulletin.
What can I read to learn more about “computing” topics?
- Code: The Hidden Language of Computer Software and Hardware by Charles Petzold
- Soul of a New Machine by Tracy Kidder
- Gödel, Escher, Bach: an Eternal Golden Braid by Douglas Hofstedler
- Deep Work: Rules for Focused Success in a Distracted World by Cal Newport
Machine Learning (gone wrong)
What courses outside the CSE department should I take?
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:
- 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?
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
. 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.
What courses should I take if I am interested in machine learning?
Machine learning requires a strong background in Probability, especially Bayesian analysis; Matrix or Linear algebra; Algorithms; and programming. Review the prerequisites for courses listed below to prepare.
- CSE 217: Intro. to Data Science, which includes some applications of Machine Learning. Most sophomores meet the prerequisites.
- CSE 412A: Intro. to Artificial Intelligence is a broad-spectrum course on artificial intelligence techniques.
- CSE 417T: Intro. to Machine Learning. Although the title says “introduction”, 417T is a theory course that provides deep foundation in Machine Learning.
- ESE 417: Intro. to Machine Learning and Pattern Classification is slightly more focused on applications of ML and includes less theory than 417T. Many CSE degrees can accept this toward technical electives. Consult with your advisors to see if there are any restrictions that may apply to you. ESE 417 is also considered an acceptable prerequisite for CSE 517 in place of CSE 417.
- 514A Data Mining explores approaches to processing and analyzing large amounts of data, both structured and unstructured, using Machine Learning techniques.
- CSE 517A: Machine Learning 517 is a graduate class that covers application and more advanced concepts in Machine Learning. (Either CSE 417T or ESE 417) is a prerequisite.
What do our classrooms look like and how many people can they seat?
Take a look here for a directory of WashU classrooms.
Rooms used vary by course. Some courses use only traditional classrooms (lecture halls or small classrooms). Others use only Active Learning rooms, which often have large, shared screens that facilitate group collaboration on computing projects. And many courses have two sessions per week, where one session is in a regular classroom and the other is in an active learning room.
Many CSE courses are in the labs in Urbauer Hall, like:
What do our graduates do?
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
What does lecture-free mean? How is that different from a typical lecture class?
“Lecture Free” courses often rely on a combination of:
- Preparing by assigned reading or watching videos (which are often broken into small parts and more carefully structured than a traditional lecture)
- Active Learning to actively explore content. Many CSE courses use the term “Studio” for this time. Studio sessions were partly informed by the concept of a creative collaborative studio space used in other disciplines.
What does a dean do?
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.
Among 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 activities of their schools: salaries, teaching, research infrastructure, planning, fundraising.
The current dean of the McKelvey School of Engineering is Aaron Bobick, who is also a faculty member in CSE.
Each school also has an Associate Dean who supervises the academic activities of that school. Chris Kroeger is the Associate Dean for the School of Engineering.
What does a provost do?
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 shows the nature and breadth of activities associated with our provost’s office.
What funding options are available to support my graduate studies?
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
- to help us with our research and
- to help you decide whether you want to perform research as part of graduate studies.
Other parts of this FAQ describe the research you might do as an undergraduate. 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.
What is a FAQ?
That’s a Frequently Asked Question! See Wikipedia’s FAQ for some history of the term.
What is a senior thesis and should I do one?
If you’re interested in graduate school, then the best artifact would be a published paper, even if it is co-authored (with your advisor and/or other students). Your research advisor can provide guidance on where and how to publish a paper. While it’s not a document you author solely on your own, acceptance at a conference/journal shows it has undergone moderate review and that you have been a part of substantial work.
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 CSE499 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.
Completion of a senior thesis is designated in your transcripts as a “milestone”.
What is academic integrity and how does the academic integrity process work?
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.
- 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 adjudicating cases of alleged violation of academic integrity. The details of this process are covered below.
- Many courses 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 for clarification as needed.
In overview the process for dealing with alleged violations of integrity proceeds as follows:
- An instructor, TA, or student files a complaint with Engineering Student Services office that a violation may have occurred. The complainant provides evidence and references the 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:
- The school’s Academic Integrity Officer oversees the hearing. Both parties provide any evidence they plan to present to the Academic Integrity Officer in advance of the hearing.
- The complainant presents their evidence.
- The student can respond and also present evidence.
- A panel of two faculty members and a student review the evidence, may ask for clarification, and eventually convene to decide if a violation is more likely than not. (Although this is not a legal matter, the Law Insider definition here is a reasonable description of how the outcome is decided: More likely than not).
- Following the hearing, the Academic Integrity Officer will report the outcome to all parties. If a violation has been found, a sanction will be imposed. If not, no record of the accusation is retained.
Sanctions vary by course and the nature of the violation. They include: A lower grade on an assignment, a lower grade in the course, and failure of the course. Instructors are generally bound by the policies described in their syllabus. Extreme or repeated cases may result in suspension or expulsion from the university. A confirmed violation is part of a student’s permanent record at Washington University! Consequently, details of any violations would be provided to any external entities, like Graduate schools, Medical schools, Law schools, Employers, and Government agencies, that may need to be given access to a student’s records (For example, a student would need to provide academic records when applying to Medical school)
What is CSE 501N? How is it different from 131?
The 501N version should only be used by graduate students who either: a) don’t have prior comparable background in computing and need it to prepare for graduate studies in computer science or b) who need computing skills to support graduate work in another discipline.
The courses are co-listed (same place/time/instructor and coursework). The coursework and expectations are identical from both the student’s and instructor’s points-of-view.
Courses with an “N” designation will not count for credit for students in the department’s degrees. Undergraduates should always take the course as 131, which lacks the “N”. Many students decided to pursue a Minor or Major from our department following this course and the 131 version will automatically be applied to their degree.
What is recursion?
(yes we had to do this)
What is the difference between a second degree and a second major?
At Washington University, a degree is the primary unit of recognition conferred by a school (such as McKelvey School of Engineering or The School of Arts and Sciences) 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 (Computer Science, Data Science, CS+Math, Econ & CS, Math & CS are among them) have second majors, which allow students to study disciplines outside their primary major.
- Second Degrees
- Each results in a literal diploma — second degree means you get two diplomas. Although this may look more impressive when hanging on a wall, it has little additional significance beyond a second major.
- Each must satisfy all the requirements of the degree program in that school, including distribution requirements. Often this means a second degree literally requires twice as much coursework/effort. It may require taking additional distribution requirements expected by the school that are not directly related to the major.
- Second Major
- Second Majors are listed on transcripts (i.e., seen by employers, grad schools, etc.), but do not result in multiple diplomas.
- Second Majors focus on only the critical content for the additional subject. They are usually around 30 additional units (10 courses). A single major requires around 120 units, so a second major is only about 25% additional work or less (second degrees in computing often allow some “double counting”, which is described elsewhere in the FAQ).
Here are some examples:
- Second Majors
- Alice’s primary major is electrical engineering, which situates her in McKelvey School of Engineering. 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.
- Second Degrees
- Alice, already a McKelvey School of Engineering 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 McKelvey 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 Arts and Sciences, he would have to complete the distribution requirements of both schools to earn both degrees.
What is the difference between a first (primary) major in computer science and a second major in computer science?
- 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 the McKelvey School of Engineering, which has requirements for all students in the school in addition to the discipline specific (i.e., computer science) requirements.
Second majors do all the requirements of their primary major (which would include some variation of the school requirements in category 2 above) and add in just the courses from category 1 above to complete the second major. That is, the additional work is just the set of courses that is required for the computer science content. Please see Second Degree vs. Second Major.
What is the difference between computer science (CS) and computer engineering (CoE)?
It’s generally true that computer science is more focused on software and computer engineering on hardware, but it’s not always that simple. One colleague (Jon Turner) puts it this way:
- 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.
Computer engineers are able to consider more options for applications that have performance, response, or error tolerance constraints.
Because there is substantial overlap between the two majors of study, students can usually move between the two programs or pursue degrees in both (changes can be requested via WebSTAC See WebSTAC Help). Computer Engineering is only available as a “primary major”, but Computer Science is available as both a primary major (which is possible via a “second degree”) or via a Second Major. Usually the “Second Major” is most reasonable way to complete requirements of both Computer Science and Computer Engineering.
We also have a variety of Master’s and PhD programs in Computer Engineering & Computer Science.
What is the difference between CSE 400 and CSE 400E How does independent study work?
We have two course listings for “Independent Study”, CSE 400E and CSE 400. CSE 400E is meant to be used for technical elective credits toward CSE degrees. CSE 400 is general credits for the university, but not toward a student’s elective credits in a CSE degree. Nearly all Independent Studies are done via 400E.
Some degrees limit the “out of CSE classroom” courses. Independent study is not a traditional class and would be subject to any such restrictions.
Independent study is generally meant for:
- Independent research into a topic
- Study of a topic not offered by WashU courses (often this is structured in a course-like way)
Independent study is not for:
- Work that is paid/compensated, including work that accrues equity, like work for a startup that doesn’t have immediate salary.
- Work where the Intellectual Property (IP) would not be retained by the student. Generally, students own intellectual property they develop as part of their studies. This is often in conflict with work developed for companies, which usually expect to own the rights to the work developed on their behalf.
Most CSE degrees will allow some “independent study” units to count as part of their CSE Technical Electives if the proposed work is relevant to the degree. Degrees that have a limited set of electives, like CS+Math, require additional approval to ensure independent study is aligned with the expectations of the technical electives for the degree.
If you have a topic you’d like to research/study that seems like a fit for independent study:
- Contact your faculty advisor and start a conversation about the work you’d like to pursue.
- Develop an outline/plan of:
- The planned schedule of work and scope (it should be distributed through the semester and the amount of work should be commensurate with the units desired. 3 units of independent study is course-like and typically ~150 hours of effort.
- A rubric for the grading/evaluation of the work.
- Potential CSE faculty members who can supervise the work. Often supervision involves weekly check-ins to ensure work is on progress and to provide feedback. It’s best to find someone with appropriate expertise or interest in the work. If may be your faculty advisor.
- Once you have a plan, it needs to be approved by all parties: your faculty advisor, the faculty member overseeing the independent study, and any degree-specific oversight committee.
- Register for designated number of units of CSE 400 or 400E for the person who has agreed to oversee the work.
- Contact the CSE Undergraduate Coordinator and request/complete the form for Independent Study, which requires signatures of all parties. Submit the form. Once the form is accepted, enrollment in CSE 400/400E will be completed.
Success depends upon 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.
What is the difference between my 4-year advisor and my departmental advisor?
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. There are two types of academic advisor:
- Four-year advisors If you are an undergraduate student, you will be assigned a four-year advisor in your primary school. Your 4-year advisor can provide information about the requirements, rules, and procedures of your primary school. As the name implies, “four year” advisors are usually good at helping you navigate the broad issues you need to complete your studies (that is, they can advise you through all four years). They can: help plan to meet requirements for all your degrees; help ensure your on-track and provide guidance if you’re struggling; plan for opportunities like study abroad; etc. Generally four-year advisors are not experts on each individual degree nor are they able to provide detailed guidance about careers in a specific field.
- Examples of questions four-year advisors can help you navigate:
- 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?
- Examples of questions four-year advisors can help you navigate:
- I have been accused of violating academic integrity policies in a course. What should I do?
- Faculty (departmental) advisors You will be assigned a faculty advisor for each degree program you are in (if you are doing several degrees more than one may be handled by the same faculty advisor). The faculty advisor provides expertise about particular fields and oversight to help ensure you meet requirements of specific degrees.
- Examples of questions your faculty advisor can help you navigate:
- What courses should I take if I am interested in Machine Learning?
- I have heard CSE ???? is really hard. What can I do to prepare for that course?
- I’m interested in work/research like X. How can steer my studies/career there?
- How do I get involved in research with CSE faculty?
- How do I prepare for job interviews, internships, and full-time employment?
- Can you provide any insight into my post-graduation options? (Immediate employment, graduate degrees, etc.)
- Examples of questions your faculty advisor can help you navigate:
What kind of computer should I have for studies in computer science or computer engineering?
“Students need access to a laptop for many courses. The School of Engineering has minimum guides here: https://techden.wustl.edu/selecting-a-laptop/mckelvey/. It recommends against Apple silicon (M1 and M2 processors). However, there are few known serious problems for the majority of CSE work and many faculty members are using Apple silicon. If you chose Apple silicon, start work early enough to ensure you will be able to run required software and be aware of computer labs in case you do encounter compatibility issues. “My computer couldn’t do this” isn’t a valid excuse for not completing work on time.
There are only a few CSE courses that require a specific operating systems and they usually have alternatives available. Example courses with machine requirements and alternatives are:
- CSE 438S (Mobile App Development): Nearly all semesters require access to a Mac for iOS app development. There is a Mac lab available for students who don’t have a Mac, which is a bit less convenient but allows all course work to be completed. (This course has been offered for Android a few times, which worked on macOS or Windows)
- CSE 439S: Mobile App Development II: Always based on iOS app development and requires access to a Mac. Again, the lab can be used.
- CSE 260M (Introduction to Digital Logic and Computer Design), CSE 362M (Computer Architecture), and CSE 462M (Computer Systems Design) use PC-based tools (Vivado is one). Students do not need access during class sessions. Those with Macs can use engineering computer labs, remote access, or try to use emulation tools, like Parallels or VMWare Fusion. All have some potential limitations: Engineering labs require travelling to campus and finding an available machine. Remote access is clunky and doesn’t support all needs, like connecting to a device via USB. As of July 2022, I’m not sure emulation has been tested on Apple Silicon to see how well it works. “
What language does CSE247/502N use? Do I have to have taken CSE131/501N?
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. (You may want to look at our CSE Placement Exam page, which includes links to resources for those who have prior programming experience with other languages to do “crash course” in Java.
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.
What probability/statistics course should I take?
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. You also may want to consider CSE courses you are interested in taking in the future. You may want to look at their prerequisites to see if there are any specific prob/stats requirements.
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 you are probably required to take QBA 120 and QBA 121. If both are taken, they will satisfy our department’s requirements.
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.
What programming languages do we teach in our curriculum?
Like many Computing programs, we feel that once you learn to program in any modern programming language, picking up another programming language is not too difficult. Some programming languages are more/less suited to certain types of work, so some courses rely on languages not covered in prereq material. Such courses often provide a brief introduction and recommend resources to learn the new language, but students are expected to work independently to ensure they are prepared for coursework. You should expect to spend some time acquainting yourself with and practicing the new language.
It’s akin to an artist who first uses one kind of paint and then switches to a different kind of paint. There are considerations in making such a switch and it may take time and practice to adapt to a new way of expressing yourself. Here, the fundamental act of reducing an idea to code is very similar no matter which programming language you use.
For those who are interested in programming languages as a subject of study, we teach CSE 455S, which programming language mechanics.
What web design courses can I take?
- CSE 204A Web Development
- CSE 330S Rapid Prototype Development and Creative Programming This course is cross listed to allow graduate students to take it with some increased expectations as 503S.
What’s a hackathon, where/when/why/how should I get involved?
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 people, 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:
- ArchHacks is/was a Washington University-hackathon hosted by our students that 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.
- 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.
- Amazon’s Deep Lens Challenge
- TechCrunch’s Disrupt Hackathon for start-ups
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. You may want to focus on the core ideas of a Minimum Viable Product (MVP) and utilize a Design Thinking process.
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.
What’s an “open” program? How do I change/add/drop a degree (open program)?
- You can request changes your prime major to another major within the same school via WebSTAC. (You can’t change prime majors to a major in another school. That requires an inter division transfer).
- You can request Minors and Second Majors from another school.
- You can also request changes to faculty advisors.
- Some combinations of degrees are not allowed, so WebSTAC may not allow you to request a degree based on your currently open programs. If you are not sure why a particular CSE degree is unavailable to you, contact either the CSE Associate Chair or the McKelvey Registrar.
- Transferring schools also begins with WebSTAC. Look for the
Change WU Schoollink.
Graduate students should contact their graduate advisor to discuss degree changes and/or the program director of the degree they want to change to.
Most changes require approval of advisors or people in charge of the degrees requested. Emails are automatically sent to notify relevant parties of requests. If a request is approved, emails are also sent notifying relevant parties (student, old advisor, new advisor).
If you’d like to know if you are already “on track” for a potential new major, you can use WUAchieve’s “What If” feature to run a degree audit. The audit will give a general overview of requirements you’ve already met and things that you may still be expected to complete. The degree audit may not perfectly match all courses and may not take into account potential “double counting”. If it isn’t clear that you can complete the new degree in a timely fashion, you may want to review the situation with an advisor.
When am I allowed to collaborate on assignments?
There are several principles at work here:
- Computer science and engineering is a collaborative discipline. Because collaboration skills are valuable in its practice, many of our courses explicitly encourage collaboration.
- Degrees and grades are individual. Thus, even those courses that feature collaborative assignments also either contain assignments that must be completed individually or include some way to individually evaluate students.
- 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. See University and McKelvey School of Engineering policies. Be sure to read the policies/syllabus/assignments for each of your courses for any additional guidance!
Following are some examples of collaborative scenarios from some 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, but these give a sense of common policies:
- An in-class studio activity 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.
- An in-class studio activity involves a team of four students who work collaboratively to complete the activity. 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 high level ideas off of other students before writing up a solution, with the requirement that anybody involved in such discussions with the students is listed at the top of the submitted solution. Students may not compare or collaborate on the actual solution itself.
- A homework assignment 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. (This ensures students have internalized the concepts and can reproduce them individually).
When and how often should I meet with my departmental faculty advisor? What kind of advice should I expect my advisor to provide?
If you are a first major in our department, your advisor must explicitly “authorize” your ability to register for courses for the next semester. Registration typically takes place a little after mid semester. You’ll need to get your first major faculty advisors “authorization” before then!
In the weeks before registration there will be an advising period where you can work with your faculty advisors to plan the following semester. Common topics of discussion include:
- course planning (ensure you are making progress toward graduate, will be prepared for courses, etc.)
- 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
All advisors will offer the ability to meet, but some will also be willing to review your schedule via email. It’s strongly recommended you take advantage of actually meeting with your advisor. The open back-and-forth discussion of a real-time meeting often brings up important topics.
Your advisor can offer advice at other times too Situations that might trigger a conversation with your advisor include:
- Struggling with course work and not where where to go for help;
- Finding you are overcommitted (i.e., too many courses) and need help identifying what to change;
- Seeking activities to enrich your studies;
- Trying to choose between multiple job or internship offers;
- Having been accused of violating the rules for academic integrity; and
- Needing a letter of reference.
- Your advisor is best able to help you if they know you well. The best way to establish a solid relationship with your advisor is to meet with them regularly, show up promptly for any meetings you have scheduled, and be as prepared as possible meetings.
While second majors and minors do not require explicit approval from their advisors to register, they are encouraged to meet with their advisors regularly and as needed.
Where can I find the form I need to fill out for independent study?
See the “Independent Study” section here.
Where can I learn more about cyber security?
Relevant courses, which can be taken by both undergraduates and graduate students, are listed in the core and electives for MS in Cybersecurity Engineering and the Graduate Certificate in Cybersecurity Engineering. The Graduate Certificate can be added to any engineering master’s degree.
Systems courses, like CSE 361S: Intro. to Systems Software and 422S: Operating Systems Organization and networking courses, like 473S Intro. to Computer Networks, provide much of the technical background needed for significant work in Cybersecurity.
Courses directly focused on security / cyber include:
- 433S: Intro. to Computer Security
- 434S: Reverse Engineering and Malware Analsysis
- 523S: Systems Security
- 571S: Network Security
- 637S: Software Security
There are also online resources that can teach these subjects, such as this free one, which provides excellent courses for all levels.
Where do CSE students study abroad?
WashU CSE students study at nearly every school that participates in the study abroad program, but some are more popular than others (for example, locations where English is the language of instruction and in common use are accessible to all WashU students). You may want to review the “Current Opportunities” section on the School of Engineering’s Study Abroad page.
Where do I look to see the various dates pertaining to our academic calendar?
* The School of Engineering’s current Academic Calendar is here: https://engineering.wustl.edu/academics/academic-calendar.html. It includes the School’s withdraw/add/drop dates for the current academic year and a few prior years.
- If you are in Arts & Sciences you may also want to consult their calendar: https://artsci.wustl.edu/academic-calendar.
- The CSE department’s calendar of events can’t be found here: https://happenings.wustl.edu/department/computer_science_engineering/calendar. It includes details of upcoming academic talks, meetings, etc.
- The University Registrar has an overall calendar for major dates for all schools and links to individual school calendars here: https://registrar.wustl.edu/academic-calendars/.
Which is better, a mac or a pc?
Students need access to a laptop for many courses. The School of Engineering has minimum guides here: https://techden.wustl.edu/selecting-a-laptop/mckelvey/. It recommends against Apple silicon (M1 and M2 processors). However, there are few known serious problems for the majority of CSE work and many faculty members are using Apple silicon. If you chose Apple silicon, start work early enough to ensure you will be able to run required software and be aware of computer labs in case you do encounter compatibility issues. “My computer couldn’t do this” isn’t a valid excuse for not completing work on time.
There are only a few CSE courses that require a specific operating systems and they usually have alternatives available. Example courses with machine requirements and alternatives are:
- CSE 438S (Mobile App Development): Nearly all semesters require access to a Mac for iOS app development. There is a Mac lab available for students who don’t have a Mac, which is a bit less convenient but allows all course work to be completed. (This course has been offered for Android a few times, which worked on macOS or Windows)
- CSE 439S: Mobile App Development II: Always based on iOS app development and requires access to a Mac. Again, the lab can be used.
- CSE 260M (Introduction to Digital Logic and Computer Design), CSE 362M (Computer Architecture), and CSE 462M (Computer Systems Design) use PC-based tools (Vivado is one). Students do not need access during class sessions. Those with Macs can use engineering computer labs, remote access, or try to use emulation tools, like Parallels or VMWare Fusion. All have some potential limitations: Engineering labs require travelling to campus and finding an available machine. Remote access is clunky and doesn’t support all needs, like connecting to a device via USB. As of July 2022, I’m not sure emulation has been tested on Apple silicon to see how well it works.
Why should I study computer science or computer engineering?
- Computing provides tools, skills, and ways of thinking that help you tackle big, complex problems in any discipline.
- That is, computing skills can help you further other interests/majors.
- Computing is a combination of applied logic, critical thinking, and creativity. Many people enjoy the computing work and the study of computing!
- The job/income prospects are good and wide ranging (everything from startups, to large corporates, to small one-person businesses).
- There are also a wide range of work environments, many of which are inclusive, diverse, and collaborative.
Why St. Louis?
Why would I consider transferring schools?
If you already have a primary interest/major and just want to add computing to your studies, it’s probably not necessary to transfer schools. You can consider one of the CSE minors or a Second Major, which can be added to studies for students in any major. (See other FAQ topics on Second Majors and Minors)
If you want only one major and want to study computing, you can consider the CSE Majors offered from the School of Engineering. Three of the majors are available from both the School of Engineering and the School of Arts and Sciences. The Arts and Sciences variations are described: Economics and Computer Science, Mathematics and Computer Science, and Data Science. If you’re not in McKelvey and want to pursue one of the majors only offered by CSE, you’ll need to pursue a transfer. If you want to pursue one of the degrees offered by both McKelvey and ArtSci, you should review the Bulletin — The primary school determines a variety of academic policies and degree requirements and you may want to request a transfer to whichever school’s policies/requirements are best for you.
With what frequency are courses offered?
|CSE222S||Once a year||Siever|
|CSE341T||Fall, odd years||Agrawal|
|CSE431S||Every third semester||Shook|
|CSE452A||Every two years||Ju|
|CSE460T||Spring, even years||Richard|
|CSE462M||Spring, odd years||Richard|
|CSE465M||Taught by ESE||Richard|
|CSE232||Fall, best effort||Cytron|