Thomas G. Re

Professor Computer Science Department

Courses

The following is a brief listing of courses that Professor Re has taught or is currently teaching at Hofstra University.

Course Number Course Name Course Description Level
CSC005 Overview of Computer Science ntroduction to fundamental concepts in computer hardware and software. Exploration of the history and evolution of computing, and foundational areas of current computer science research. Algorithms, program development, and problem solving. Undergraduate
CSC015 Fundamentals of Computer Science 1 Introduction to computer science with emphasis on problem solving, programming and algorithm design. Uses a high-level programming language for solving problems and emphasizing program design and development. Topics include basic programming constructs, expressions, functions, data types, arrays and strings. Undergraduate
CSC060 Fundamentals of Networking Introduction to networking. Peer-to-peer, LANs, and WANs. History and evolution of networking. Current applications. Communication protocols, Open Systems Interconnection, secure communications. Hardware and software issues. Structure of the Internet: pro Undergraduate
CSC110 Introduction Computer Architecture Internal structure of computers. Logic design: Boolean algebra, gates and flip-flops, synthesis of combinatorial networks, registers, serial and parallel organization, control mechanisms. Number systems and arithmetic, two's-complement arithmetic. Operating cycle, data and control flow in a typical computer. Interrupts, i/o devices, programmed i/o and DMA. Undergraduate
CSC110A Computer Architecure Lab Provides hands-on experience in using digital electronics by way of integrated circuits without engineering bias. Offers practical construction, testing and implementation of circuits useful in digital circuits and modules. Undergraduate
CSC111 Assembly Programming Organization of a computer: memory, addressing; number systems and conversion. Assemblers, base registers, relocation. Fixed-point numeric processing, string processing, indexing and iteration. Floating-point arithmetic and Boolean operations. Subroutines, macros, i/o channel programming. Undergraduate
CSC112 Computer Operating Systems A study of the internal design of operating systems. Topics include memory management, multiprogramming, virtual memory, paging and segmentation. Job and process scheduling; multiprocessor systems; device and file management; thrashing, cache memory. Undergraduate
CSC145G Application Development with C# & .Net Special topics course. Introduction to desktop application development using C# & .Net. An introduction to ADO .Net, three tierd busines model, SQL server and Windows application development. Students get a chance to build front end desktop applications that connect to a relational database. Undergraduate
CSC155 Systems Programming Introduction to UNIX-like operating systems, le systems, processes commands, shells, scripting languages, C-UNIX interface, interprocess communication, socket and network programming, and writing kernel modules. Students will be working on multiple programming projects. Good programming skills are expected. Undergraduate
CSC183 Web Application Development This course covers the foundational aspects of web application development. Topics include the following: the structure of the Internet; client-server applications; stateless web servers; web applications; using cookies to maintain state; servlets and server pages; database connectivity; rapid application development; and comparison of current technologies for web application development. Undergraduate
CSC184 Mobile Device Programming Introduction to the design and development of software for portable/handheld devices. Topics include the following: smartphones, tablets, and other media consumption devices and their characteristics and limitations; overview of user-interface design for mobile devices; event handling; differences between graphical user interfaces for the desktop environment and those for portable computers; handling touch input and gestures; connectivity using TCP/IP and SMS; local data storage and storage on the cloud; drawing and creating custom widgets; APIs for multimedia applications; and comparison of current technologies. Undergraduate
CSC197A Independent Senior Design Under faculty advisement students complete an integrative project in an area of computer science or computer engineering. A final project report, a poster, and a CD project portfolio are required. The course has an oral communication component. Undergraduate
CSC254 Database Design Study of database design and modeling; the relational model; relational algebra and calculus; normal forms; SQL query language; database application development; transaction processing; storage and indexing principles. Graduate
CSC256 Advanced Operating Systems Design Review of resource management and control functions of operating systems. Process management, memory management, file systems, distributed and multiprocessor systems. Concurrent processes, scheduling, mutual exclusion, synchronization. The CSP language for specifying communication patterns in interactive systems. Deadlock prevention, avoidance, and detection. Memory management paged and segmented allocation. The memory hierarchy, caching, virtual memory, page replacement algorithms, and their analyses. Protection and security. Graduate
CSC283 Web Application Development This course covers the foundational aspects of Web application development. Topics include: the structure of the Internet; client-server applications; stateless Web servers; Web applications; the Common Gateway Interface (CGI); using CGI to develop simple applications; using cookies to maintain state; common Web application stacks; servlets and server pages; writing custom tags; database connectivity; rapid application development; comparison of current technologies for Web application development. Graduate
CSC285 Mobile Device Programming This course covers the development of applications for network-enabled mobile devices. Topics include: cell phones, personal digital assistants (PDAs) and other small computational devices, their strengths and limitations; configurations and profiles; overview of programming mobile devices; standard and custom user interface elements and events; networking; record stores and persistence; text and multimedia messaging; drawing and animation using game application program interfaces (APIs) and 3D APIs; audio and video APIs; comparison of current technologies. Graduate
CSC290Z Special Topic: Systems Programming Introduction to UNIX-like operating systems, le systems, processes commands, shells, scripting languages, C-UNIX interface, interprocess communication, socket and network programming, and writing kernel modules. Students will be working on multiple programming projects. Good programming skills are expected. Graduate
CSC300 Independent Projects A one semester project course under the supervision of a faculty member for graduate students. Graduate
CSC302 Thesis This is an advanced project carried out by the student, under supervision of a faculty member. An oral presentation is required as well as a written thesis. Graduate
ENGG010 Computer Programming for Engineers Algorithms, programs and computers. Logic, flowcharting and programming of solutions to engineering problems. Introduction to the programming of numerical methods. Exercises utilizing analytical high-level software packages. Undergraduate