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.

Computer Networks

This course introduces fundamental concepts in the design and implementation of computer communication networks, their protocols and applications. Topics covered include layered network architecture, physical layer and data link protocols; transport protocols; and routing protocols and applications. Most case studies are drawn from the Internet TCP/IP protocol suite. Designation: Systems. Prerequisites: CSC 120 or equivalent.

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 impl ementation 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.

Intro to Software Engineering

Introduction to software engineering theory and methodologies, with an emphasis on rapid prototyping and development. This course is a survey of topics: requirements elicitation and specification, prototyping and infrastructure, basic project management, architecture and design patterns, and verification and testing. Students work in teams on a significant design and development project. Prerequisite: CSC 210 or equivalent. Designation: Systems. Enrollment limited to 32.

Adv Programming Techniq

Reinforces programming skills learned in previous programming courses through working on a number of projects. Offers practice for developing modular, reusable, maintainable code. Students gain more experience with design and development. Designation: Programming. 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. Enrollment limited to 30. (E)

Object Oriented Programming

This course emphasizes computational problem-solving using a typed object-oriented programming (OOP). Students learn core computer science principles including: control flow, functions, classes, objects, methods, encapsulation and information-hiding, specification, recursion, debugging, unit testing, version control, using libraries and writing code in multiple files. Students also learn and apply the model-view-controller (MVC) architecture, the basics of graphics and GUIs, working with external files and foundations of algorithm design.
Subscribe to