Computer Science Courses (CSCI)
- 160 Crafting the Client-Side Web
- 202 C++ on the Server Side: CGI, AJAX and Classes
- 205 Survey of Programming Languages
- 244 Special Topics in Computer Science
- 310 Data Structures, Algorithms and Analysis
- 315 SQL, Sockets and IPC
- 320 The Technical Web
- 330 Computer Organization and Operating Systems
- 331 Software Engineering
- 345 Computer Graphics
- 410 Embedded and Real-time Programming
- 415 Real-time Interactive Computer Simulations
- 431 NP-Completeness, Formal Languages and Automata
- 440 Mechanical Reasoning, Intelligence and Learning
- 444 Advanced Topics in Computer Science
- 450 Computer Science Internship
- 470 Preceptorship
Students learn the essentials of C++, including classes, as they use it on the server-side of web applications. They learn how to use CGI, AJAX, and the Document Object Model. They learn the differences between get and post requests and when to use one or the other.
Students learn to distinguish the imperative, declarative and functional programming paradigms from each other and understand their relative strengths and weaknesses. They gain experience using Visual Basic, Visual C++, possibly other imperative languages, and at least one functional and one declarative language.
Allows special offerings in computer science according to student interest and/or need.
Students learn the theory and use of data structures (including triangular arrays, trees, and graphs); efficient sorting algorithms; and algorithmic methods such as backtracking and branch-and- bound. They also gain some facility with the use of Big-O, big-omega and big-theta for analysis.
Students learn how to create, manage, and query relational data-bases using SQL. They also learn how to allow different computers to communicate by creating software using sockets.
Students learn the basic organization and function of computers at the hardware level, including digital logic, microprogrammed control, numeric representations and operations, pipelining, caching, virtual memory, CISC/RISC, instruction formats, addressing modes, and I/O.
Students learn about the difficulties of programming-in-the-large and how to address them, including the factors that drive successful implementation projects. They also learn about software lifecycle models, and how to judge whether or not a given model is appropriate for a given situation.
Students learn the details of, and how to use, basic algorithms for clipping, affine transformations, curve generation and image generation. They also learn the theory of creating basic 2D and 3D images; creating simple polyhedral, mesh, and fractal models; basic transformations, clipping, and camera-view changes on images; and to creating 2D and 3D animations.
Students learn about the special concerns presented by real-time systems and how these concerns may be addressed. They examine the features of fault tolerant systems and apply (in hands-on projects) techniques for motion planning, sensing, and programming for robots.
Students examine the challenges presented in programming various types of real-time interactive computer simulations and how these challenges might be addressed.
Students learn the basic theory of computational intractability, particularly with regard to NP-Complete problems. They learn how to recognize NP- Complete problems and how to prove that they are NP-Complete. They also gain greater facility in exploring and proving the complexity of algorithms.
This capstone course (for both the BA and BS in computer science) will enable students to bring together much of what they’ve learned in computer science as they apply it to learning and using various techniques for computer-based reasoning, learning and intelligent behavior.
Allows special advanced offerings in computer science according to student interest and/or need.
This internship provides direct work experience in computer science with an approved organization or firm.
Students assist faculty in teaching a course. Activities include tutoring, proctoring, course planning and preparation, holding office hours and helping in Academic Support Services.