<?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>FLiFnotes &#187; UTCS</title>
	<atom:link href="http://www.flifnotes.com/category/utcs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flifnotes.com</link>
	<description></description>
	<lastBuildDate>Mon, 22 Aug 2011 13:17:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Semester in Review – Spring &#8217;11</title>
		<link>http://www.flifnotes.com/53-semester-in-review-%e2%80%93-spring-11/</link>
		<comments>http://www.flifnotes.com/53-semester-in-review-%e2%80%93-spring-11/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 03:38:07 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[UTCS]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=53</guid>
		<description><![CDATA[I guess I was finally getting the hang of school. This was my first semester ever with a full course load and all A&#8217;s, and it was fun too. But oh well, time to move on. CS 341: Automata Theory (Rich) The topics for this course were a succession of finite state machines, pushdown automata, [...]]]></description>
			<content:encoded><![CDATA[<p>I guess I was finally getting the hang of school. This was my first semester ever with a full course load and all A&#8217;s, and it was fun too. But oh well, time to move on.</p>
<dl>
<dt>CS 341: <a href="http://www.cs.utexas.edu/users/ear/cs341/">Automata Theory</a> (Rich)
<dt>
<dd>The topics for this course were a succession of finite state machines, pushdown automata, turing machines, and a bit of complexity theory. Some of the homework assignments take many hours to finish, but unfortunately they&#8217;re necessary to really understand the material. Rich lets you work in groups for the homeworks, which is useful because it&#8217;s easy to just stare at a problem for an hour without any ideas as to how to proceed. Just make sure that after you gain a better understanding you&#8217;re also able to work things out on your own. As long as you can do that, the tests should be alright.</dd>
<dt>CS 345: <a href="http://www.cs.utexas.edu/~cannata/cs345/">Programming Languages</a> (Cannata)
<dt>
<dd>Unfortunately, this is a required course. That&#8217;s about as much as I can say for it.</dd>
<dt>CS 378: <a href="http://www.cs.utexas.edu/~shmat/courses/cs378">Network Security and Privacy</a> (Shmatikov)</dt>
<dd>Last year I was disappointed when this class was cancelled, but after taking it this year I&#8217;m really glad I got that extra year experience. Shmatikov expects you to know some C and Javascript going in, as they&#8217;re required for the projects and parts of the lectures won&#8217;t really make sense if you don&#8217;t already know the basics. There is <em>a lot</em> of material covered quickly in this class, so be prepared to do a bit of extra reading to get a full understanding. Overall, though, it was a great class and was probably one of the classes that I&#8217;ve gotten the most out of.</dd>
<dt>CS 361: <a href="http://www.cs.utexas.edu/~dahlin/Classes/UGOS/index.html">Introduction to Operating Systems</a> (Dahlin)</dt>
<dd>If you love spending long nights coding in the basement labs, you&#8217;ll love this class. The focus is mainly on multi-threading. Dahlin was in the middle of writing a textbook for the class, so we only had the first two or three chapters. Since we went over the same material in lectures, though, it wasn&#8217;t much of a loss. We were also an experimental class in that we had projects in C, C++, and Java just to see how it would work it. I really enjoyed it, because it&#8217;s a way of getting different perspectives at what are sometimes similar problems. Just make sure to do the homeworks also, no matter how little credit they may be, because that&#8217;s the best way to prepare for exams.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/53-semester-in-review-%e2%80%93-spring-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File Uploads over HTTPS with cURL</title>
		<link>http://www.flifnotes.com/49-file-uploads-over-https-with-curl/</link>
		<comments>http://www.flifnotes.com/49-file-uploads-over-https-with-curl/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 02:27:19 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[UTCS]]></category>
		<category><![CDATA[curl]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=49</guid>
		<description><![CDATA[In some classes when we turned in a project all we got was a grade, but when I got a low score I could usually figure out what was wrong eventually. Working as a proctor in a computer science class for non-majors, though, the students could use a bit more feedback. The problem was, it [...]]]></description>
			<content:encoded><![CDATA[<p>In some classes when we turned in a project all we got was a grade, but when I got a low score I could usually figure out what was wrong eventually. Working as a proctor in a computer science class for non-majors, though, the students could use a bit more feedback. The problem was, it was tedious manually uploading 75 comments files for each project since the only method of uploading was a web interface.</p>
<p>When I started as a proctor, I didn&#8217;t expect this problem. Upload scripts from previous semesters had been passed down and looked promising&#8230; but failed.</p>
<p>A quick look over the script was enough to identify the problem. The web addresses in the script were <code>http://</code> when what I really needed to use was <code>https://</code>. The obvious solution was to update the addresses in the script, which of course still failed.</p>
<p>My next idea was to use replace the whole <code>curl</code> part of the script and instead use <code>wget</code>. However, <code>wget</code> doesn&#8217;t support multipart form data so that was another dead end.</p>
<p>At this point, I figured I was stuck using the browser, but maybe a Greasemonkey script would be able to perform bulk uploads. After all, it&#8217;s just adding extra forms to a page and submitting them. But no, modern browsers don&#8217;t let you auto-fill the path of file input in forms, which in retrospect makes complete sense.</p>
<p>So I was stuck with <code>curl</code>, which I was already able to use to set cookies or to fetch a page or text file. However, downloading zip files also wasn&#8217;t working. Time to look up the <a href="http://curl.haxx.se/docs/manpage.html">curl man page</a> and just try anything:</p>
<ul>
<li>Added <code>-i</code> to also include the headers for extra feedback</li>
<li>Added <code>-referer</code>, although no one in their right mind would rely on the referrer given</li>
<li>Added <code>-A</code> to specify Firefox as user agent, also dubious</li>
<li>Used <code>-H 'Accept-Encoding: gzip,deflate'</code> to attempt zip downloads</li>
<li>Changed the keep-alive settings</li>
</ul>
<p>Nothing helped.</p>
<p>I switched between using the <code>-d</code> and <code>-F</code> flags to specify the content type, but only got <code>Error - bad file data</code> and <code>403 Forbidden</code> respectively. One of these must at least be a step in the right direction, but which was it?</p>
<p>Finally, I figured out how to use <code>--trace-ascii dump.txt</code> to see exactly what was going on but didn&#8217;t know what to look for until downloading an <a href="https://addons.mozilla.org/en-us/firefox/addon/httpfox/" title="HttpFox">HTTP analyzer for Firefox</a> and using that for comparison. At last things finally started making some sense. As noted in a <a href="http://iandennismiller.com/blog/2009/09/curl-http1-1-100-continue-and-multipartform-data-post/">blog post from Ian Dennis Miller</a>, an <code>Expect: 100-continue</code> header was also in the trace.</p>
<p>I added <code>-H 'Expect:'</code> to the command and it finally happened. I uploaded a comment file remotely. Halfway through the semester and finally some down time to get things working. Damn, I love Spring Break.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/49-file-uploads-over-https-with-curl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Choosing an editor for pair programming</title>
		<link>http://www.flifnotes.com/46-choosing-an-editor-for-pair-programming/</link>
		<comments>http://www.flifnotes.com/46-choosing-an-editor-for-pair-programming/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 23:51:50 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[UTCS]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[pair programming]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=46</guid>
		<description><![CDATA[Pair programming works for me because: when we&#8217;re working with unfamiliar code, we can split up and then guide each other through the parts we know hearing/seeing other people&#8217;s thoughts keeps my mind fresh with new ideas I&#8217;m not so tempted to be checking my email or playing Mines at least someone knows how to [...]]]></description>
			<content:encoded><![CDATA[<p>Pair programming works for me because:</p>
<ul>
<li>when we&#8217;re working with unfamiliar code, we can split up and then guide each other through the parts we know</li>
<li>hearing/seeing other people&#8217;s thoughts keeps my mind fresh with new ideas</li>
<li>I&#8217;m not so tempted to be checking my email or playing Mines</li>
<li>at least <em>someone</em> knows how to get C/C++ code to compile</li>
</ul>
<p>However, pair programming does come with its challenges. For college computer science courses, one of the biggest is finding a time you can work together, but the challenge I&#8217;m most interested in is agreeing on an editor to use together. Sometimes it&#8217;s simple. For Network Security and Privacy, there was barely any coding involved so my partner and I managed to do the whole thing with gedit. (Well, okay, I did type up one short script in vim). In Software Design last year, we were learning how to use tools with NetBeans, so there wasn&#8217;t even a choice there.</p>
<p><img src="http://www.flifnotes.com/wp-content/uploads/2011/02/viman.gif" alt="Vim is better than Emacs" title="viman" width="203" height="146" class="alignright size-full wp-image-50" />In Operating Systems, though, my partner and I need an editor that&#8217;s more sophisticated. Okay, there are plenty of those, no problem, right? But the fact of the matter is that he&#8217;s an Emacs afficionado and I&#8217;m vim all the way. I prefer simple keystrokes to Meta-combos, and he just doesn&#8217;t grok command mode.</p>
<p>I&#8217;ll admit it. Honestly, the Esc key often seems kind of far away, and after years of use I&#8217;ve only recently started getting the hang of visual mode. (In retrospect, I have no idea why it took me so long.) But he&#8217;ll open up Emacs with our project, I&#8217;ll have a burst of inspiration, grab the keyboard, and at the end type in <code>:w</code>. Ugh! Other times I&#8217;ll open up vim and then he has a burst of inspiration but causes crazy stuff to happen because I wasn&#8217;t in insert mode.</p>
<p>By now I think he does know how to get into insert mode and I&#8217;ve at least learned how to save in Emacs, but it&#8217;s obvious that one editor isn&#8217;t going to work for the two of us. We needed a new plan&#8230;</p>
<p>So screw the former pair programming paradigm! We now sit happily side-by-side with two different monitors, two different machines, two different keyboards. He keeps Emacs open, and I&#8217;ve got my vim. Whoever&#8217;s driving at the time gets to use their preferred editor and then check in the code once there are any changes or we want to switch off. And whenever we&#8217;re absolutely stuck on something, we both get to fiddle around with the code individually until one of us finds something that looks like progress.</p>
<p>It&#8217;s kind of weird, though. The last time we were working on a project together, I was using DVORAK and having to switch back to QWERTY regularly to pair program. If we managed to agree on an editor, I&#8217;m sure we&#8217;d find something else crazy to disagree on. Then again, anything&#8217;s better than <a href="http://secretgeek.net/fuv_intro.asp" title="I see you're using vim. Let me fix that for you.">fuv</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/46-choosing-an-editor-for-pair-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Semester in Review – Fall &#8217;10</title>
		<link>http://www.flifnotes.com/44-semester-in-review-%e2%80%93-fall-10/</link>
		<comments>http://www.flifnotes.com/44-semester-in-review-%e2%80%93-fall-10/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 23:02:49 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[UTCS]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=44</guid>
		<description><![CDATA[Seeing as I&#8217;m more than a week into my next semester of classes, it&#8217;s probably about time I posted my reviews of last semester&#8217;s courses. My main takeaway from last semester is a disappointment that I couldn&#8217;t take Algorithms due to a strict CS 337 prerequisite, so my only really challenging course was a random [...]]]></description>
			<content:encoded><![CDATA[<p>Seeing as I&#8217;m more than a week into my next semester of classes, it&#8217;s probably about time I posted my reviews of last semester&#8217;s courses. My main takeaway from last semester is a disappointment that I couldn&#8217;t take Algorithms due to a strict CS 337 prerequisite, so my only really challenging course was a random one I took just to fit my schedule. Good thing this term I got into all the classes I wanted. <img src='http://www.flifnotes.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<dl>
<dt>CS 337: <a href="http://www.cs.utexas.edu/users/misra/337F10.dir/index.html">Theory in Programming Practice</a> (Misra)
<dt>
<dd>From the name of the class, I thought this would be a theory class, but it&#8217;s really more just a set of programming exercises to give you a little more practice before you take on the more advanced computer science courses. Of course, there are some proofs thrown in as well, but it&#8217;s not much more advanced than what you learn in CS 336 (as long as you remember it). If you take Misra and aren&#8217;t paying attention in class, prepare to be called on. Otherwise, just make sure you set aside enough time for the programming projects. They often appear easier than they really are.</dd>
<dt>CS 347: Database Management (Miranker)</dt>
<dd>I thought this would be my best class last semester. Since I took Software Design and simulated the Gamma join architecture as one of our projects, I&#8217;ve found databases interesting. Unfortunately, this class just glossed over the areas that I found interesting. The course was also very disorganized (once we had just two lectures between exams and the homeworks were over-vague), which made it difficult to learn anything in much depth. Other students who had no previous experience with databases say they got a lot out of it, but if you already know a bit then doing some reading or taking an online course may be more useful.</dd>
<dt>CS 344M: <a href="http://www.cs.utexas.edu/~pstone/Courses/344Mfall10/index.html">Autonomous Multiagent Systems</a> (Stone)</dt>
<dd>Going into a research class for a topic you have no interest in is never a good idea, but I can see how almost anybody else would have loved it. We worked in pairs to create new or improve on existing teams for the <a href="http://wiki.robocup.org/wiki/Soccer_Simulation_League">Robocup soccer simulator</a> and had a tournament at the end of the class. By starting from a complex team (though not improving much on it), my team won the 2D tournament. We also discussed automated traffic controls, chatbots, bidding agents, and other applications of autonomous agents. If you&#8217;re not familiar with C, getting started may be a bit difficult. This is the only computer science course so far in which I made a B, but it was worth it overall.</dd>
<dt>CS 361: <a href="http://www.cs.utexas.edu/~byoung/cs361/syllabus361.html">Introduction to Computer Security</a> (Young)</dt>
<dd>This is probably one of the easier upper-division CS courses. There wasn&#8217;t any required textbook, which was nice. The lectures were usually pretty straightforward and just a little bit interactive. Other than the occassional stories about security blunders, it could get a little boring, but what really made the class worthwhile was the projects. We learned how to crack UNIX passowrds, implement AES, simulate covert channels, and more. I&#8217;d recommend this class to pretty much anyone.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/44-semester-in-review-%e2%80%93-fall-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What confidentiality lacks in the Bell-La Padula model</title>
		<link>http://www.flifnotes.com/42-what-confidentiality-lacks-in-the-bell-la-padula-model/</link>
		<comments>http://www.flifnotes.com/42-what-confidentiality-lacks-in-the-bell-la-padula-model/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 16:12:12 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[UTCS]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=42</guid>
		<description><![CDATA[The Bell-La Padula model (BLP) is a type of security system that presents a solution to one of the classic problems in security&#8211;multilevel security. BLP preserves confidentiality in the system and is a model that&#8217;s referenced even today, even though it has some serious flaws. Multilevel security (MLS) presents a set of users and a [...]]]></description>
			<content:encoded><![CDATA[<p>The Bell-La Padula model (BLP) is a type of security system that presents a solution to one of the classic problems in security&#8211;multilevel security. BLP preserves confidentiality in the system and is a model that&#8217;s referenced even today, even though it has some serious flaws.</p>
<p><a href="http://en.wikipedia.org/wiki/Multilevel_security">Multilevel</a> security (MLS)  presents a set of users and a set of objects to be accessed. Both the users and objects are classified hierarchically with a security level as well as need-to-know categories. For example, you may have an &#8220;Unclassified&#8221; user trying to read a &#8220;Classified&#8221; object or a &#8220;Classified Crypto&#8221; user trying to write a &#8220;Classified Nuclear&#8221; object.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Bell-La_Padula_model">Bell-La Padula model</a> defines a way for deciding whether to grant access in each of these cases. This model uses a formula to define whether a certain level combined with a category <em>dominates</em> some other level combined with a category. We&#8217;ll define &#8220;Classified&#8221; as a higher level than &#8220;Unclassified&#8221;, so in the first example &#8220;Classified&#8221; (with no category) dominates &#8220;Unclassified&#8221; (with no category). I&#8217;ll ignore categories here for simplification, but in reality for one classification to dominate another, both its level <em>and</em> category set must dominate the other.</p>
<p>Having this domination function defined, we can describe the two main properties in the Bell-La Padula model:</p>
<ul>
<li>The Simple Security Property &#8211; A user can only read an object if the classification of the user dominates that of the object. (Also known as &#8220;read down&#8221; or &#8220;no read up&#8221;.)</li>
<li>The *-Property &#8211; A user can only write to an object if the classification of the object dominates that of the user. (Also known as &#8220;write up&#8221; or &#8220;no write down&#8221;.)</li>
</ul>
<p>The reasoning behind the Simple Security Property is pretty straight-forward. If you&#8217;re concerned about confidentiality, you definitely don&#8217;t want people to read anything that they don&#8217;t have to. It&#8217;s the second property that raises some eyebrows. Why should a user be able to overwrite something that they can&#8217;t even read? Doesn&#8217;t this create huge issues with integrity?</p>
<p>The answer is simply that BLP doesn&#8217;t concern itself with integrity. But when you look at the property solely from the concept of confidentiality, the idea becomes a bit more clear. A user at a certain level knows information that users at lower levels don&#8217;t, so he shouldn&#8217;t be able to write anything to those other levels. However, users at a higher level already know that information so in that sense it&#8217;s okay to write to a higher level. You don&#8217;t have to worry that someone will see something they shouldn&#8217;t know about.</p>
<p>Another question in this model is how can someone give an order to their subordinate at a lower level? Here BLP adds the concept of trusted users. These are a special type of users who are proven trustworthy and who have the ability to write to lower levels. To me this seems like a cheap way of adding in functionality that should be provided by the basic system. &#8220;How do you make sure someone is trustworthy?&#8221; seems like as much of a complex question as &#8220;how do you make sure information isn&#8217;t written where it shouldn&#8217;t be?&#8221; Perhaps the reason for considering the first is that it&#8217;s easier to just have a person decide the second.</p>
<p>Overall, it&#8217;s interesting to find that the Bell-La Padula model has retained such influence despite its inherent shortcomings. As we continue in my Computer Security course, I look forward to seeing how more modern models compare and how they&#8217;ve solved the integrity problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/42-what-confidentiality-lacks-in-the-bell-la-padula-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semester in Review &#8211; Spring &#8217;10</title>
		<link>http://www.flifnotes.com/39-semester-in-review-spring-10/</link>
		<comments>http://www.flifnotes.com/39-semester-in-review-spring-10/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 02:45:28 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[UTCS]]></category>
		<category><![CDATA[software design]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=39</guid>
		<description><![CDATA[One more semester closer to graduation. This spring I took only three courses&#8211;all of them upper-division computer science&#8211;but fortunately they were all different enough to feel like a balanced course load. I got in each of the three M&#8217;s: mathematics (Analysis of Programs), machines (Computer Systems Architectures), and models (Software Design). CS 336: Analysis of [...]]]></description>
			<content:encoded><![CDATA[<p>One more semester closer to graduation. This spring I took only three courses&#8211;all of them upper-division computer science&#8211;but fortunately they were all different enough to feel like a balanced course load. I got in each of the three M&#8217;s: mathematics (Analysis of Programs), machines (Computer Systems Architectures), and models (Software Design).</p>
<dl>
<dt>CS 336: Analysis of Algorithms (Myers)</dt>
<dd>This class focuses on formal proofs of algorithm correctness, including topics such as weakest preconditions, developing invariants, induction, and probability. Even for a computer science course, it&#8217;s very math-intensive. One of my favorite things about this class, though, was having a support group available. There are some classes where you&#8217;re supposed to figure out everything on your own and not discuss the homeworks at all, while here we were encouraged to attend ACM&#8217;s weekly theory reviews or our own groups to meet up and work on the homeworks. For a class where the students have such varying backgrounds (everyone teaches 313k differently), it&#8217;s really necessary. I may not have been able to get a firm grip on recurrence relations without it.</dd>
<dt>CS 352: Computer Systems Architectures (McKinley)</dt>
<dd>This was McKinley&#8217;s first time teaching CS 352, and unfortunately it was at times very obvious. Reading the textbook was helpful, but the exercises often used terminology not in the rest of the book and were very confusing. The midterms were also insanely difficult. I&#8217;d go in thinking I had a good understanding of the material but then leave completely stunned. (Being able to keep the graded midterms would have been nice.) But for the final at least, I had almost a whole week to study. I read the book, worked out extra exercises, summarized the class notes, checked Wikipedia for clarifications, and everything came together. Sure, there were a couple of small things that I couldn&#8217;t remember ever going over, but in an hour and a half I was done and ended up with a 90.5&#8211;the highest grade on the final for any student. If you want to do well in this class, you need to have a <em>lot</em> of time to devote to it.</dd>
<dt>CS 378: Software Design (Batory)</dt>
<dd>This has been probably my favorite computer science course. We learned how to reason about programs using UML and studied refactorings, design patterns, and architectural patterns. For even common design patterns like hooks, I had never understood before <em>exactly</em> what they were. My favorite part, though, was learning about parallel architectures and having the opportunity to simulate everything from a basic join up to the parallelized Gamma join architecture. It&#8217;s a difficult class, but Batory&#8217;s generally an entertaining lecturer and I would recommend it to any computer science student.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/39-semester-in-review-spring-10/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Semester in Review &#8211; Fall &#8217;09</title>
		<link>http://www.flifnotes.com/33-semester-in-review-fall-2009/</link>
		<comments>http://www.flifnotes.com/33-semester-in-review-fall-2009/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 00:39:56 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[UTCS]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=33</guid>
		<description><![CDATA[Ah, my second semester in computer science has finally come to a close. When the Spring semester starts, I&#8217;ll no longer be a pre-CS student but a full-fledged CS student. It&#8217;s been a very busy semester for me but very rewarding at the same time. I finally feel like I&#8217;m at the point where I [...]]]></description>
			<content:encoded><![CDATA[<p>Ah, my second semester in computer science has finally come to a close. When the Spring semester starts, I&#8217;ll no longer be a pre-CS student but a full-fledged CS student. It&#8217;s been a very busy semester for me but very rewarding at the same time. I finally feel like I&#8217;m at the point where I can comprehend most any topic in CS that anyone cares to throw at me, even though it may still take a little extra time to sink in.</p>
<p>Anyhow, some closing thoughts on the classes that have encompassed me for the past few months:</p>
<dl>
<dt>CS 315: Algorithms and Data Structures (Novak)</dt>
<dd><a href="http://www.cs.utexas.edu/users/novak/cs315.html">Novak&#8217;s CS 315</a> site is one of the best in the department&#8211;if for nothing else than having an excellent vocabulary list and so many ways to browse the class notes. Novak wasn&#8217;t the most exciting lecturer, but he always made sure we understood what was going on. If I could change one thing about this class, though, I&#8217;d like to look at implementations a bit more. He&#8217;d tell us that the code already existed, and his focus was on making programming faster and easier for others, but for now I still want to see things very in depth.</p>
<dt>CS 310: Computer Organization and Programming (Boral)</dt>
<dd>In this course, we got to learn the fundamentals. We implemented our own stack and heap using LC-3 and learned how to write machine code. There&#8217;s much to be learned from this, but I think the main thing is to cherish the high-level languages we get to use (I still think it&#8217;s funny to call C &#8220;high-level&#8221; though) and to optimize how we use them without having to constantly focus on the small details. Boral was usually an entertaining lecturer, and if it wasn&#8217;t for the unpredictability of his tests I&#8217;d love to take another course with him.</dd>
<dt>CS 313K: Logic, Sets, and Functions (Lifschitz)</dt>
<dd>I took this class ten years ago as Philosophy 313K, so I expected this to be mostly a refresher course, and as such much of it was quite boring. However, I couldn&#8217;t miss any lectures because the exams would have questions about topics that weren&#8217;t in any of our notes or assignments. The course was mainly focused on mathematical functions and sequences, and I was a bit disappointed that logical quantifiers and connectives weren&#8217;t really covered. At least it was a (mostly) easy A for me.</dd>
<dt>EE 316: Digital Logic Design (Touba)</dt>
<dd>Between readings, homeworks, and labs, EE 316 is probably the most time-intensive course I&#8217;ve taken so far. (The required lab section doesn&#8217;t count for any credit hours.) Much of the material looks easy in retrospect, but the pace is so quick that you&#8217;re sure to get behind at some point along the way and have a lot of trouble catching up. The verbosity of VHDL is quite irritating, but learning all the tricks with Karnaugh maps was fun and state diagrams seem almost natural now.</dd>
<dt>M 328K: Introduction to Number Theory (Caputo)</dt>
<dd>Ah, my last ever pure math course. For being a rather easy course, though, it really made me miss Differential Equations. I mentioned this earlier, and now I&#8217;m sure that Moore method isn&#8217;t my strong point. I love to research things just to get new ideas even and felt pretty stifled in this class. It looks like what I did learn won&#8217;t go to waste, though. I&#8217;ve been looking over the supplementary textbook for CS 336 (next semester), and many of the theorems and algorithms I&#8217;ve learned are in there. <img src='http://www.flifnotes.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </dd>
</dl>
<p>(Note: I&#8217;m still waiting for my official grades to come out, but as I&#8217;ve calculated it: for the semester I have A&#8217;s in CS 310, CS 313k, and M 328k, and B&#8217;s in CS 315 and EE 316.<br />
Update: I got an A in CS 315 and an A- in EE 316. Whoo!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/33-semester-in-review-fall-2009/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Experience is the best teacher</title>
		<link>http://www.flifnotes.com/32-experience-is-the-best-teacher/</link>
		<comments>http://www.flifnotes.com/32-experience-is-the-best-teacher/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 21:08:05 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[UTCS]]></category>
		<category><![CDATA[Moore method]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=32</guid>
		<description><![CDATA[Some things just take a while to sink in. This summer I was studying my class textbooks in advance because the ideas just simmer in the back of my brain and then make so much more sense when we actually get to them in class. However, my number theory class this semester is different. The [...]]]></description>
			<content:encoded><![CDATA[<p>Some things just take a while to sink in. This summer I was studying my class textbooks in advance because the ideas just simmer in the back of my brain and then make so much more sense when we actually get to them in class. However, my number theory class this semester is different. The class textbook is super thin and holds a few axioms to learn, but then asks us, the students, to explain them and to prove other theorems based on them. Sure, I can read in advance and try to work my way through, but it&#8217;s difficult without any feedback. With all these worries, can this still be a better way to learn?</p>
<p>This is a way of teaching known as the <a href="http://www.discovery.utexas.edu/rlm/reference/mahavier1.html">Moore method</a>. Instead of the standard lectures, this method allows students to experiment in a way by doing proofs and seeing how what we already know applies to new situations. We all progress at the same rate by presenting what we&#8217;ve learned in class and discussing what we did differently or anything that still doesn&#8217;t make sense.</p>
<p>Though this method is also used in our logic course, most computer science classes follow the standard lecture and lab format. Professor Gordon Novak told us, &#8220;CS is an experimental science,&#8221; but by this he didn&#8217;t mean that we discover new data structures just by trying to solve a problem and seeing that that would be the best possible solution. Instead with some exceptions, we learn most of the time we don&#8217;t need to reinvent the wheel. The focus is on learning about many different data structures, gaining experience using them, and figuring out how to decide which is the best solution to any particular problem.</p>
<p>Of course, the concept of number theory is completely different than most of what we encounter in computer science. The method of proving the theorem (which may be as close to programming as math gets) isn&#8217;t so important as the fact that you <em>can</em> prove it and really understand why something&#8217;s true. It&#8217;s still kind of a shock being in a Moore method class, but it&#8217;s only been two weeks, so I still have most of a semester left to see if this works for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/32-experience-is-the-best-teacher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faculty Lunch: Dr. J Strother Moore</title>
		<link>http://www.flifnotes.com/22-faculty-lunch-dr-j-strother-moore/</link>
		<comments>http://www.flifnotes.com/22-faculty-lunch-dr-j-strother-moore/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 21:32:40 +0000</pubDate>
		<dc:creator>Deborah Hawkins</dc:creator>
				<category><![CDATA[UTCS]]></category>
		<category><![CDATA[faculty lunch]]></category>
		<category><![CDATA[J Strother Moore]]></category>
		<category><![CDATA[WICS]]></category>

		<guid isPermaLink="false">http://www.flifnotes.com/?p=22</guid>
		<description><![CDATA[On Friday, WICS hosted a faculty lunch with our department chair, Dr. J Strother Moore. I was a little late coming from class, but fortunately the part I missed out on was about backpacking, rock-climbing, and fishing, none of which interest me too much. Afterwards, he talked quite a bit about his main project as [...]]]></description>
			<content:encoded><![CDATA[<p>On Friday, WICS hosted a faculty lunch with our department chair, <a href="http://www.cs.utexas.edu/~moore/">Dr. J Strother Moore</a>. I was a little late coming from class, but fortunately the part I missed out on was about backpacking, rock-climbing, and fishing, none of which interest me too much.</p>
<p>Afterwards, he talked quite a bit about his main project as chair&#8211;which is to get a new building for our Computer Science department. Right now our faculty is spread across 6 different buildings, not all close to each other, and having everyone together would be great for sharing ideas, working on research, and just building a community. I frequently hang out in the basement where the ACM and WICS offices are, but it&#8217;s not convenient for most other people to just come by, and yes, it does smell a little funny. Unfortunately, the date for starting the new building still isn&#8217;t set, and it would take four years or so to complete, so it definitely won&#8217;t be up while I&#8217;m still here. I&#8217;m still not completely sure it&#8217;s necessary to take on that cost of not having a central hub for that amount of time, but the ideas Moore presented of our new building sure did sound lovely.</p>
<p>Another interesting idea he had was to have senior faculty teach the lower-level classes, while the newer faculty who are doing more research would be teaching the upper level classes. Personally, I think that&#8217;s a great idea since there&#8217;s nothing that turns more students off of certain classes than not having a teacher who really has teaching experience. I agree with this completely, as well as his idea to have larger class sizes using tools such as iClicker for extra interaction. My one concern with his ideas here was that of reducing reliance on lecturers. It really makes sense financially since the funds for lecturers fluctuate every year, but Mike Scott has been doing a great job of teaching CS 307 for about a decade now, and I don&#8217;t know if anyone else could fill that role so well. </p>
<p>Anyhow, Moore is teaching CS 313k occassionally and I don&#8217;t have him next semester, so I may never get to see how he is as a professor, but it certainly was enjoyable to have our group sit down to lunch with him and learn a bit more about what&#8217;s going on with the department.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flifnotes.com/22-faculty-lunch-dr-j-strother-moore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

