Welcome to the Computer Science Department! Our main office is located in 224 New Engineering Building. There you will find the administrative staff, as well as the Director of Undergraduate Studies (DUS), Dr. Houlahan. The department chair is Prof. Scott Smith, located in NEB 214. We hope you will find this manual to be a helpful guide as an undergraduate in our department. We also have many resources available on-line through our department website: www.cs.jhu.edu.
The Computer Science Department offers three types of undergraduate programs. For those who intend to pursue a mainstream career in computer science, we recommend the ABET accredited Bachelor of Science degree. For those who want a broader program of study, perhaps so that computing technology will empower them in other fields, we offer a Bachelor of Arts program. Students in other majors may also choose to complete a Minor in computer science. This advising manual applies to these three programs. For specific program degree requirements, please consult the on-line catalog at www.cs.jhu.edu/courses. The purpose of this manual is to clarify policies and procedures, as well as provide suggestions on program electives and scheduling.
There are several other closely related degree options that might interest you, however they are not addressed in this manual. The Computer Science Department and the Department of Electrical and Computer Engineering jointly offer a bachelor degree in Computer Engineering. There is also a Minor in Computer Integrated Surgery, managed by the CISST ERC. And lastly, many students find the Masters in Information Security, offered through the Information Security Institute to be an attractive next step. This program is distinct from the graduate programs (MSE and PhD) in Computer Science that students may also progress into. General information on concurrently pursuing a masters degree while finishing an undergraduate degree is included below.
The first step in declaring a first or second major, or a minor in computer science is to visit the Director of Undergraduate Studies (DUS). This is currently Dr. Houlahan, who may be found in NEB 224. She will review your courses and provide guidance on choosing the most appropriate program of study. She also will help you choose a CS faculty advisor if you decide to pursue a major. Students declaring a major (first or second) will need to bring the appropriate form for Dr. Houlahan to complete, and then return it to the Advising Office and the Registrar. Students declaring a minor should check with their major department as to whether they require any declaration forms as well.
Dr. Houlahan advises all the CS minors. CS first and second majors are all assigned an advisor from among the CS faculty. Once an advisor is chosen, it is your responsibility to schedule a meeting at least once a semester in order to discuss your semester course selections. You are also encouraged to discuss career and graduate school plans with your advisor. You will be given your advisor's email address, and general office location. Please remember that our faculty do travel for conferences and other activities, so you should try to schedule necessary meetings at least one week in advance. However, most faculty have an open door policy welcoming students for informal chats if you catch them in their office.
As you get to know our faculty and the field of CS better, you may request an advisor change to one whose interests match yours, or simply someone with whom you would prefer to work. Please submit the on-line change request form at ugrad.cs.jhu.edu/~houlahan/advisor.html as the first step. Students will also need to bring Dr. Houlahan an advisor change form to sign and then return it to the Registrar to complete the advisor change process. It is recommended that you ask your intended new advisor if he or she will take you on as an advisee before requesting a change. (We try to maintain a reasonable balance of advisees/faculty member.)
You have several resources for advising in addition to your direct faculty advisor. Dr. Houlahan serves as a general advisor for the department. She will only sign forms or release holds for assigned advisors if they are unavailable and ask her to act on their behalf. However, she is always available for general consultation on degree programs, your progress, future options, and special opportunities within the department and school. At the school level, the WSE Advising Office in NEB 126 provides many services for engineering students. These include general advising on school-wide policies and opportunities, as well as special help for academic struggles. Lastly, the Homewood Advising Office in Garland Hall, 3rd floor North, provides support for academics including tutoring and pre-professional advising, as well as programs such as Study Abroad.
Students are expected to follow the degree requirements in effect at the time they declared a major or minor in computer science. However, you also have the option of satisfying a more recent set of requirements. It is imperative in either case that you follow one complete set of requirements. You cannot mix and match from various years. Students should consult with their advisors regarding their program of study, but ultimately it is each student's responsibility (not the advisor's) to make sure he or she has met all the requirements. Under special circumstances a student may request a waiver or substitution of a departmental requirement. This must be first approved by the faculty advisor, and in some cases also by the department DUS or chair. Any approved exceptions must be documented with an email to Dr. Houlahan, as well as a WSE substitution/waiver form.
For specific program degree requirements, please consult the on-line catalog at www.cs.jhu.edu/courses. Students are expected to keep track of their degree progess using a departmental worksheet. These Excel files, one for the BS, the BA and the minor, are all available from the department website. Majors should bring updated copies of this worksheet to each semester advising meeting. At the start of senior year, majors should give a copy to Dr. Houlahan for a pre-graduation check to identify any potential problems. Once their last semester courses are finalized, students must give Dr. Houlahan a final worksheet for degree verification. All students are required to submit a "Graduation Application Form" to the registrar in their senior year as well, listing all degrees and programs they expect to complete. Lastly, majors are required to complete a departmental Senior Exit Survey, which also gets returned to Dr. Houlahan.
The CS Department provides a computer lab for its undergraduate students, located in NEB 225. It currently houses several different types of computing environments. There is a collaboration room consisting of conference tables with internet and electrical hook-ups for laptop use. The back room contains many workstations, some of which are Windows PCs, and others which are Linux boxes connected to the department undergraduate unix server. Students have 24/7 secure access to the lab through their J-cards once validated. Additional facilities are available at the campus level, including general purpose computing labs, a digital media center, and wireless access to the Internet.
All CS students are eligible to receive accounts to access our undergraduate unix file server, as well as the Windows machines in the lab. In order to get access, you must submit an Account Request Form, available in the department main office, NEB 224. This generally takes a few days to process, then the computer staff will contact you to give you login and password information. You will need to bring your J-card to them in order to set-up access to the computer lab.
The unix server provides software that you will use in many courses, as well as email. The department maintains several mailing lists for sending notices to students. Make sure that the support staff and the DUS have the email address that you prefer to use on their lists. If you are not going to use your CS account for email, then you might want to set up an automatic forward to your email of choice. If you have questions or problems regarding the CS computing facilities at any point, please email "support@cs.jhu.edu" and be as specific as possible regarding the problem.
In accordance with Hopkins' mission as a research university, undergraduate students in computer science are encouraged to gain some research experience. The primary mechanism for getting involved is to approach a faculty member whose area interests you and ask how you can participate. Generally the faculty member will expect you to have a course in their area in order to get a background for actual research projects. Several upper level courses have project components which often lead to further research. However, in some cases there may be opportunities to learn about an area while serving as a research lab administrator or webmaster.
In addition to the various independent undergraduate courses available in the department, there are several programs specifically designed to promote undergraduate research: the Pistritto Research Fellowship and the Senior Honors Thesis. Although both programs are usually pursued as individual efforts, they have supported group projects in the past.
The Pistritto Research Fellowship is an application based program which awards a stipend to a student annually for research in information visualization. A call for applications is sent via email each spring for the following academic year. The fellowship recipient may choose to pursue the research during the summer or during the regular school year, in conjunction with the sponsoring faculty member.
The Senior Honors Thesis program enables students with CS course GPAs of 3.5 or greater to pursue a full year (6 credits) of research with a faculty member. Interested students must submit a thesis proposal in spring of their junior year. If accepted, they will register for the courses 600.519 and 600.520 during senior year while doing the research. They are required to give a presentation on their work and submit a final thesis report at the end of the spring semester. With departmental faculty approval of the work, the student will then receive the distinction "Departmental Honors with Thesis" on his or her final transcript. Please visit the Senior Thesis webpage at www.cs.jhu.edu/undergraduate-honors for more details.
Departmental Honors (without thesis) are awarded to students who graduate with a computer science course GPA of 3.5 or above.
Students are encouraged to pursue internships during winter and summer breaks. Generally these are done for money in the CS field. However, the unversity does have policies regarding receiving credit instead of pay for appropriately oriented work. The CS career coordinator is Dr. Peter Froehlich. He maintains and develops contacts with many companies, both local and national, to facilitate internship and job opportunities. Please check your CS email and keep your eyes out for flyers about company visits and information sessions within the department. You should also register with the campus Career Development Office in order to stay abreast of campus wide visits and job fairs. It is always the student's responsibility to apply directly to a company for any internships or jobs which interest them. We do not have the authority to place students into any positions.
The CS department supports two student groups. One is a JHU Chapter of the Association for Computing Machinery (ACM). The ACM is an international professional organization of computer scientists. All students with an interest in computer science are encouraged to get involved in the ACM. The group has an office in NEB 319 and runs weekly meetings at 5pm on Thursdays during the school year. They also sponsor special events, which include pizza & movie nights, as well as local and regional programming contests. Their website is www.acm.jhu.edu.
The other student group is a JHU Chapter of Upsilon Pi Epsilon (UPE), which is the international computer science honor society. Students may apply for acceptance to UPE in their junior or senior years. Acceptance is based largely on academics (CS GPAs in particular), with some consideration for service as well. Members of our UPE chapter participate in various recruiting and other service projects in the department throughout the school year. Their website is www.acm.jhu.edu/~upe.
The concurrent program at Hopkins enables undergraduates to apply for and begin taking courses towards a Masters degree before completing their degrees. Most students apply for the program in their junior year, and will finish both degrees in five years total. It is not necessary for your undergraduate major and your masters degree to be in the same field. For example, many CS undergraduates do the concurrent program to get a Masters in Security Informatics. Mixing the degrees is also an alternative to doing a double major in closely related fields such as CS and computer engineering or math. As a concurrent student, you must satisfy all the requirements of your bachelors degree as well as all the requirements of the masters degree. Some departments may permit an overlap of at most two courses. All other courses, including undergraduate electives, must be separate and distinct for the two degrees. If you are interested in applying for the concurrent program, please see our Graduate Program Coordinator, Cathy Thorton, in NEB 224, or simply apply on-line through our website: www.cs.jhu.edu/grad-admissions-info.
Below you will find sample 4 year schedules to aid in course selection. Required courses are noted in boldface type. Other courses listed are highly recommended. Please remember that these schedules are suggestions only. Students are highly encouraged to customize the program to suit their particular interests.
The following keys apply to all sample schedules:
|
  |
|
||||||||||||||||||||||||||||||||||||||
| year | semester | course (bold indicates requirement) | Area | CS any | CS upper | Math | Science | H/S | Broad | Elective | Writing |
|   |   |   |   |   |   |   |   |   |   |   |   |
| 11  | fall | 600.107 Intro Prog Java/AP credit  | CS | 3 |   |   |   |   |   |   |   |
| 11 | fall | 600.105 M & Ms  | F |   |   |   |   |   |   | 1 |   |
| 11 | fall | 110.108 Calculus I  | M |   |   | 4 |   |   |   |   |   |
| 11 | fall | 550.171 Discrete Math  | M |   |   | 4 |   |   |   |   |   |
| 11 | fall | Writing course (060.113, 220.105, 661.110)  | W |   |   |   |   | 3 |   |   | 3 |
| 11 | spring | 600.104 Computer Ethics  | CS | 1 |   |   |   |   |   |   |   |
| 11 | spring | 600.226 Data Structures  | CS | 3 |   |   |   |   |   |   |   |
| 11 | spring | 110.109 Calculus II  | M |   |   | 4 |   |   |   |   |   |
| 11 | spring | H/S elective  | HS |   |   |   |   | 3 |   |   |   |
| 11 | spring | Broadening elective  | B |   |   |   |   |   | 3 |   |   |
| 12 | fall | 600.120 Intermediate Programming  | CS | 4 |   |   |   |   |   |   |   |
| 12 | fall | 600.333 Computer System Fundamentals  | CSU |   | 4 |   |   |   |   |   |   |
| 12 | fall | H/S elective  | HS |   |   |   |   | 3 |   |   |   |
| 12 | fall | 171.101 Physics I (or Chem)  | N |   |   |   | 4 |   |   |   |   |
| 12 | fall | 173.111 Physics I Lab (or Chem)  | N |   |   |   | 1 |   |   |   |   |
| 12 | spring | 600.211 Unix Systems Programming  | CS | 3 |   |   |   |   |   |   |   |
| 12 | spring | 600.344 Computer Network Fundamentals  | SYST  |   | 3 |   |   |   |   |   |   |
| 12 | spring | Linear Algebra font>  | M |   |   | 4 |   |   |   |   |   |
| 12 | spring | 171.102 Physics II (or Chem)  | N |   |   |   | 4 |   |   |   |   |
| 12 | spring | 173.112 Physics II Lab (or Chem)  | N |   |   |   | 1 |   |   |   |   |
| 13 | fall | Broadening elective  | B |   |   |   |   |   | 3 |   |   |
| 13 | fall | 600.271 Automata  | CS | 3 |   |   |   |   |   |   |   |
| 13 | fall | 600.321 OOSE (oral req)  | CSU |   | 3 |   |   |   |   |   |   |
| 13 | fall | H/S elective  | HS |   |   |   |   | 3 |   |   |   |
| 13 | fall | Science elective if Chem, else free  | N/F |   |   |   |   |   |   | 3 |   |
| 13 | fall | Writing elective [count credits elsewhere too]  | W |   |   |   |   |   |   | 3 | 3 |
| 13 | spring | CS Applications upper  | APPL  |   | 3 |   |   |   |   |   |   |
| 13 | spring | CS elective  | CS | 3 |   |   |   |   |   |   |   |
| 13 | spring | H/S elective  | HS |   |   |   |   | 3 |   |   |   |
| 13 | spring | 550.310 Probability & Statistics  | M |   |   | 4 |   |   |   |   |   |
| 13 | spring | Science elective  | N |   |   |   | 3 |   |   |   |   |
| 14 | fall | 600.363 Intro Algorithms  | ANAL  |   | 3 |   |   |   |   |   |   |
| 14 | fall | CS elective (Honors Thesis)  | CSU |   | 3 |   |   |   |   |   |   |
| 14 | fall | Broadening elective  | B |   |   |   |   |   | 3 |   |   |
| 14 | fall | Free elective  | F |   |   |   |   |   |   | 3 |   |
| 14 | fall | Math elective  | M |   |   | 4 |   |   |   |   |   |
| 14 | spring | Broadening elective  | B |   |   |   |   |   | 3 |   |   |
| 14 | spring | CS elective (Senior Design)  | CSU |   | 3 |   |   |   |   |   |   |
| 14 | spring | Free elective  | F |   |   |   |   |   |   | 4 |   |
| 14 | spring | H/S elective  | HS |   |   |   |   | 3 |   |   |   |
| 14 | spring | Science elective  | N |   |   |   | 3 |   |   |   |   |
|   |   |   |   |   |   |   |   |   |   |   |   |
|   |   | BS REQUIREMENTS  | 126 | 42 total, 19 upper | 22 | 16 | 18 | 12 |   | 6 | |
|   |   | TOTALS  | 126 | 20 | 22 | 24 | 16 | 18 | 12 | 14 | 6 |
|   |   |   |   | 42 |   |   |   |   |   |   | |
| year | semester | course (bold indicates requirement) | Area | CS any | CS upper | Math | Science | H/S lower | H/S upper | Language | Elective | Writing |
|   |   |   |   |   |   |   |   |   |   |   |   |   |
| 11  | fall | 600.107 Intro Prog Java/AP credit  | CS | 3 |   |   |   |   |   |   |   |   |
| 11 | fall | 600.105 M&Ms  | F |   |   |   |   |   |   |   | 1 |   |
| 11 | fall | 110.108 Calculus I  | M |   |   | 4 |   |   |   |   |   |   |
| 11 | fall | 550.171 Discrete Math  | M |   |   | 4 |   |   |   |   |   |   |
| 11 | fall | Writing course (060.113, 220.105, 661.110)  | W |   |   |   |   | 3 |   |   |   | 3 |
| 11 | spring | 600.104 Computer Ethics  | CS | 1 |   |   |   |   |   |   |   |   |
| 11 | spring | 600.226 Data Structures  | CS | 3 |   |   |   |   |   |   |   |   |
| 11 | spring | Free elective  | F |   |   |   |   |   |   |   | 3 |   |
| 11 | spring | H/S elective  | HS |   |   |   |   | 3 |   |   |   |   |
| 11 | spring | 110.109 Calculus II  | M |   |   | 4 |   |   |   |   |   |   |
| 12 | fall | 600.120 Intermediate Programming  | CS | 4 |   |   |   |   |   |   |   |   |
| 12 | fall | 600.333 Computer System Fundamentals  | CSU |   | 4 |   |   |   |   |   |   |   |
| 12 | fall | 171.101 Physics I (or Chem)  | N |   |   |   | 4 |   |   |   |   |   |
| 12 | fall | 173.111 Physics I Lab (or Chem)  | N |   |   |   | 1 |   |   |   |   |   |
| 12 | fall | Writing elective [count credits elsewhere too]  | W |   |   |   |   |   |   |   | 3 | 3 |
| 12 | spring | 600.344 Networks  | CSU |   | 3 |   |   |   |   |   |   |   |
| 12 | spring | H/S elective  | HS |   |   |   |   | 3 |   |   |   |   |
| 12 | spring | Math elective  | M |   |   | 4 |   |   |   |   |   |   |
| 12 | spring | 171.102 Physics II (or Chem)  | N |   |   |   | 4 |   |   |   |   |   |
| 12 | spring | 173.112 Physics II Lab (or Chem)  | N |   |   |   | 1 |   |   |   |   |   |
| 13 | fall | 600.271 Automata  | CS | 3 |   |   |   |   |   |   |   |   |
| 13 | fall | 600.321 OOSE  | CSU |   | 3 |   |   |   |   |   |   |   |
| 13 | fall | Language I  | L |   |   |   |   |   |   | 3 |   |   |
| 13 | fall | Writing elective [count credits elsewhere too]  | W |   |   |   |   |   |   |   | 3 | 3 |
| 13 | fall | Free elective  | F |   |   |   |   |   |   |   | 3 |   |
| 13 | spring | Science elective if Chem, else free  | N/F |   |   |   |   |   |   |   | 3 |   |
| 13 | spring | H/S upper level elective  | HSU |   |   |   |   |   | 3 |   |   |   |
| 13 | spring | Language II  | L |   |   |   |   |   |   | 3 |   |   |
| 13 | spring | Math elective >= 200 level  | M |   |   | 4 |   |   |   |   |   |   |
| 13 | spring | Science elective  | N |   |   |   | 3 |   |   |   |   |   |
| 14 | fall | CS upper  | CSU |   | 3 |   |   |   |   |   |   |   |
| 14 | fall | Free elective  | F |   |   |   |   |   |   |   | 3 |   |
| 14 | fall | Free elective  | F |   |   |   |   |   |   |   | 3 |   |
| 14 | fall | H/S upper level elective  | HSU |   |   |   |   |   | 3 |   |   |   |
| 14 | fall | Writing elective [count credits elsewhere too]  | W |   |   |   |   |   |   |   | 3 | 3 |
| 14 | spring | CS upper | CSU |   | 3 |   |   |   |   |   |   |   |
| 14 | spring | Free elective  | F |   |   |   |   |   |   |   | 3 |   |
| 14 | spring | Free elective  | F |   |   |   |   |   |   |   | 3 |   |
| 14 | spring | Free elective  | F |   |   |   |   |   |   |   | 3 |   |
| 14 | spring | H/S elective  | HS |   |   |   |   | 3 |   |   |   |   |
|   |   |   |   |   |   |   |   |   |   |   |   |   |
|   |   | BA REQUIREMENTS  | 120 | 30 total, 15 upper | 18 | 12 | 18 total, 6 upper | 6 |   | 12 | ||
|   |   | TOTALS  | 121 | 14 | 16 | 20 | 13 | 12 | 6 | 6 | 34 | 12 |
|   |   |   |   | 30 |   |   |   |   |   |   |   | |
| year | semester | course (bold indicates requirement) | Area | CS any | CS upper | Math | Science | H/S | Broad | Elective | Writing | E&M |
| 11 | fall | 600.107 Intro Prog Java/AP credit | CS | 3 | ||||||||
| 11 | fall | 600.105 M&Ms | F | 1 | ||||||||
| 11 | fall | 110.108 Calculus I | M | 4 | 4 | |||||||
| 11 | fall | 550.171 Discrete Math | M | 4 | ||||||||
| 11 | fall | Writing course (060.113, 220.105, 661.110) | W | 3 | 3 | |||||||
| 11 | spring | 600.104 Computer Ethics | CS | 1 | ||||||||
| 11 | spring | 600.226 Data Structures | CS | 3 | ||||||||
| 11 | spring | 110.109 Calculus II | M | 4 | ||||||||
| 11 | spring | H/S elective | HS | 3 | ||||||||
| 11 | spring | 660.105 Intro to Business | B | 4 | 4 | 4 | ||||||
| 12 | fall | 600.120 Intermediate Programming | CS | 4 | ||||||||
| 12 | fall | 600.333 Computer System Fundamentals | CSU | 4 | ||||||||
| 12 | fall | H/S elective | HS | 3 | ||||||||
| 12 | fall | 171.101 Physics I (or Chem) | N | 4 | ||||||||
| 12 | fall | 173.111 Physics I Lab (or Chem) | N | 1 | ||||||||
| 12 | spring | 600.211 Unix Systems Programming | CS | 3 | ||||||||
| 12 | spring | 600.344 Computer Network Fundamentals | SYST | 3 | ||||||||
| 12 | spring | Linear Algebra | M | 4 | ||||||||
| 12 | spring | 171.102 Physics II (or Chem) | N | 4 | ||||||||
| 12 | spring | 173.112 Physics II Lab (or Chem) | N | 1 | ||||||||
| 13 | fall | Business & Finance elective | B | 3 | 3 | |||||||
| 13 | fall | 600.271 Automata | CS | 3 | ||||||||
| 13 | fall | 600.321 OOSE (oral req) | CSU | 3 | ||||||||
| 13 | fall | H/S elective | HS | 3 | ||||||||
| 13 | fall | Science elective if Chem, else free | N/F | 3 | ||||||||
| 13 | fall | Free elective | F | 2 | ||||||||
| 13 | spring | CS Applications upper | APPL | 3 | ||||||||
| 13 | spring | CS elective | CS | 3 | ||||||||
| 13 | spring | Leadership & Org Behavior elective | HS | 3 | 3 | |||||||
| 13 | spring | 550.310 Probability & Statistics | M | 4 | 4 | |||||||
| 13 | spring | Science elective | N | 3 | ||||||||
| 14 | fall | 600.363 Intro Algorithms | ANAL | 3 | ||||||||
| 14 | fall | CS elective (Honors Thesis) | CSU | 3 | ||||||||
| 14 | fall | Operations Management or Int'l Trade Elec. | B | 3 | 3 | |||||||
| 14 | fall | Free elective | F | 3 | ||||||||
| 14 | fall | Math elective | M | 4 | ||||||||
| 14 | spring | Business & Finance elective >= 300 level | B | 3 | 3 | |||||||
| 14 | spring | CS elective (Senior Design) | CSU | 3 | ||||||||
| 14 | spring | Free elective | F | 4 | ||||||||
| 14 | spring | H/S elective | HS | 3 | ||||||||
| 14 | spring | Science elective | N | 3 | ||||||||
| BS REQUIREMENTS | 126 | 42 total, 19 upper | 22 | 16 | 18 | 12 | 6 | 23 | ||||
| TOTALS | 126 | 20 | 22 | 24 | 16 | 18 | 13 | 13 | 7 | 24 | ||
| 42 | ||||||||||||