To Drs. Martinez, Egbert, and Clement: The current introductory courses, 100 and 142, offered by the Computer Science department do not offer non-CS majors a reasonable course in which to learn basic computer programming skills. Since these skills are of benefit to students in a range of fields outside computer science, I request the creation of a 100-level computer science class, focused on programming, but less rigorous than the current CS 142. Additionally, I suggest creation of a CS minor using existing classes in the CS department for students who wish to gain a more thorough understanding of CS, but who wish to major in other fields.
I am a senior graduating with a BS in biochemistry, and a primarily self-taught programmer with a strong interest in computational chemistry. During an internship with Pfizer this summer, for which I developed some software for their virtual drug discovery process, I noticed that all of my co-workers in the computational chemistry department had PhD's in chemistry, but suffered from a lack of formal computer science training. Though they were proficient programmers, but their code was occasionally clumsy and inefficient (and often inscrutible) -- definite drawbacks in a field where speed of calculation is critical. I decided to get some formal CS training while I had the chance, so this semester I am taking CS 240 and auditing CS 235. I will probably audit CS 236 next semester. Because of my interest in and proficiency with computers, many of my friends have shared with me their use of computers in their own field of study, and asked for help improving their own programming skills. For example, my roommate is an economics major who deals heavily with statistics. He has benefited from knowing how to write his own data-processing routines for the statistical programs he uses. One of my peers in chemistry had designed a clumsy Excel spreadsheet to simulate behavior of simple atomic systems; I helped him pick up enough Python to re-write the program, which then ran about 100 times faster. A girl in my ward last year wrote a program to simulate the growth of bacterial colonies under natural selective pressures. A former roommate, a psychology major, wanted to write a small program to give a computer-based questionnaire and record the results in a database. Given the pervasive use of computers in other academic disciplines, I think many students recognize that they benefit from having basic computer programming skills. When someone asks for my help with a computer program, many times they also ask what CS class they could take to refine their basic programming skills, or even learn them in the first place. Unfortunately, I don't think that an appropriate class exists within the current BYU Computer Science curriculum. CS 100 teaches basic computer applications, but programming is only a small part of the course. CS 142, on the other hand, is dedicated to programming. But it is an extremely rigorous course "designed for students who intend to major in Computer Science or in areas with a strong emphasis on computer programming" (from the 142 syllabus). I certainly agree that CS majors should take a demanding introductory course -- my introductory chemistry classes were demanding, and I don't think any department should expect any less of its own students. However, the gap between CS 100 and CS 142 is wide and empty: there is no introductory programming class appropriate for non-majors. Granted, it is possible for a non-major to take 142 and succeed. Some majors, such as information technology and bioinformatics, even require it. But the class has (and deserves) a reputation for being a lot of work, and thus most non-majors are intimidated and unwilling to dedicate so much effort to one class that is not directly related to their field of study, despite the fact that they would benefit from the skills learned in the class. Even for those of us that are willing to put forth the effort to take the first few CS classes, we do so for no academic recognition other than a few extra classes on our transcript. I am currently auditing 235 and will probably audit 236 because I recognize that even though the class is of great benefit to me educationally, it is of no benefit to me academically. I, unfortunately, must play the credits-and-grades game like everyone else, so auditing these classes has been the best way for me to prevent school from interfering with my education. In cases such as mine, a CS minor would have been a very attractive incentive. I understand that creating a new course is a lot of work administratively, and a course designed for non-majors would put an especially large burden on the department because it would increase the number of distinct students enrolled in CS classes. However, the BYU student community as a whole would benefit greatly from such a class. If you have any questions or other feedback, please feel free to contact me. Email is always the most reliable method, but I would be happy to arrange a phone conversation or meet with you in person if you like. Thank you for considering my suggestions. -- Soren Harward [EMAIL PROTECTED] 801-374-1905 (home) ____________________ BYU Unix Users Group http://uug.byu.edu/ ___________________________________________________________________ List Info: http://uug.byu.edu/cgi-bin/mailman/listinfo/uug-list
