UCSD VLSI CAD LABORATORY














Last Modified: October 11, 2006

ABKGroup Introduction for Prospective Students

version 3.0
December 22, 2004

Andrew B. Kahng < abk@ucsd.edu >

Welcome to ABKGroup's introductory webpage for prospective students, draft version 3. The purpose of this webpage is to provide an overview of the group, and the personality/background you should have as a new member. Ideally, in this page you will find the contacts, suggestions, tools, and other information that will allow you to avoid wasting your time (if you and the group are not well-matched), or to hit the ground running (if you find a match and begin working with us).

Before You Apply

Many inquiries arrive during the Summer and Fall quarters from prospective students, particularly students from India and the People's Republic of China. If possible, please do not send attachments by email, and do not send multiple copies of email. Please do not send any inquiries about the UCLA CS Ph.D. program; Professor Kahng no longer accepts students at UCLA. Your best course is to send a link to a webpage (URL) that contains your resume, application materials, publications, project writeups, etc. (Professor Kahng has a fairly busy travel and research schedule, and averages around 200+ emails per day. Thus, if you send an email and do not receive a timely reply, please accept apologies in advance. You might try contacting individual group members to learn more about the group, and to get your resume printed/read more quickly.)

In your requests for joining the ABKGroup you should also describre your research character by answering the following questions:

  • Do you think of yourself as a “theorist” or an “experimentalist”? Are you a “hacker”? Do you like to prove things (e.g., theorems)? Are you looking to become a professor, a researcher, or a developer/engineer in industry? Do you think of yourself as a hard worker? Do you feel a need to carve out “weekends” or other blocks of time to pursue non-research/non-school interests?
  • Are you comfortable with the ideas of: (A) graduate school is the one time in your life when you will have the luxury of doing nothing but thinking and learning (albeit in a “research-directed” manner); and (B) the purpose of a Ph.D. is to become the world's expert at something by the time you graduate … ?

Some things you should know about ABKGroup and Professor Kahng's advising style, before you apply:

  • An underlying precept is that a Ph.D. student must develop all facets of his/her academic/scholarly persona, and that these facets encompass a number of "basic skills" (technical toolkits, ability to synthesize/abstract, ability to communicate/teach, ability to work with others, etc.).
  • New students build their "basic skills" during the first couple of years, then gradually focus on a specific thesis topic. As a new student, you will touch lots of topics and lots of different activities - writing code, running computational experiments, doing literature searches, looking quickly at small/crisp problems, preparing talks, communicating with other researchers, etc. You will be helping more senior students. You will be put onto very short-term projects, asked to help critique talks or proofread papers or provide refereeing comments or draw figures or ... Eventually, you are expected to be the "world's expert" on your thesis topic.
  • Group members work hard. (It is not uncommon to graduate with 15+ publications, meaningful fellowships/awards, and an overall resume that is competitive on the academic job market.) As a new Ph.D. student, you should expect to be in the group for not less than four years, and not more than five years. At most one or two summers will be spent on internships. At most one quarter (depending on program requirements) will be spent as a TA. You should expect full RA support during your Ph.D. studies (M.S. students are generally not supported, and there is limited interest in accepting new M.S. students).
  • Communication and documentation of discussions/progress is by email and by web pages. We have many "remote" collaborations, and often don't see certain coauthors except at conferences once or twice a year. Thus, precise communication is a key element of life in ABKGroup. If you don't like to read or respond to email, if you need to be told things more than once, or if you are imprecise and sloppy in your communication, then you will not adapt well to the group's research style.
  • There is a lot of context-switching, which is a consequence of our interactive, fluid ("free-form"), collaborative style of investigation.
  • Think carefully about whether you really are committed to Ph.D. studies, whether you enjoy (and are capable of) experimental/implementation-centric investigations, whether you are a "problem-solver", whether you are comfortable with formalisms and analysis, whether you want to be the best at what you do, etc. If you do not match up with the above traits, then there is likely to be friction, and you will not be happy in this group.

If You've Gotten This Far...

If you've gotten this far, the next step is an introduction to the people currently in ABKGroup. From the group's main page you can find Professor Kahng's homepage , and current student/staff webpages . Take a minute to browse through them.

Regarding background: incoming students should get a copy of Cormen, Leiserson, Rivest and Stein, Introduction to Algorithms, and read it carefully. Other basic knowledge: computational geometry (e.g., Preparata/Shamos), combinatorial algorithms and network flows (e.g., Lawler, Ahuja/Magnanti/Orlin), combinatorial optimization (e.g., Schrijver, Papadimitriou/Stieglitz), VLSI (e.g., Weste/Eshragian 2nd edition and Bakoglu). These readings are recommended for all new group members. If you are accepted into the group and have trouble finding these references, contact us as soon as possible. Of course, you should read the various papers on our publications webpage.

Regarding skills: you will need to begin developing some skills before you arrive. One key skill is software development. We use C++ almost exclusively. Whether you're new to the language or have years of experience, we highly recommend Stroustrup's C++ 3rd Edition. If you don't already have this book, let us know and we'll send you one. In any case, get the book and read it carefully (perhaps twice).

If you're new to C++ programming, take a look at any of the following

  • Intro to C++ book
  • C++ FAQ-lite
  • Sun WorkShop Compiler C++ 4.2 Documentation
  • Draft Standards (very detailed, PS/PDF)
  • Object Oriented programming launchpad (many good links)

    We also use STL extensively. SGI has good online documentation . The more familiar you are with STL, the easier your transition to the group code infrastructure will be.

    Before You Arrive

    When you get your ABKGroup (abkguest) login, please log onto one of our machines and take a look around. We hope to see you on a few times, before you arrive. Quite likely, you will have already identified some research questions and will be engaged in dialogue with Professor Kahng and possibly other group members. Keep these conversations active.

    Finally, if you have any questions, please send email to Prof. Andrew Kahng.