views:

2039

answers:

22

First off, my apologies for asking this fairly off-topic question. But in my experience, there are a lot of highly intelligent people on SO so I figured I might give it a shot. Please don't be too triggerhappy with the 'close'-button :-) Besides, I think there's some chance that this may be of general interest.

I'm a Computer Science major with a minor in Psychology. For an upcoming paper I have to present an interesting topic that touches both CS and Psychology". Uhm yeah, it really is that vague. Now, there are a lot of interesting things out there that I could go for, Neural Networks (and AI in general) immediately come to mind. I am sure there are some aspects of UI design that could fall into this category as well (I've heard very good things about Alan Cooper's book, for instance).

Is there anything else you guys would suggest? Bonus points for links to any (scientific) publications that are cite-worthy ;)

+27  A: 

Computer science and psychology are very interconnected, primarily in the field of user interface design, as well as human-computer interaction and usability. To approach any of these things without an understanding of how humans approach problems is an exercise in futility.

Some parts of it are more hard science (such as how the human eye perceives light and how this affects computer screens and whatnot), but a lot of it is psychological in nature. Studies have been made to determine which layouts are most user-friendly, both in terms of speed of use and user preference (which aren't always one-to-one with each other).

HCI is a major intersection between CS and psychology. You can find material for a paper in any way humans and computers coexist. Input and output devices weren't created by accident. They were designed over years of iterative improvement to come up with devices and metaphors that work well with the majority of users. It's really an incredibly interesting field.

Welbog
Exactly what I would recommend. As a UI designer, you need to know the user's intentions before they do.
Rob Elliott
+1 for this as well. I was also a Software Engineer major + Psychology minor. HCI has been a primary focus point for me in my professional life.
JasCav
I'm coming from a background where I never thought about psychology in my academic career until I took a UI course. It really opened my mind to how much effort is put into making sure the user has to think as little as possible. Now I find the whole concept utterly fascinating.
Welbog
The Principle of Least Astonishment - a great guideline for UI design and code both - requires a pretty deep understanding of what users will expect. That's Psychology.
Carl Manaster
CS and math are very interconnected. CS and physics are very interconnected. etc :)
Longpoke
+10  A: 

Software Process and Team Dynamics. It's one place that I have noticed my Psych minor made a difference and it's less obvious than Usability.

geowa4
For this very reason I took Small Group Communication to fulfill my Comm requirement. Having managed people in a former life and being the single parent of a (then) teenager, I wanted to know how to motivate people who weren't.
kajaco
This is what you should focus on. *Extremely* valuable in the workplace. In fact, this, not technical skill, is what separates the rich and the poor in the field of IT.
+3  A: 

Sounds to me like the perfect topic for a Human-Computer Interaction piece (how can the interaction be improved or changed to be more effective, etc).

During my time in school we were required to take an HCI course and I, for one, was deeply curious. Our initial project focused on the very robust topic of computers in the vehicle (HUDs, Stereo's, Driving Computers, GPS, etc). Unfortunately, I didn't have time to study it further.

Justin Niessner
+5  A: 

Look into the field of Cognitive Science. Specifically, modeling the Stroop Test with neural networks probably would fit your needs.

Here's a link: http://portal.acm.org/citation.cfm?id=1230147.1230306

McWafflestix
Cognitive Science is mostly a blend of psychology and computer science, along with parts of linguistics, anthropology, child psychology, and philosophy. Anybody who's studying CSci and Psych should be aware of it.
David Thornley
@DavidThornley: you missed the most important ones: neurology (including neuroanatomy, neuropsychology and general neurophysiology).
McWafflestix
+4  A: 

You could write about the Computational theory of mind:

In philosophy, the computational theory of mind is the view that the human mind is best conceived as an information processing system and that thought is a form of computation. The theory was proposed in its modern form by Hilary Putnam in 1961 and developed by Jerry Fodor in the 60s and 70s. This view is common in modern cognitive psychology and is presumed by theorists of evolutionary psychology.

It may be too much psychology and too little CS, but if you focus sufficiently on models of computation like Turing Machines and their (non-)relation to how our brains work, you may strike the right balance.

Stephan202
+3  A: 

How about something related to typical personality traits of CS folks? Socialization, interpersonal skills, logical black/white thinking, etc?

n8wrl
+2  A: 

Check this out: http://en.wikipedia.org/wiki/Cognitive_science

A friend of mine (who later dropped out of college..., :[ ) was majoring in this. I think, it might help you at least a bit.

nullArray
+5  A: 

Quick comment: you do know about the book Gödel, Escher and Bach, right?

peSHIr
I "know about it", yes. It's on my Amazon wishlist. Haven't gotten around to reading it yet, though :-(
n3rd
Unfortunately it is not something you "read through quickly" as it is rather a large number of pages, so it might not be of much use to you for the upcoming paper you mention. I still recommend it to anyone interested in the matter.
peSHIr
GNU's not Unix. ;-)
Matt
+6  A: 

My suggestion is about language and the ability to state and solve a problem:

How about taking the idea of the Sapir/Whorf Hypothesis and applying it to programming languages? Does the syntax of a language limit the kinds of problems that it can solve? Etc?

Apparently, there is some work done in that field by Kenneth Iverson and Paul Graham.

Erich Mirabal
This looks very interesting. I'm definitely gonna dig a little deeper here. Thanks!
n3rd
+1  A: 

What are YOU interested in? I think the paper/presentation would be a lot better if the topic was something that interested you. Your passion or interest generally will come through in things you care about/are interested in.

Tim
A: 

I would suggest the field of Affective Computing which has been popularized by Rosalind Picard in this paper. There are lots of interesting project that try to model emotions or software that tries to take human emotions into consideration.

Jorisslob
+1  A: 

first thing that comes to my mind are "hackers." you've no doubt seen tv specials on people who's curiosity gets the better of them. Though there are a lot of things out there on it... not the most original topic, but on the other hand, plenty of resources.

Come to think of it security is likely closely related to psychology as well and would be an interesting topic to read about.

I wrote a paper for an english class on AI, it was definately the best choice for a topic I could have made. Not boring at all.

Victor
bortzmeyer
+14  A: 

My father (computer programmer) has often told me stories of a coworker (and good friend) who had degrees in CS and psychology at his place of work. He was a tester. The best tester my dad had ever met. Who caught a lot of bugs. A lot of bugs. Big, subtle bugs that no average developer on the project would have thought of catching.

This psychologically-minded tester was very good at understanding the kinds of mistakes that developers made, and used that skill to find tough bugs that many developers would overlook. This had a tendency to tick the developers off... but the code was of a much higher quality because of his work. My dad noticed that at design reviews, whenever the development team would disagree on how to implement something, he was often writing furiously in a notebook, realizing that this would be an area where lots of bugs would likely appear.

One area of study that you might want to do is examine common programming bugs and the mindsets of the individuals that cause them. Or perhaps understanding the human element in software engineering and how that effects the kinds of software produced.

You could scientifically test out whether disagreement among developers during design meetings of system components correlates to buggy sections of code.

Just some thoughts.

sheepsimulator
very interesting indeed, albeit about a year too late :)
n3rd
@n3rd - I actually posted this a year ago, and edited it two months ago...
sheepsimulator
fair enough :-)
n3rd
A: 

My answer is perhaps a bit unusual.

Human comprehension at it's most basic is a matter of "yes" or "no", "on" or "off", "true" or "false", which is the same as a computer at it's core.

What differs with humans fundamentally is that we connect these simple truths together in unique ways that don't always follow logical pathways. Computers can't extrapolate, they can only use pure logical pathways to reach an answer.

Because of this, computers can't "think" in the traditional sense. Thinking is not reasoning, it's deducting, hypothesizing and analyzing.

Psychology involves the study of the processes of the mind, not the mind itself. An application would be the ways in which we confuse reality or construct false reality. Computers can't apply theory to a problem, only a specific algorithm.

This reasoning however might not be so simple - as we are fundamentally the same if you take a purely scientific approach.

I think a thing to look at is neural networks, and how can they be applied to create "abstractions" from logic. Can a neural network which is nothign more than a series of on and off switching being fired actually learn? There's a lot of study in this area that suggests that if we could build a large enough neural network, it could.

If we could do this, we could "emulate" or model the brain - and understand the real nature of psychological processes therein.

Of course, if we did that we might end up with a frankenstein, or terminator - so it's on the border of science and science fiction I think.

FilmJ
I think human comprehension has the third option of "maybe." It is more analog and fuzzy than computers are.
Erich Mirabal
I think you need to read something about Cognitive Science, which is doing pretty much what you're talking about.
David Thornley
+2  A: 

From personal experience (been in IT for 18 years) I've always been interested in the abnormally high percentage of autistic people that work in IT. Maybe combine that with the work being done in assistive technology for autism? I know MIT did an OpenCourseWare course some time ago, here's the link: MIT OpenCourseWare: Autism Theory and Technology

kathmann
+2  A: 

Phishing? You can read some good papers.

bortzmeyer
+1  A: 

If you want something fun, you could go into games: the psychology of fear and suspense is fertile ground, and has been written about a lot in Game Developer Magazine / Gamasutra.

Another suggestion would be psychology of perception in general -- again, videogames are a wonderful place to look: psychoacoustics, psychooptics (see e.g. color theory), and various other fields all come into play when designing immersive games and simulation systems.

leander
+1  A: 

Good software design effectively bridges the gap between the user's "mental model" of how your application should work, and the actual functionality they're presented with.

The study of how users develop such a mental model, and how they cope with the aforementioned "gap" relys strongly on psychology and cognitive science. Some really great work in this area has been done by:

-Donald Norman ("The Design of Everyday Things," "Direct Manipulation")

-Jim Hollan ("User models and user interfaces: A case for domain models, task models, and tailorability," "Strategic directions in human-computer interaction")

-Terry Winograd ("Understanding Computers and Cognition: A New Foundation for Design")

Surely I'm missing scores of others, but these guys are a great place to start.

RightFullRudder
A: 

"Personality Type and Software Development" would be another idea where the link is to stuff 7 years old now so maybe this is time for a follow-up. Another thought would be to see if there is a connection between advances in software development methodologies and the personalities of modern people? For example, could one determine how well various software development practices improve the health of its practioners? Does Agile make for happier developers? Just a question that I'd like to see answered with some scientific data rather than anecdotal evidence.

JB King
+1  A: 

How about the psychology of user requirements? What causes people to think that developers can read thier minds about what they will want? Why do people think that we can build something with no real definaiton of what the end result should be? Does personality type affect the level of detail that person can put into a requirement? Why do business analysyst seem to think that they don't need to talk to actual users when deterning requirements. Why do business analysts and developers seem as if they are not on the same side? Aren;t we both trying to get the best possible product? Why must we always be adversaries. If you can find a place where they aren't adversaries, do they have better requirements that result in better and more successful development projects?

HLGEM
A: 

I believe Gerald Weinberg's The Psychology of Computer Programming belongs here as well. It describes how the fact of programmers being human beings affects the software development process and products.

Yuval F
A: 

The first thing that occurs to me when looking for a subject that relates to both psych and CS is the psychology of language selection for a development project. Sure, there are technical factors that influence those sorts of choices, but specific languages are often chosen for emotional reasons when you have a large group of developers with a diverse language background. (Or a small group of developers who haven't used any of the potential candidate languages, and think they sound neat.)

Personally, I basically break out in hives when somebody starts talking about doing a website backend in ASP. I think all developers have some sort of visceral reaction to people who choose the a language that isn't compatible with their own world view. (Regardless of whether it's compatible with the database and the required libraries...) Some of the C# guys look at me in horror for using something as grotesquely useless and wrong-headed as C, etc. Python and Ruby have more things in common than different, but we all know that an attempt to have a discussion about the two can result in mortal combat if there are two zealots in the room.

Certainly, this topic would relate two the "IT Personality" of borderline autism that fuels all the great holy wars. (I won't even mention text editors!) But since so many developers are inclined to claim that their tool selection is always strictly a matter of merit, I'd find it really interesting to see somebody dig a little more deeply into the subject. (So I can find out exactly what sort of brain damage those $WRONG_LANGUAGE developers have...)

wrosecrans