473,404 Members | 2,195 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,404 software developers and data experts.

Suggesion for an undergrad final year project in Python

Hi,

I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?

Jul 18 '05 #1
11 5197
Sridhar wrote:
Hi,

I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?

You could write a Python program that writes novels.
Jul 18 '05 #2
Sridhar said the following on 2/1/2005 2:11 AM:
Hi,

I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?


You try and implement some CS concepts you have learnt using Python. For
example, if you had a course on parsing and compiler design, try to
implement a simple language in Python.

Or if you like Computer Graphics, see if you can implement things like
Phong shading and things in that field. This may not be novel like your
professors want. But you can make it novel by allowing the user to
rotate the object and show how the shadow and shading get transformed.

Or if you are the networking types, come up with a peer-to-peer chat
application with whitetboard capability, which I am sure will be fairly
novel.

Look within for answers :-)

That way you will reinforce your theory and learn Python as well.

Thanks,
--Kartic
Jul 18 '05 #3
On Tue, 01 Feb 2005 12:11:47 +0000, Kartic wrote:
Sridhar said the following on 2/1/2005 2:11 AM:
Hi,

I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?


You try and implement some CS concepts you have learnt using Python. For
example, if you had a course on parsing and compiler design, try to
implement a simple language in Python.


Could I suggest going for an area that particularly interests you ; rather
than saying "what sort of project ...." come up with an area of interest -
this'll mean you probably have more knowledge and will put in more
effort - and then ask for ideas - ideally about something that is missing.

Jul 18 '05 #4
On 31 Jan 2005 23:11:58 -0800, Sridhar <sr*************@gmail.com> wrote:
Hi,

I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?


Seems to me you should find this novel idea and /then/ find the tools to
implement it. Hopefully Python would be one such good tool.

I don't have novel ideas anymore, so I can't help ...

The type interference engine for Python they talk about in some other
threads here would be a cool and useful, and "hard CS", project, but I
suspect it's too big a task. And it has been done for SML and other
languages so I don't know if it's strictly "novel".

/Jorgen

--
// Jorgen Grahn <jgrahn@ Ph'nglui mglw'nafh Cthulhu
\X/ algonet.se> R'lyeh wgah'nagl fhtagn!
Jul 18 '05 #5
Paul Robson wrote:
On Tue, 01 Feb 2005 12:11:47 +0000, Kartic wrote:

Sridhar said the following on 2/1/2005 2:11 AM:
Hi,

I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?


You try and implement some CS concepts you have learnt using Python. For
example, if you had a course on parsing and compiler design, try to
implement a simple language in Python.

Could I suggest going for an area that particularly interests you ; rather
than saying "what sort of project ...." come up with an area of interest -
this'll mean you probably have more knowledge and will put in more
effort - and then ask for ideas - ideally about something that is missing.


Exactly. If you have an interest in mathematics, then look into
Numarray. Graphics: Panda3d, Blender, pygame... The list goes on. Feel
free to append.
Jul 18 '05 #6
How about a tool that can compute the intersection/union/disjunction of
boolean expressions, and return the result as a boolean expression?
This is something I've had on my plate for awhile, but haven't been
able to get around to doing.

As a simple example, assume we have the following expressions:

e1 = (y)
e2 = ((not x) and (not y)) or ((not x) and (y) and (z))

The union of these two would be ((not x) or (y)). The simplest
representation of the result would be best.
To make it harder consider the following additional requirements:

1) Instead of just boolean variables, allow variables with more than
two discrete values (i.e., True and False). For example, if a variable
x can represent the values 1, 2, and 3, then an expression could test
for x!=3, or x>1, or even x in [1,3].

2) Use Python's native data structures to represent expressions. Using
the example above, we might have something like this:

e1 = [{'y':True}]
e2 = [{'x':False, 'y':False}, {'x':False, 'y':True, 'z':True}]

How you might extend this to non-boolean expressions would be up to
you.

3) Make it fast, and scalable to many variables (up to at least 50). I
haven't studied this extensively, but I believe a Quine-McKlusky method
is order n^2 with n being the number of variables, so this will quickly
blow up as the number of variables increases.

4) As my example in (2) suggested, make variable names strings. This
allows arbitrary names. For non-boolean discrete variables, allow any
arbitrary list of numbers or strings as elements.

5) Since a side-effect of the program will (probably) be the ability to
reduce expressions to their simplest representation, make this
capability a part of the public API, since that's a useful function in
itself.

Jul 18 '05 #7
How about writing some gtk fronted to pgp.. That might be both useful
(at least for me) and teach you about pgp and pyGTK, that is writing
gui with python.

Jul 18 '05 #8

"Sridhar" <sr*************@gmail.com> wrote in message
news:11**********************@c13g2000cwb.googlegr oups.com...
Hi,

I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?


Some months ago, maybe a year ago, Brett Cannon asked on the Py-Dev mailing
list a similar question about a CS master's thesis. He got around 10
sensible suggestions. Perhaps a few could be scaled down to a senior
thesis level. In any case, you could check the archives at www.python.com
of the pydev summaries that he prepares every two weeks ago.

Terry J. Reedy

Jul 18 '05 #9
[Sridhar]
I am doing my undergrade CS course. I am in the final year, and would
like to do my project involving Python. Our instructors require the
project to have novel ideas. Can the c.l.p people shed light on this
topic?


PyPy is chock full of novel ideas, given that two of the main developers
are Armin Rigo (of psyco fame) and Christian Tismer (stackless python).

PyPy is a project, which has obtained European funding, to reimplement
python *in python*, a very laudable goal.

http://codespeak.net/pypy/

Psyco is a "specialising compiler" for cpython, which essentially does
something like just-in-time compilation, but with a different slant.

http://psyco.sourceforge.net/introduction.html

Armin's paper on the techniques used should make an interesting read for
your CS professors:

http://psyco.sourceforge.net/theory_psyco.pdf

Stackless python has support for full coroutines, as opposed to
cpython's current support for semi-coroutines. In the past, Stackless
used to support continuations, but no longer does because of the
complexity of adapting the cpython interpreter to support them. But
Christian's implementation experience will hopefully guide PyPy in the
direction of supporting both coroutines and continuations.

http://www.stackless.com/

As for what you could do in the PyPy project, I have no suggestions
since I am not involved in the project. But I am sure that a message to
pypy-dev will elicit plenty of ideas.

http://codespeak.net/mailman/listinfo/pypy-dev

Lastly, the jython project is undergoing a bit of renaissance at the
moment, and there's plenty of work to be done. A message to jython-dev
volunteering time is unlikely to go unnoticed. Particularly, the parser,
code generation and AST are areas which require a fair amount of rework.
But there is less opportunity to use "novel ideas" in jython, so it may
not interest your professors, unless you have some novel ideas of your
own to bring to the project.

http://lists.sourceforge.net/lists/listinfo/jython-dev

How much time, over how long a period, do you have available for your
project?

Best of luck,

--
alan kennedy
------------------------------------------------------
email alan: http://xhaus.com/contact/alan
Jul 18 '05 #10
Kartic schreef:
Or if you are the networking types, come up with a peer-to-peer chat
application with whitetboard capability, which I am sure will be fairly
novel.


Hm, a Python version of The Coccinella? :-)

--
JanC

"Be strict when sending and tolerant when receiving."
RFC 1958 - Architectural Principles of the Internet - section 3.9
Jul 18 '05 #11
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
> "Sridhar" == Sridhar <sr*************@gmail.com> writes:

Sridhar> I am doing my undergrade CS course. I am in the final year,
Sridhar> and would like to do my project involving Python. Our
Sridhar> instructors require the project to have novel ideas. Can the
Sridhar> c.l.p people shed light on this topic?

I'm arriving a bit late in this discussion, but might as well throw in
my bit anyway.

I did my master's thesis implementation thingy in Python, and still
managed, from what I can tell from available research material, to
make the fastest RDBMS search engine of its kind. :-)

But really, implementation language is, or should be, a fairly minor
issue compared to what exactly it is that you want to do. For some
things, your choice of language might be very important, but until you
know what you're going to do, there's really very little need to worry
about it, at least in my opinion.

Martin

- --
Homepage: http://www.cs.auc.dk/~factotum/
GPG public key: http://www.cs.auc.dk/~factotum/gpgkey.txt
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkIPhtoACgkQYu1fMmOQldVWRACgxSDK80tc5i SFrqnHdi/Ydwg9
qmwAoOk4wiQ9LNUhteuTtbZrrzo6CJfh
=yO5X
-----END PGP SIGNATURE-----
Jul 18 '05 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: SemSem | last post by:
iam in the final year in computer scince department. i have to choose a project to work in all this year and at the final i have to give them the project and documentaion and live demo of what i...
1
by: ieyra204 | last post by:
hi guys, i need help for my final year project. i use to make a databases for student to check their result using SMS. i use microsoft access for the database but i did'nt know how to implement...
2
by: micangello | last post by:
i need ideas on what my final year project can be about i have studied 2 years of pure math (advanced calculus and algebra, topology, statistics..... ) i then switched ot computer science now...
2
by: micangello | last post by:
I im in my last year computer science,we have a final year project for Automating File systems..we're using C++ since we need to create classes for the inode and blocks and superblock ... etc... but...
2
by: bhushanshitole | last post by:
Hey Friends, I just finished my 3rd year in Computer Science . And i got selected in CALSOFT for final year project and i am asked to come up with some good creative ideas for the project... I'm...
6
by: aramaram | last post by:
hi i am interested in databasing using sql technics, i have no idea for my final year project, i would welcome any ideas and suggestions, i would appreciate it very much. thank you for your time
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.