Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Putting together an indpendent study in CS
Index -> Student Life
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Basu




PostPosted: Sat Jul 05, 2008 1:09 am   Post subject: Putting together an indpendent study in CS

Hello all, I'm going to be a sophomore in college next semester looking at a double major in computer science and electrical engineering. Since I decided on the CS major later, I'm lagging a bit behind on my intro requirements. Normally Freshmen take a course in Logic, which I planned to take next semester. However looking on the topics covered and considering that I've already taken a course in discrete mathematics, I think it would be a bit of waste of time. Luckily the department is very accommodating. I'm trying to put together an independent study on the mathematical and theoretical foundations of computer science to take the place of the Logic course. Having never put together an independent study proposal, some help would be appreciated.
Firstly, we already have a higher level Theory of Computation course and I would prefer to keep overlaps to a minimum. Here is what that course contains:

1. Finite Automata
2. Regular languages
3. Context free languages
4. Turing Machines
5. Decidability
6. NP completeness


I'm considering focusing on the Turing Machine and Lambda calculus as models of computation, but I'm not sure f that is enough/too little. The way I see it, there are the following things I need to keep in mind while constructing this course:

1. What to study: Here is a rough outline of what I have in mind:
Turing Machines
The Church-Turing Thesis
Lamdda Calculus
Combinatory Logic
Curry-Howard correspondence
Functional Programming languages as Lambda calculus 'implementations'

2. What to produce: I don't want to just read up stuff on these subjects, I want to actually have something to show. I'm considering a series of mini papers (5-10 pages, every 2 weeks) summarizing what I have read and my thoughts on the subjects. At the same time, I want to do some programming. I would like to learn Lisp and maybe come up with a minimalistic Turing complete language, prove it to be such and perhaps build a simple interpreter for it. I already have some experience writing parsers from a research project at college and would like to expand on that.

I'm going to keep thinking about this and talk to my professors about it. Any advice would be appreciated. Thanks again for your help.

Basu
Sponsor
Sponsor
Sponsor
sponsor
Zeroth




PostPosted: Sat Jul 05, 2008 9:24 am   Post subject: Re: Putting together an indpendent study in CS

I would like to point out it can be difficult to prove a language is turing complete. At least to a degree that is accepted by CS professors. For example, it took a couple of years of effort to prove Python was turing-complete, iirc. I could be wrong here. Otherwise, that looks like a very interesting and full course of study. You don't need anything else, and you'll find you don't have the time for all of that, I suspect.
rizzix




PostPosted: Sun Jul 06, 2008 1:21 pm   Post subject: RE:Putting together an indpendent study in CS

The best advice is what you've already decided to do: talk to your prof. If your prof is involved with the kind of research you're interested in, then you're really really lucky; since he can guide you better than he could otherwise.

Also, talk to some post-docs/phds (non-profs) that have similar interests.
Dragan




PostPosted: Sun Jul 06, 2008 6:54 pm   Post subject: Re: Putting together an indpendent study in CS

Basu @ Sat Jul 05, 2008 7:09 am wrote:
I would like to learn Lisp


Why Lisp, Lisp is basicly for AI programming, but all serious AI projects are writen in "c". You can learn Lisp but don't lose much time for it, learn some more useful languages like c, c++, C#, java, php...

Decision is yours.
Basu




PostPosted: Sun Jul 06, 2008 8:34 pm   Post subject: RE:Putting together an indpendent study in CS

LISP may have been the favored language for AI for a long time, but it developed as a convenient expression for Lambda calculus. I think I might focus my study on Lambda calculus, its implementation and it's relation to the Turing Machine, rather than on Turing-completeness itself.
And I can always learn new languages and tools when I want/need to. I couldn't (and shouldn't) get a for-credit independent study approved for simply learning a new language.
Basu




PostPosted: Mon Jul 07, 2008 12:22 pm   Post subject: RE:Putting together an indpendent study in CS

So I just came back from a talk with my professor. He likes the idea of taking up lambda calculus and functional programming. He's suggested that I do the second half of SICP (I've gone through the first 2 chapters on my own). I will probably also incorporate elements from our programming languages and a general overview of some popular models of computations. Any suggestions are welcome.
Prabhakar Ragde




PostPosted: Sun Jul 13, 2008 1:52 pm   Post subject: Re: Putting together an indpendent study in CS

Zeroth @ Sat Jul 05, 2008 9:24 am wrote:
I would like to point out it can be difficult to prove a language is turing complete. At least to a degree that is accepted by CS professors. For example, it took a couple of years of effort to prove Python was turing-complete, iirc. I could be wrong here.


Citation, please. --PR
Display posts from previous:   
   Index -> Student Life
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 7 Posts ]
Jump to:   


Style:  
Search: