Contact Us    Find People    Site Index
   Homepage
page header
 future students linkscurrent students linksfaculty and staff linksalumni linksparents linksvisitors links

Computer Science Courses

Semester specific course desciptions

140. Introduction to Computer Programming.
This course gives students an introduction to programming using a high-level language, with emphasis on problem-solving and algorithm development. Computer programming skills are enhanced through individual student projects.

219. Techniques of Computer Science.
An in-depth look at computing and programming using high-level languages. Topics include advanced programming techniques and efficient algorithms for the solution of problems on a computer. Students complete a large programming project. Prerequisite: Computer Science 140 or the equivalent.

220. Computer Organization.
Topics include data representations, digital circuits, the organization of CPUs, machine language and an introduction to assembly language programming. Prerequisite: Computer Science 219. Offered in spring semester.

250. Computer Science Seminar.
This laboratory-based course covers topics important for a well-rounded computer science education. Topics vary from week to week and may include problem-solving in the context of programming competitions; advanced operating system topics in Linux; practical applications of computer science such as Web, file and database server administration; advanced debugging and profiling techniques; practical cryptography; and computer science history. This course is worth 0.25 credit, meets once per week, and is graded pass/fail. Since topics vary from semester to semester, students may repeat the course for credit. Prerequisite: Computer Science 219.

256Data Structures.
Techniques and algorithms for the organization, representation and processing of data on the computer. Topics include strings, lists, stacks, queues, trees and graphs, as well as their applications. Prerequisite: Computer Science 219. Offered in fall semester.

317. Mathematical Logic.
An introduction to modern mathematical logic, including the most important results in the subject. Topics include propositional and predicate logic; models, formal deductions and the Gödel Completeness Theorem; applications to algebra, analysis and number theory; decidability and the Gödel Incompleteness Theorem. Treatment of the subject matter is rigorous, but historical and philosophical aspects are discussed. Prerequisite: Mathematics 280. Also offered as Mathematics 317 and Philosophy 317.

318. Graph Theory.
Graph theory deals with the study of a finite set of points connected by lines. Problems in such diverse areas as transportation networks, social networks and chemical bonds can be formulated and solved by the use of graph theory. The course includes theory, algorithms, applications and history. Prerequisite: Mathematics 217 or 280. Also offered as Mathematics 318.

321. Computer Networking.
This course presents an overview of computer networking while focusing on the technological issues which have made the internet successful. Topics include protocols associated at the application level (HTTP, DNS, FTP, BitTorrent, etc.), transport level (TCP/UDP), network level (IP/ATM), and issues related to network security. Students will gain experiencee with common networking tools; writing programs that operate on the transport layer; and the Linux operating system. Prerequisite: Computer Science 256.

324. Numerical Analysis.
Topics covered include finite differences, interpolation, numerical integration and differentiation, numerical solution of differential equations and related subjects. Prerequisite: Mathematics 217. Also offered as Mathematics 324.

332. Web Programming.
This course introduces the terminology of the Web and the Hypertext Markup Language (HTML) as well as concepts of distributed computing, including client-side and server-side programming. Prerequisite: Computer Science 256 or permission of the instructor.

362. Algorithm Analysis.
Students learn techniques and methods for designing, analyzing and testing the efficiency and performance of computer algorithms. The course includes an introduction to the theory of polynomial reducibility. Prerequisites: Computer Science 256 and Mathematics 280.

364. Programming Languages.
This course consists of two parts: a comparison of various computer languages and their uses, and a study of the concepts and organization of computer languages. Prerequisite: Computer Science 220 or 256.

370. Operating Systems.
An introduction to computer system design and use. Topics may include assemblers, interpreters, compilers, loaders, macro-processors and operating systems. Prerequisite: Computer -Science 220.

374. Artificial Intelligence.
This course introduces the concepts and uses of artificial intelligence. Possible topics include search strategies, natural language processing, expert systems, neural nets and robotics. Prerequisite: Computer Science 256.

380. Theory of Computation.
The basic theoretical underpinnings of computer organization and programming. Topics include the Chomsky hierarchy of languages and how to design various classes of automata to recognize computer languages. Application of mathematical proof techniques to the study of automata and grammars enhances understanding of both proof and language. Prerequisite: Computer Science 256 and Mathematics 280. Also offered as Mathematics 380.

389,390. Independent Projects in Computer Science.
Permission required.

489. SYE: Senior Project for Majors.

498. SYE: Senior Honors Project for Majors
Permission Required

St. Lawrence University · 23 Romoda Drive · Canton, NY · 13617 · Copyright · 315-229-5011