Computer Science Course Overview
CSC 131 (Computing Practice and Perspectives) is offered primarily for non-majors but all students can benefit from this course. It has no prerequisites, and is designed to enlighten students through careful examination of the issues surrounding information technology including intellectual property, freedom of speech, right to privacy, and professional ethics and empower students through much hands-on lab work including creating web sites, mastering presentations, and becoming an expert at locating and assessing information. This course satisfies the college’s “W” (introduction to writing) BA degree requirement.
CSC 140 (Foundations of Computer Science) and CSC 151 (Discrete Mathematics for Computer Science) appeal to majors and non-majors. The courses engage students with the basic questions of the discipline, while fostering laboratory (currently Java programming) and mathematical skills required for further study.
Students who choose a major or minor in computer science will also enroll in CSC 144 (Software Architecture), CSC 213 (Algorithms and Data Structures), and CSC 218 (Computer Organization). In Software Architecture, they design larger and more complex programs than those they wrote in Foundations of Computer Science. That experience gives them the confidence they need to compare alternative ways of organizing information in Algorithms and Data Structures. Through the sequence of three courses (CSC 140, 144, and 213) students develop creative and analytic skills. Working in teams, they learn to appreciate the variety of talents through which they can contribute to the solutions of problems. Computer Organization often provides an “AH HA!” experience when students first appreciate the details of the connection between hardware and software.
Most 300-level courses are offered on an every-other-year basis and are designed for advanced sophomores, juniors or seniors. At least three regular 300-level courses are required for a major. These are chosen, with the help of an advisor, to match student interests and to provide a well-rounded program. The content of Topics in Computer Science varies from year to year. These courses give students and faculty opportunities to explore aspects of computer science in which they have special interest. The faculty designs the Topics in Computer Science courses to appeal to a wide audience and so specifies fewer prerequisites than for other upper-level courses in the department. Topics courses offered have included Robotics, Computer Networks, Bioinformatics, Structure and Interpretation of Computer Programs, Client-Server Systems, and Discrete Algorithms and Their Complexity. Both CSC 480 Internship and CSC 390 Individual Project draw rave reviews from the students who complete them and faculty who supervise them. They are arranged based on student initiative.