<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kyle Brady:  Blog &#187; Computer Science</title>
	<atom:link href="http://www.kyle-brady.com/tag/computer-science/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kyle-brady.com</link>
	<description>coherent thoughts on diverse topics</description>
	<lastBuildDate>Thu, 18 Mar 2010 21:07:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://www.kyle-brady.com/?pushpress=hub'/>
<cloud domain='www.kyle-brady.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>How I Won a Copyfight &#91;Expose&#93;</title>
		<link>http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/</link>
		<comments>http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 06:23:20 +0000</pubDate>
		<dc:creator>Kyle Brady</dc:creator>
				<category><![CDATA[Expose]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Copyfight]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[DMCA]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SJSU]]></category>

		<guid isPermaLink="false">http://www.kyle-brady.com/?p=2759</guid>
		<description><![CDATA[follow the update thread for the latest chapter in the saga

As a brief introduction, I'm a student at San Jose State University, as a Computer Science major, in San Jose, CA.  I had a class the last semester (Jan 2009 - May 2009) called "Data Structures and Algorithms", taught by Dr. Beeson, where the homework [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;"><em><small><a href="../2009/08/28/the-spartan-daily-debacle-update-thread"><em>follow the update thread for the latest chapter in the saga</em></a></small></em></p><br />
<br />
As a brief introduction, I'm a student at San Jose State University, as a Computer Science major, in San Jose, CA.  I had a class the last semester (Jan 2009 - May 2009) called "Data Structures and Algorithms", taught by Dr. Beeson, where the homework was all code, submitted by a certain date to an online submission/analysis system.<br />
<br />
Throughout the semester, I posted <a href="http://projects.kyle-brady.com/svn/listing.php?repname=sjsuProjects&amp;path=%2Fcs146%2F#path_cs146_">my correct/working code publicly</a> (project descriptions returning sometime in the near future), after the due date, and didn't think much of it - I thought exposing the code to the public could be helpful for some people, as well as <a href="http://www.kyle-brady.com/tag/code-samples/">a good employer reference for the future</a>.<br />
<br />
However, I was contacted by Dr. Beeson after the semester had ended (May 22, 2009), telling me to remove all public code or else he'd fail me, since he considered it a violation of the Academic Integrity standards.  I responded very politely, citing SJSU Policies and Student Senate Resolutions/Statements:<br />
<blockquote>Professor,<br />
<br />
How is this a violation of Academic Integrity?  I posted them after the initial due date, and very clearly state that these are not to be used in lieu of a student doing their own homework, nor are they likely reliable enough to be used in a corporate environment.<br />
<br />
You may ask, then, what the point is - the point is that I'm starting to create a repository where my future employers can see code I've written easily, something that is more important for the interview process in our modern world than ever.  The work all semester was difficult enough that I felt it warranted being included.  Additionally, sharing code with the world at large, in the spirit of the Open Source community, is not incorrect when the code is your own - even if no-one ever looks at it.<br />
<br />
According to the Academic Integrity Policy of SJSU [accessible <a href="http://sa.sjsu.edu/download/judicial_affairs/Academic_Integrity_Policy_S07-2.pdf" target="_blank">here</a>], I do not qualify for any of the terms of Cheating or Plagiarism.<br />
<br />
According to the Student Conduct Code of SJSU [accessible <a href="http://sa.sjsu.edu/download/judicial_affairs/Student_Conduct_Code.pdf" target="_blank">here</a>], I do not qualify for any of the terms of Section B.  Any arguments for Section B Item 14 are invalid, because they are not being disseminated for commercial purposes.<br />
<br />
According to a statement by the SJSU Student Senate on April 20, 1990 [accessible <a href="http://www.sjsu.edu/senate/s90-5.htm" target="_blank">here</a>], "Academic institutions exist for the transmission of knowledge, the pursuit of truth, the intellectual growth of students, and the general wellbeing of society".  My actions are within the spirit of this.<br />
<br />
Finally, according to the same Senate Resolution, students have a right to freedom of speech (which this is classified as), "So long as a student demonstration does not interfere with the classroom".  Having posted the code after the due date, I did not interfere with the classroom.<br />
<br />
Thusly, I do not see a need to remove my code under threat of grade penalty.  If you disagree on any of these points, or wish to discuss it further, I will be more than happy to bring this discussion to Dr. Louden's attention.</blockquote><br />
He responded rather explosively, and was visibly upset/angry.  In lieu of posting his response, which I'm sure he'd find and take action on, let me summarize it:<br />
<ul><br />
	<li>what were cited are examples, not a full list</li><br />
	<li>he had expected me to cooperate, otherwise he would have filed a Cheating claim against me</li><br />
	<li>take down his PDF files due to copyright <em>(note: I did; they're being retooled for reposting as my own content)</em></li><br />
	<li>does everything need to be stated as acceptable or not?  spitting on the classroom floor was mentioned.</li><br />
	<li>future classes will expressly prohibit the public posting of code solutions at any time</li><br />
</ul><br />
Obviously, the last bit worried me, and as a first response I replied to him:<br />
<blockquote>Professor,<br />
<br />
I understand that they are merely examples, but I thought it was important to point out what the spirit of Cheating and Plagiarism is, since this may very well result in a new definition set.<br />
<br />
I will remove the problem descriptions.<br />
<br />
I appreciate that you didn't file a case, because, as you said, it was not my intention to help others cheat or facilitate it.  In fact, I still don't believe this could be considered cheating, since it is a very different situation than passing a Final around the room.  Perhaps I could have posted the code at a later date than I did for each assignment, but the principle remains the same.<br />
<br />
There is no reason to not make homework solutions public at an appropriate time, and what I have done is no different than sharing answers after they have been turned in for grading - or reviewing graded homeworks in groups before a Final Exam.  I merely used the Internet as my distribution method, instead of a paper-and-ink solution.<br />
<br />
Finally, I believe spitting on the floor is completely unrelated.  That would fall under basic actions of human decency, whereas what I have done over the previous months is more intellectual in nature.<br />
<br />
Thank you for the consideration of my response.</blockquote><br />
Following that email, to which I received no reply, I emailed Dr. Louden, the Computer Science Department Chair, because of the potentially devastating nature of what Dr. Beeson intended to do:<br />
<blockquote>Hello Dr. Louden,<br />
<br />
I have been contacted by Dr. Beeson today regarding the posting of my homework solutions for CS146, past due date, online as a reference for my future employers as well as the general public (if they were interested).  He seemed to think this was a violation of Academic Integrity, and considered it Cheating.  While we still disagree, he has agreed to not penalize me because he didn't explicitly state it was forbidden.<br />
<br />
However, this is still a concern to me, as he has indicated this will be a tenet in all of his classes henceforth.<br />
<br />
The code I have posted is code that I wrote, and posted past the due date.  As such, it cannot be considered cheating.  But for a Professor to prohibit post-grading distribution of solutions is ludicrous.  What I have done is, essentially, no different than students comparing answers after handing in homework, or comparing graded solutions of a semester's work prior to the Final Exam.  Neither of those are considered Cheating, or any manner of an Academic Integrity violation, so why should mine be considered different?<br />
<br />
To prevent it would not only be destructive, prohibitive, and harmful, but potentially a violation of Freedom of Speech as well.<br />
<br />
I have included the emails between myself and Dr. Beeson as an attachment.  I hope that you can review these details and make an appropriate decision as to whether the prevention of such sharing is both legal and intelligent.<br />
<br />
Thank you for your time, and I hope to hear from you soon.</blockquote><br />
I got a prompt response from Dr. Louden, indicating he would research the issue and get back to me - all of the above occurred on May 22nd, 2009.  I received a response from him on June 1st, the important snippets being:<br />
<ul><br />
	<li>the Office of Student Conduct and Ethical Development was contacted for a ruling</li><br />
	<li>Dr. Louden did not believe Dr. Beeson can unilaterally prohibit the public posting of code</li><br />
	<li>copyright issues could arise if the problem sets were highly unique or code from Dr. Beeson was used <em>(note: not the case)</em></li><br />
	<li>Dr. Louden disagreed with the assertion that posting code online was the same as sharing homework solutions, because of the medium in which they were posted <em>(note: the Internet)</em></li><br />
	<li>Dr. Louden stated he thought the claim of Freedom of Speech would be a stretch</li><br />
</ul><br />
A mixed bag of responses, but overall fairly good for my concerns - I considered it a win that I had the Department Chair largely on my side.  On June 3rd, I was notified of an official response from SJSU:<br />
<blockquote>"I have now heard from Debra Griffith, Judicial Affairs Officer of SJSU, and she agrees that what you have done does not in any way constitute a violation of the University Academic Integrity Policy, and that Dr. Beeson cannot claim otherwise."</blockquote><br />
Thanks to some perseverance and asking the right questions, SJSU Professors are now prohibited from barring students from posting their code solutions online, as well as penalizing their students for doing so.<br />
<br />
A win for students, programmers, and copyfighters nationwide!<br />
<br />
--- --- ---<br />
<br />
<strong>Update (6/11/2009 1:08am PST):</strong> <a href="http://www.boingboing.net/2009/06/11/student-challenges-p.html">BoingBoing picked this up</a>, with a pretty glowing pat-on-the-back from Cory Doctorow himself!<br />
<br />
<strong>Update (6/11/2009 6:50pm PST):</strong> <a href="http://techdirt.com/articles/20090611/1027095200.shtml">TechDirt picked this up as well!</a><br />
<br />
<strong>Update (6/12/2009 1:55am PST):</strong> I only just noticed it <a href="http://news.ycombinator.com/item?id=652669">showed up on Hacker News a long time ago</a>...<br />
<br />
<strong>Update (6/13/2009 12:00pm PST): </strong> <a href="http://arstechnica.com/open-source/news/2009/06/academic-source-code-dust-up-symptom-of-cs-education-ills.ars">ArsTechnica</a> and <a href="http://news.slashdot.org/story/09/06/13/123211/Student-Who-Released-Code-From-Assignments-Accused-of-Cheating?art_pos=5">Slashdot</a> are now in the mix.<br />
<br />
<strong>Update (6/15/2009 6:40am PST):</strong> The dust is starting to settle a little, but <a href="http://www.linux.com/news/software/developer/18933-academic-source-code-dust-up-symptom-of-cs-education-ills">Linux.com did a writeup</a> as well.<br />
<br />
<strong>Update (6/15/2009 12:05pm PST):</strong> <em> The Chronicle of Higher Education</em> (an "old world" publication) <a href="http://chronicle.com/wiredcampus/article/3826/student-beats-cheating-charges-for-posting-work-online">wrote about this</a>.<br />
<br />
<strong>Update (6/16/2009 7:00am PST):</strong> Another non-nerd blog has done a piece, this time with an interview, <a href="http://www.insidehighered.com/news/2009/06/16/computer">courtesy of Jack Stripling at <em>Inside Higher Education</em></a>.  Probably the last one for all this.<br />
<br />
<strong>Update (8/24/2009 6:45am PST):</strong> <a href="http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/">Featured in SJSU's Spartan Daily</a>, first issue of the Fall Semester, but in bad taste.  <a href="http://www.kyle-brady.com/2009/08/26/sjsu-reporting-digital-freedoms-with-bias/">See my response</a>.]]></content:encoded>
			<wfw:commentRss>http://www.kyle-brady.com/2009/06/10/how-i-won-a-copyfight/feed/</wfw:commentRss>
		<slash:comments>489</slash:comments>
		</item>
		<item>
		<title>Stress Management in the Computer Programming Field &#91;Old Content&#93;</title>
		<link>http://www.kyle-brady.com/2009/05/05/stress-management-in-the-computer-programming-field/</link>
		<comments>http://www.kyle-brady.com/2009/05/05/stress-management-in-the-computer-programming-field/#comments</comments>
		<pubDate>Tue, 05 May 2009 16:59:13 +0000</pubDate>
		<dc:creator>Kyle Brady</dc:creator>
				<category><![CDATA[Old Content]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Stress]]></category>
		<category><![CDATA[Stress Management]]></category>

		<guid isPermaLink="false">http://www.kyle-brady.com/?p=2115</guid>
		<description><![CDATA[This is a paper I had to write for a Stress Management (KIN69) class, where we had to examine the stress and management of stress in our intended fields.

The rest should be obvious.  PDF version available, and the sources I could find online [Glass] [Snell].
In the world of computer programming, stress is well understood to [...]]]></description>
			<content:encoded><![CDATA[This is a paper I had to write for a Stress Management (KIN69) class, where we had to examine the stress and management of stress in our intended fields.<br />
<br />
The rest should be obvious.  <a href="http://www.kyle-brady.com/wp-content/uploads/2009/05/stress-management-in-the-computer-programming-field.pdf">PDF version available</a>, and the sources I could find online <a href="http://www.kyle-brady.com/wp-content/uploads/2009/05/practical-programmer-the-ups-and-downs-of-programmer-stress.pdf">[Glass]</a> <a href="http://www.kyle-brady.com/wp-content/uploads/2009/05/ahead-of-time-debugging-or-programming-not-in-the-dark.pdf">[Snell]</a>.<br />
<blockquote>In the world of computer programming, stress is well understood to be a factor of daily life for its practitioners. Generic computer users understand what it means to be frustrated with computers, and architecting the software itself is merely an extension of the same frustrations by an order of magnitude. However, despite the common knowledge of the high levels of stress for programmers and software engineers alike, the very corporate structures that employ them tend to plead ignorance, as if the problems would solve themselves – even if a majority of the stressors are corporate-inspired.<br />
<br />
The most crucial point in understanding computer programming is that it requires a level of concentration, intelligence, and broad-base knowledge alien to most other professions – a deadly combination of engineering precision and abstract artistic creativity. The reasons are broad and many, not to mention technical in nature, but such activities are extremely demanding and “can strain the limits of human cognition, stress, and fatigue” (Galinksy et. al 1993). Architects of software come to expect this over their training and careers, many of which begin during the teenage years, and therefore internalize it as a job hazard, rather than an issue potentially worth addressing in a concrete manner.<br />
<br />
The interactions between users and the software must be accounted for, requiring large volumes of study and analysis of humanity’s tendencies, and is not accomplished overnight. In these days of modernity, the act of programming has evolved significantly from the days of punch cards a half-century ago, but is still limited: every action, analysis, and reaction must be hand-written, lest a bug appear to only frustrate the end user. Development is typically done inside a special environment that facilitates software creation and debugging, but encourages a reactionary coding style: write, test, fix, and repeat until deemed functional. A growing movement is interested in what they have deemed “ahead-of-time” programming, which would “allow the programmer to offload as much of the memory burden and mental work as possible”, with the intended effect of “greater satisfaction and lower levels of stress and fatigue” (Snell). While it has proven helpful in limited studies, as well as achieving granular adoption in some development environments, this solution ignores what many consider to be the exacerbating stress factor: management.<br />
<br />
In various studies of programmer stress, a common theme of high stress levels, causing various problems, appeared. Depending on the stage of the project, the symptoms varied: project planning saw high anxiety and depression, code writing saw irritability and low morale, and debugging/testing saw all possible manifestations. The problem, it seems, is one that most programmers could have easily articulated without the need for costly research. Management of programmers is not typically effective, and tends to cause unnecessary problems. Many believe this is because the management theories used are based on “techniques derived from the manufacturing industry” (Glass), and revolve around arbitrary value markers such as lines written per week, features implemented, or percentage of debugging completed. One such researcher, Fujigaki, states that “the software process is a learning and communication process”, implying that the employee-manager relationship should have a more fluid model, since software itself is very fluid in its creation.<br />
<br />
Others may argue that programmers themselves are the cause, since they are a different brand of individuals, as previously mentioned, with character traits apparent across the board, regardless of employer, industry, gender, nationality, or even generation. If an average person were asked at random what the characteristics of a programmer were, they are likely get it right: a high need to achieve, to reach high levels of job satisfaction and personal accomplishment, with very little emphasis on socialization (Zawacki). With these traits in mind, it would appear that managing structures based on a need for social appreciation would be problematic, leaving some to suggest moving such individuals with a higher valuation of social life to leadership positions, as a middle-man between the personality clashes.<br />
<br />
Regardless of the true source, the fact remains that stress for computer programmers tends to reach high levels that are often maintained for their entire careers. With minor deviations, such as modern Internet giant Google (“Top 10 Reasons to Work at Google”), most organizations ignore the stressful conditions under which their employees operate, refusing to help alleviate these problems even when they can, and do, easily escalate into larger situations. In the interviews with the two employees at CIENA – one a former programmer turned specialized support analyst (Mike), another a high-level programmer with customer-facing duties (Shawn) – they echoed similar sentiments regarding the dearth of stress management options, regardless of whether they believed such options would prove useful.<br />
<br />
Both individuals expressed personal methods through which de-stressing was possible, such as exercise, but that the daily worklife did not allow for such luxuries – no massages, no guided meditation, and no yoga rooms. Despite not having corporate-sponsored stress management options, Shawn and Mike both expressed a love for what they are involved in, even going so far as to say that perhaps the stress factor was not novel and could be considered part of the job description.<br />
<br />
As the world becomes exponentially more digital with each passing year, the need for the software industry to evolve becomes even greater. Whether the issue is employee management, development methodologies, or the job itself, computer programming will continue to become more difficult and stressful, and the projects ever larger, more complex and grand. If a middleground is not reached for those involved in the production and architecture of software, the consequences for the humanity’s technological future, and the world-at-large, could be momentous.<br />
<br />
References<br />
<br />
Fujigaki, Y. (1993, July). Stress analysis: A new perspective on peopleware. American Progress, 6(7), 33-38.<br />
<br />
Galinsky, Traci L., Roger R. Rosa, Joel S. Warm, William N. Dember. (1993). Psychological determinants of stress in sustained attention. Human Factors, 35(4), 603-614.<br />
<br />
Glass, Robert L. (1997, April). Practical programmer: The ups and downs of programmer stress. Communications of the ACM, 40(4), 17-19.<br />
<br />
Google. (2009). Top 10 reasons to work at Google. Retrieved April 30, 2009, from http://www.google.com/intl/en/jobs/lifeatgoogle/toptenreasons.html<br />
<br />
Snell, James L., Ph.D. (1997). Ahead-of-time debugging, or programming not in the dark. International Conference on Software Technology and Engineering Practice, July.<br />
<br />
Zawacki, R. (1993, November). Motivating IT people in the 90s: An ‘alarming drop’ in job satisfaction. Software Practices, 3(6), 4-5.</blockquote>]]></content:encoded>
			<wfw:commentRss>http://www.kyle-brady.com/2009/05/05/stress-management-in-the-computer-programming-field/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
