Student Projects


Required Links:  Checklist | Coding Guidelines | Project report template | Manual page template

CS and EE Semester Projects

A range of projects is available for undergraduate, masters and PhD students in EE and CS.

A number of graduate and undergrad students have done interesting software research projects in our lab. Some of the projects were: accessing email by phone, accessing user location for 911 telephony calls on Internet, message board for offline collaboration, measuring QoS for audio conferencing, recording audio conversation in a conference, file sharing among conference participants, conference load balancing, integrating audio conferencing in a virtual gaming environment, integrating video support in media server, single line IP telephony gateway, UDP-based link speed delay and network conditions simulator, VoIP client simulator for audio playout, and so on.

more >>

Who can take the projects?

Candidates should have a working knowledge of at least one of the following languages: C/C++, Java, Tcl/Tk. Background in operating systems (CS4118) and/or Networks (for example, CS4119 or EE6761) is desirable. CS undergraduates must have taken CS3139 (Data Structures) and CS3156/4156 (Software Engineering) and must be fluent in C/C++ or Java.

CS undergraduates need to know that 3000-level projects must be completed first and may be taken for only up to 3 credits. 4000 level follows which also may be taken for no more than 3 credits. It is rare for an undergrad to register for the 6000 level, but this should take place only after having completed 3 points of each 3000 and 4000-level projects.

Please see the FAQ for common questions.

What projects are available?

See list on menu on right-hand side.

Students will be assigned PhD mentors to help with your project. They are your primary source of help, but you can always contact me in case of difficulties. Source code for projects related to RTP, RTSP, and SIP can be found via CVS. You will be given access as needed, after providing your CS account name or a user name/Unix-encrypted password combination.

Most of the programming projects need a computer science account. You can apply for a CS computer account on line. You will not have to pay if you are doing this project under the supervision of Prof. Schulzrinne.

How to register for the project?

Undergraduate students should first enroll in 3998, then 4901 and then 6901. Graduate students typically enroll in 6901. It is possible to enroll in the spring or fall for a two-semester project covering the summer semester.

At most 3 points of W3998 can be counted towards the CS degree. Similarly, at most 3 points of W4901 can be counted.

COMS E6901-008

COMS E6901-008 Projects in Computer Science, Section 008, 1-12 pts.
Flexible. One credit hours requires 3 hours/week of time commitment.
Please apply to instructor by sending a short resume, including earlier projects completed and a list of courses taken recently, with grades received. Include a short code sample.


Projects in Computer Science
Flexible, 0-3. One credit hours requires 3 hours/week of time commitment.
Call Number:
Summer 199986146
Spring 200295956


Projects in Computer Science
Flexible, 0-3. One credit hours requires 3 hours/week of time commitment.

ELEN 6001-016 (Fall) and 6002-016 (Spring)

Advanced Projects
Flexible, 0-6. One credit hours requires 3 hours/week of time commitment.

ELEN 9001-016 (Fall) and 9002-016 (Spring)

Research II
Flexible, 0-3. One credit hours requires 3 hours/week of time commitment.
Call Number:
Spring 2002 

How am I graded?

You will have to finish certain requirements as part of the course to get your grades.

  • Follow the checklist and discuss it with your mentor.
  • Projects must conform to the coding guidelines.
  • All projects require the writing of HTML documentation and report using the IEEE proceedings format (LaTeX), depending on the project. Note: Project reports produced by Microsoft Word are not acceptable, even if exported to HTML. 
  • All project must have a web manual page describing the program's use.
  • For C/C++ projects, please create executables for at least one of the standard platforms (Linux, MacOS, FreeBSD, Solaris, or Windows NT/2000.)
  • Projects must be packaged as a tar file, with a README file containing installation instructions that clearly identifies any other hardware and software needed. As part of the demo, you will be asked to unpack and install the software.
  • If your project enhances an existing library or piece of software, it must be checked in via CVS, after approval by the supervising mentor.
  • A midterm presentation (20% of the grade).
  • You must submit (by email to the mentor and faculty advisor) a brief weekly project progress report (10% of the grade).
  • Grading: 10% reports, 20% midterm presentation, 25% functionality, 20% coding style, 25% report.

Frequently asked questions

Who supervises projects?
As faculty, I am responsible for the overall project direction and evaluation. Usually, a PhD or senior MS student is assigned as a mentor to assist with the details and provide hands-on advice. A project student is expected to meet regularly with their mentor and report back, by email, on their progress in biweekly intervals (every other Friday) to both their mentor and me. I gladly answer email questions on direction and additional resources.
What is the time commitment?
The workload is designed to be equivalent to a class. Given a 15-credit load, each credit hour should consume about 3 hours, so that I expect roughly 9 hours of work a week for a 3-credit project.
Do I have to register for credits?
Not necessarily. You can also do the project in one semester and get credit in a following semester. The opposite is not possible... (Many students choose this deferred credit during the summer, to avoid paying summer tuition.)
Is there pay?
Under exceptional circumstances. Generally, the project needs to be part of a funded research project and the student needs to have shown exceptional ability, e.g., in another project under my supervision or in a class that I teach.