Discrete & Comp Geom

Topics include the core of the field: polygons, convex hulls, triangulations and Voronoi diagrams. Beyond this core, curves and surfaces, and computational topology are covered. Throughout, a dual emphasis is maintained on mathematical proofs and efficient algorithms. Students have a choice of concentrating their course work in mathematics or toward computer science. Designations: Theory, Programming. Prerequisites: CSC 210, MTH 111 and MTH 153.

Image Processing Fundamentals

Images fill the media, and most are processed by computer at some point or another. This course examines a variety of algorithmic image processing techniques, exploring implementation and applications, as well as some of the social impact and ethical issues surrounding their use. Prerequisites: CSC 212 and MTH 111. Enrollment limited to 30.

Operating Systems

An introduction to the functions of an operating system and their underlying implementation. Topics include file systems, CPU and memory management, concurrent communicating processes, deadlock, and access and protection issues. Programming projects implement and explore algorithms related to several of these topics. Designations: Programming, Systems. Prerequisite: CSC 231. Enrollment limited to 30.

Algorithms

Covers algorithm design techniques ("divide-and-conquer," dynamic programming, "greedy" algorithms, etc.), analysis techniques (including big-O notation, recurrence relations), useful data structures (including heaps, search trees, adjacency lists), efficient algorithms for a variety of problems and NP-completeness. Designation: Theory. Prerequisites: CSC 210, MTH 111 and MTH 153. Enrollment limited to 30.

Theoretical Foundations

Automata and finite state machines, regular sets and regular languages, push-down automata and context-free languages, linear-bounded automata, computability and Turing machines, nondeterminism and undecidability. Prerequisites: CSC 110 and MTH 153. Enrollment limited to 30.

Intro Electronics & Arduino

Beginning with the basics of circuitry and electronic diagrams, the class studies several components commonly used in electronics, combining them in different ways through labs designed for hands-on learning. After the class has covered the basics, students design and build a creative hardware project of their own creation using an Arduino microcontroller. Prerequisite: CSC 231. Enrollment limited to 30. (E)

Microprocess&Assembly Lang

An introduction to the architecture of the Intel Pentium class processor and its assembly language in the Linux environment. Students write programs in assembly and explore the architectural features of the Pentium, including its use of the memory, the data formats used to represent information, the implementation of high-level language constructs, integer and floating-point arithmetic, and how the processor deals with I/O devices and interrupts. Prerequisite: CSC 210 or equivalent. Enrollment limited to 30.

Data Structures

Explores elementary data structures (arrays, linked lists, stacks, queues, maps, trees, graphs) and algorithms (searching, sorting, tree and graph traversal) in a variety of contexts. Using a typed object oriented programming language (e.g. Java), students develop their own implementations as well as more complex applications based upon existing, standard data structures libraries. Not open to students who have taken CSC 212. Prerequisite: CSC 120. Enrollment limited to 30.

Data Structures

Explores elementary data structures (arrays, linked lists, stacks, queues, maps, trees, graphs) and algorithms (searching, sorting, tree and graph traversal) in a variety of contexts. Using a typed object oriented programming language (e.g. Java), students develop their own implementations as well as more complex applications based upon existing, standard data structures libraries. Not open to students who have taken CSC 212. Prerequisite: CSC 120. Enrollment limited to 30.

Web Programming

This course covers the fundamentals of programming for the web. Students explore client-side development using HTML, CSS, JavaScript and jQuery to craft interactive and visually appealing web experiences. Next, the course transitions to server-side programming, using PHP and AJAX to build robust and responsive web applications. The course also covers foundational topics in software design and project development through both hands-on projects and guided instruction. Prerequisite: CSC 120 or CSC 210. Enrollment limited to 30. (E)
Subscribe to