Programming Languages CS-105
Language processors; data; binding time; operations; sequence control; referencing environments; scope of a variable; storage management; operating environment, syntax; translation.
o Team Lead in Programming Class
• Directed JavaScript video game development project team
• Designed using HTML5, JavaScript, GitHub
Creative Software Architectures for Collaborative Projects CS-130
When the scope a software project exceeds a single programmer’s capacity within a given time-frame, what sorts of skills and tools become necessary to support collaboration and coordination within teams? This course introduces students to the challenges of developing large-scale software artifacts. The approach taken involves the implementation of one or more large multi-person projects. Other topics include: software life-cycle, fundamental concepts of software design, modern language features, verification and validation techniques
o Software Development Project - Course Scheduling
• The mission of Course Scheduling is to output usable schedules to university students using a database filled in by the faculty, administrators and staff.
• We aim to quickly create schedules and take users through an intuitive process of filling in the necessary information to get their desired schedule.
• The end product will be an exportable schedule that a user can edit in order to adapt to their specific needs.
Database Design CS-125
Database system architecture; relational and object-oriented databases, the Structure Query Language (SQL), normal forms and database design; query processing and optimization; handling transactions, concurrency control, crash recovery; data warehousing and data mining.
o Database Group Project - BookEnds
• Project using Database fundamentals to populate database with fake data
Abstract Models for Concrete Problems Using Java CS-030
This class introduces abstract data types (ADTs) and their implementations in Java. ADTs considered include: lists, stacks, queues, maps, trees and graphs. Sorting and searching algorithms. Big-O notation. Software testing and program verification. Discussion of ethical issues arising from the creation and use of computer programs.
Computer Organization and Architecture CS-045
Introduction to the hardware-software interface. Digital logic, data representation, computer arithmetic, software vs. hardware tradeoffs, instruction set architecture, addressing techniques, cache, virtual memory, and pipelining.
Design and Implementation of Solutions to Computational Problems CS-010
This course covers the basics of programming including language features, disciplined programming style, and documentation, algorithm design, and the software development process. Discussion of ethical issues arising from the creation and use of computer programs
Discrete Mathematics CS-015
If calculus is analog, then discrete mathematics is digital; it is the study of things that you count, rather than things that you measure. Topics include logic (organizing thought), set theory (organizing objects), graph theory (representing relationships), combinatorics (clever ways of counting), and algorithms (analyzing processes). Students will learn how mathematicians prove theorems and how computer scientists solve problems
Human Computer Interaction (Hci) CS-150
Project based human computer interaction class that teaches how a user interacts with an application. See Projects section for project.
Networks CS-140
Network technologies including packet switching, framing, local and wide area technologies, network addressing, repeaters, bridges, hubs, switches, topologies, next-hop forwarding, shortest path computation, delay and throughput, and protocol layers. Internetworking including IP, TCP, UDP, datagrams, routers, and protocol ports. Network applications including client-server paradigm, and domain name system. Web technologies and protocols including HTTP, CGI, and Java.
Space, Time, & Perfect Algorithms CS-120
How fast is a fast algorithm? How do we determine if one algorithm is faster than another? How does the amount of memory used by an algorithm trade off against the time that algorithm takes? What is a perfect algorithm and how can we find one? These and other questions about the formal properties of algorithms and the classic data structures used by algorithms are the focus of this course