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 severe economic hardship. You should check with the Office of International Students and Scholars 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).
- 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 get a different faculty advisor?
In most cases you can request a new faculty advisor yourself in WebSTAC. These requests may take up to a month to be reviewed, but they are generally granted. Requests for a specific advisor may not be granted though (advisors may already have a full advising load or they may not be well suited to advise about a specific degree).
The “Change” link can be found to the right of the Advisor’s name in the “Current Programs” section on WebSTAC. See WebSTAC Help.
The change link should look like:
That option may not be available during advising/registration periods or for certain degree programs that don’t allow students to make such requests (all CSE programs do allow this). If the option isn’t available and it is not advising/registration time (approximately mid-semester until the last week of the semester), contact the registrar in the school that is the home to the degree program where you’d like a new advisor.
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.
- If advisors approve, courses and academic records will be reviewed by the CSE Associate Chair to ensure they are consistent with the expectations CSE Tech electives (i.e., sufficient computing content that contributes significantly to a student’s 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 Engineering (McKelvey School of Engineering) and other schools?
Each school has rules concerning how courses count toward its programs of study. For example, Arts and Sciences (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 a course from another department that CSE feels has sufficient computing content or relevance to their degree, CSE can waive some degree credit. The B.S. in C.S. and Second Major in C.S. allows up to 6 units to come from “Out of the CSE classroom”, which includes courses like this as well as independent work, like CSE 400E (Independent Study). The Minor in C.S. allows 3 units to come from “Out of the CSE classroom”. In both cases if a course from another department is deemed to be an acceptable addition to a students C.S. degree and that course is also needed for another degree program, CSE will “waive” an appropriate number of units of Tech Electives to acknowledge the relevant coursework while still allowing the specific course to count for another degree.
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.
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 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 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 sites 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.
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 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 Prof. Michael Brent. (Prof. Jeremy Buhler is on sabbatical fall 2023 and spring 2024), but also has advised Bioinformatics Minors)
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 Design, 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 the CSE Undergraduate Coordinator
- Look for REU opportunities (also via the CSE Undergraduate Coordinator)
- Participate in Career Fairs, company presentations, and other activities sponsored by The Career Center.
- Participate in one of the School of Engineering’s many Mentoring Programs.
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 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 documents your progress as a student of computer science as well as material for conversations where 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 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 organizations and alums provide an opportunities for “mock interviews” once a year.
- CSE247R is a one-hour seminar that is offered every semester. It can be taken either concurrently or after CSE 247. 247R includes mock interviews as well as practice with material that has been part of some technical interviews.
- 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 the Data Science Practicum requirement met?
Before starting the project, the project needs to be approved via the practicum registration form (here / contact the CSE Undergraduate Coordinator). This means it needs to be proposed by the student and approved by both the advisor and one member of the BS/ABDS committee. If being satisfied via a course the name and number, such as CSE400E, etc., must be provided.
After completing the project (before the end of the semester it is counted for) the advisor and a BS/ABDS committee member will need to evaluate the project (report/presentation/documented software product or the like) and determine if the work satisfies the practicum. If it does, academic records will be updated to indicate the Practicum Requirement has been fulfilled.
Incomplete: If the project is not finished in the semester it is registered for, the advisor (or course instructor) or a AB/BSDS committee member will need to issue an incomplete (I) for the course the practicum is registered for.
Grading: The letter grade is up to the advisor (or course instructor) similar to our independent study or MS projects.
Any deviation from the approved practicum approaches must be explicitly approved by the BS/ABDS committee in advance of the work. This ensures the work will meet the objectives of the practicum, there will be sufficient faculty oversight, and the outcome will be reported in a way that can be reviewed by the BS/AB DS committee.
We lean towards accepting internship experiences in satisfaction of the requirements, subject to faculty agreeing to oversee it. If it is paid, it cannot count for credit, but can satisfy the requirements. The oversight requirements may require sharing Intellectual Property and internal details of the project and, consequently, should also be approved by employers in advance. Evidence of such approval should be submitted with the Practicum registration form.
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.
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 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?
If you aren’t already doing so, make use of any TA and instructor office hours. Most courses also have some sort of forum platform, like Piazza. Make use of it: Read existing posts, post questions about content (which others probably share), etc.
The School of Engineering provides tutoring services 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 from Engineering for 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 you 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 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: a) the grades obtained each time and b) 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 computing student group within our department / school / university?
There are a variety of formal and informal clubs and organizations that may be appeal to those with an interest in computing or in the School of Engineering. Here are some of the formal clubs/organizations (in alphabetical order) — quotes are the clubs description of itself:
Association of Computing Machinery (ACM)
Details about the student chapter of ACM can be found at the WashU ACM page.
Yes! The ACM is an international organization for those who study or practice computer science or computer engineering. ACM is an umbrella organization for various special interest groups, each of which concentrates on a specific area of computer science. For example, SIGPLAN is the 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.
Developer Student Club WashU
Developer Student Club at Washington University in St. Louis is a university-based community group powered by Google Developers. By joining DSC WashU, students gain experience working in a team environment and building solutions for their community.
EnCouncil serves the interest of undergraduates in the School of Engineering. It is described as:
We provide a voice for the engineering student body to voice their opinions to the engineering undergraduate student services office and provide spaces for engineering students to mingle with their peers, faculty, and professionals.
Girls Who Code WashU
Girls Who Code is a national non-profit organization dedicated to closing the gender gap in technology. Girls Who Code WashU is a branch of this national non-profit organization with the same goals - empowering, inspiring, motivating, and supporting girls to dream big, think outside of the box, and have the confidence in themselves to change their world.
Human-Computer Interaction Club
We’re a group of students passionate about design & development.
Institute of Electrical and Electronic Engineers (IEEE)
The IEEE Student Chapter is a chapter of the international IEEE. The global organization describes itself as:
IEEE and its members inspire a global community to innovate for a better tomorrow through highly cited publications, conferences, technology standards, and professional and educational activities. IEEE is the trusted “voice” for engineering, computing, and technology information around the globe.
And the student chapter is described as:
IEEE’s core purpose is to foster technological innovation and excellence for the benefit of humanity. If you’d like to learn more about IEEE and the projects we support, come down to one of our general meetings!
WashU Robotics Club
WashU Robotics Club is a student-run organization at Washington University in St. Louis seeking to create a community surrounding the growing topic of robotics by leading exciting robotics projects, attending robotics competitions, and hosting relevant robotics workshops and events. It was established in January 2022.
Women in Computer Science (WiCS)
Washington University Women in Computer Science’s mission is to create a welcoming and supportive community for women in computing, bolster professional development by providing networking and mentorship opportunities, and inspire future generations of women by giving back to the greater St. Louis community.
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.
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 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 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 The School of Continuing & Professional Studies (Formerly 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 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 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 Undergraduate Student Services 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 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 (email or other contact info) 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 that course CSE X 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.
ESE 326: Probability and Statistics for Engineering is one of our school’s course in probability and statistics. It satisfies the requirements of the majority of our degrees, however Data Science degrees require MA 3211 and MA 43211.
Note that the School also offers Engr 328: Engineering Statistics with Probability. Engr 328 has a slightly different focus and more emphasis on statistics. Engr 328 is NOT accepted for CSE degrees.
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, meet new people, learn new things, 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:
- HackWashU is the student organization (See WUGO page here) for WashU Major League Hacking events.
- 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.
- 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.
- 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
- 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.
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
- 527S: Data-driven Privacy and 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 am I on a waitlist? How are waitlists managed? What are my chances of enrollment? What is “Managed by waitlist”?
Why am I on a waitlist?
It usually depends on the course:
- Waitlists are used when the demand for a course exceeds the capacity. See Overflow enrollment below.
- Courses that indicate they are “Managed by waitlist” put all students on a waitlist initially. See Managed by waitlist below.
Most courses that are not “Managed by Waitlist” and have overflow enrollment will usually give students in CSE degrees (or PhDs) priority and will process students in waitlist order. Openings are filled as students drop/add. Often additions are not done until the first week of the semester when students are changing schedules and there are openings.
Introductory courses (CSE 131/501N, CSE 132, CSE 240, CSE 247/502N) are usually able to accommodate all students, but some students may have to select alternate times/sections with openings.
Managed by waitlist
Courses that are “Managed by Waitlist” may use a waitlist for a combination of reasons. The most common reasons are: a) to prioritize some groups of student (degrees with high need for the specific course), b) to ensure pre-reqs are met before enrollment, or c) to ensure there is fair access to a high demand course. Such courses will usually enroll about 80-90% of the course capacity by the end of the registration semester (for example, by the end of the spring semester the vast majority of enrollments will be done for fall semester).
Many courses are essentially the same size from semester to semester. It may help to review the enrollment of prior semesters and the current size of the waitlist to get some idea of chances of enrollment. Go to the course in WebSTAC, expand the “Details” for the course, and select the “History” and then a specific semester to be able to look at enrollments of prior semesters. There are other factors that influence the size, like having a new/different instructor and the capacity of the assigned room.
Courses that are managed by waitlist
Two rules that apply to most waitlists
- Your waitlist position is not relevant in the majority of courses that are managed by waitlist. Waitlist position is based on when one adds the course to the schedule. This does not provide fair access or allow prioritization of students who need specific courses.
- There are exceptions and limitations to all prioritization schemes. For example, priority may not be given to someone who has recently added/changed degrees and now needs a specific course. Some courses ensure enrollments of some non-senior undergraduates who may be able to be Teaching Assistants for the course in the future.
If you are on a waitlist when class begins
If you are still on a waitlist when class begins, there may still be some chance of enrollment. You should attend the first session(s) if space permits and do work/etc. (officially enrolled students get priority if there is insufficient classroom space). If the instructor does not address waitlisted students during the first class session or you are unable to attend due to space constraints, you may contact them following the session (in person after class if scheduling permits or via email) to seek guidance on your chances of enrollment.
Here are the common waitlist processing priorities and guidance for many courses:
- CSE 204A: Web Development: Priority is given to students in CSE degree programs that accept this course as an elective for the degree program. Eligible students are admitted in waitlist order and the course is strictly capped at the number of seats listed for each section. If your waitlist position is greater than 15% of the total course enrollment you are not likely to be able to join the course. For example, if the course has 60 seats and you are higher than 9th on the waitlist you probably won’t be able to join.
- CSE 217A: Intro. to Data Science: This course is required for Data Science majors, so they get top priority. Students who are contemplating a data science major would need to take this course in their sophomore year to be able to complete the Major in four years, so sophomores in any CSE degree (Major in CS, Minor, Second Major, etc.) get the second level of priority, followed by other CSE students based on waitlist order.
- Lab/studio sections are often the major constraint on enrollment. Most students prefer a studio time that aligns with the lecture time. Selecting a studio time that does not align with lectures may increase the chances of students who are not in the highest priority groups.
- CSE 231S Intro. to Parallel and Concurrent Programming: Priority is given to students in CSE degree programs that accept this course as an elective for the degree program. Some priority is also given to students who have been waitlisted in prior semesters.
- CSE 256A Intro. to Human-Centered Design: This course is one of two “Integration” course options for HCI minors. Consequently, HCI Minors get priority followed by other students in CSE degrees that accept the course. Some priority is also given to students who have been waitlisted in prior semesters.
- CSE 311A: Introduction to Intelligent Agents Using Science Fiction. Prioritizing sophomores, then juniors. Not allowed for students who have previously or currently enrolled in CSE 417T or 412A.
- CSE 314A: Data Manipulation and Management. The course is required for and prioritizes Data Science Majors, then other CSE degrees that accept the course for CSE degree credit.
- CSE 337A: Retro Game Design. Priority is given to degrees that accept the course for credit. Enrollment is based on random selection from each class rank, weighted as follows: approx. 30% seniors, 30% juniors, 30% sophomores, 10% first years.
- CSE 347: Analysis of Algorithms: Enrollment prioritizes by seniority/graduation dates of students in degrees that require CSE 347 specifically.
- CSE 362M: Computer Architecture: Prerequisite of CSE 260M or instructor approval of equivalent experience is required.
- CSE 400-400E: Independent Study: You will stay on the waitlist until you submit an independent study form. Then once approved, you will be enrolled. You can find the form here.
- CSE 411A: AI and Society: Some priority is given to students in CSE degree programs that accept this course as an elective for the degree program. Students who will soon graduate will have some priority over students who have another semester or year to take the course.
- CSE 416A: Analysis of Network Data: Prerequisites are enforced (CSE 247, ESE 326, Math 309 or equivalents and permission of the instructor).
- CSE 417T: Introduction to Machine Learning: Math prerequisites are enforced (or evidence of equivalent experience and permission of instructor).
- CSE 422S: Operating Systems Organization. Prerequisite of 361S (or evidence of equivalent experience and permission of instructor) is enforced.
- CSE 428S: Multi-Paradigm Programming in C++. Prerequisite of 332S (or evidence of equivalent experience and permission of instructor) is enforced.
- CSE 450A: Video Game Programming: Priority is given to degrees that accept the course for credit. Roughly equal seats are given to graduate students and upper level undergraduates. Some seats reserved for Sophomores and Juniors. Enrollment is based on random selection from each demographic. For example, approximately 40% of the course will be randomly selected from senior undergraduates in CSE degrees that accept the course. Another 40% from graduate students. 20% from undergrad sophomores/juniors.
- CSE 451A: Video Game Programming II. CSE 450A prerequisite is enforced (or evidence of equivalent experience and permission of instructor).
- CSE 454A: Software Engineering for External Clients. Pre-requisites are strictly enforced. Senior undergraduate students enrolled in a CSE major that meet the pre-requisites are prioritized for enrollment first, followed by Junior undergraduate students meeting the pre-reqs and enrolled in a CSE major, followed by Master’s students enrolled in a CSE degree. Graduate students supported by research funding are not able to take the course.
- CSE 457A: Introduction to Visualization. Undergraduate students must have completed CSE 330S or have instructor approval of equivalent experience. Sophomores and juniors who have taken CSE 330S will be given priority, as this helps to maintain a strong TA pool for future years (~30%). Roughly equal seats will be given to Ph.D. students and HCI minors. The remaining seats will be filled on a first-come, first-served basis.
- CSE 497, 498, 499: Senior Project 1, Senior Project 2, & Undergraduate Honors Thesis: You will stay on the waitlist until you submit an independent study form. Then once approved, you will be enrolled. You can find the form here.
- CSE 517A: Machine Learning. Prerequisites of either CSE 417T or ESE 417 is enforced (or evidence of equivalent experience and permission of instructor).
- CSE 522S: Advanced Operating Systems. Prerequisite of 422S or graduate standing is enforced (or evidence of equivalent experience and permission of instructor).
- CSE 527A: Natural Language Processing. Priority is given to students in CSE degree programs that accept this course as an elective for the degree program. Prerequisites of basic linear algebra, basic probability and statistics, basic machine learning (CSE 417T or ESE 417 or equivalent courses or instructor consent) and Python programming enforced.
- CSE 532S: Advanced Multi-paradigm Software Development. Prerequisite of 332S (or evidence of equivalent experience and permission of instructor) is enforced.
- CSE 533T: Coding and Information Theory for Data Science. Pre-req knowledge will be strictly enforced. The instructor will survey students to confirm adequate preparation prior to processing the waitlist.
- CSE 537T: Trustworthy Autonomy. Pre-reqs are strictly enforced. CSE and ESE PhD students have the highest priority, then CSE students in degrees that accept the course for degree credit (in waitlist order), then, space permitting, anyone else (in waitlist order).
- CSE 570S: Recent Advances in Networking. Priority is given to CSE and ESE students.
- CSE 559A: Computer Vision. Priority is given to students in CSE degrees that accept the course for degree credit. Priority will be given to PhD students and then in waitlist order.
- CSE 571S: Network Security. Students in the M.S. in Cybersecurity Engineering or the Cybersecurity Graduate Certificate have priority. Enrollment is strictly capped.
- CSE 587A: Algorithms for Computational Biology. PhD students in the Computational and Systems Biology DBBS PhD program, for whom CSE587A is required, are enrolled first, then all other PhD students, then Bioinformatics minors, then all others (space permitting).
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.