Computer Science Undergraduate Advising Manual

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.

Program Options

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.

Declaring a Major or Minor

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.

Advisors

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.

Degree Certification

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.

Computer Use

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.

Research and Honors

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.

Internships and Careers

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.

Student Groups

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.

Concurrent Program

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.

Sample Schedules

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 KEY
11Freshman
12Sophomore
13Junior
14Senior
 
AREA KEY
CSComputer Science
CSUCS Upper Level
ANALAnalysis
APPLApplications
SYSTSystems
BBroadening Elective
FFree Elective
HSHumanities or Social Science
HSUHS Upper Level
MMath
NNatural Science
WWriting
LLanguage

BS Basic 4-Year Schedule

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  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            

BA Basic 4-Year Schedule


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              

BS with Entrepreneurship & Management Minor Schedule

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