Daniel Zappala

Associate Professor

zappala@cs.byu.edu

BYU | Computer Science

Internet Research Lab

Teaching

I have primarily taught networking classes during my career, with a few forays into social networking and Western Civilization. My responsibilities are changing, and I will now be teaching security and web programming courses.

I strive to keep all my class materials available online, including syllabi, assignments, and code.

My current assignments:

CS 260 Web Programming: Web Programming, including both front end and back end code. The primary language used will be JavaScript, along with HTML and CSS for formatting. The back end code will use Node.js and a SQL database. By the end of the class you should feel comfortable with HTML, CSS, JavaScript, jQuery, Node.js, SQL databases, and a front-end framework. I currently use Vue.js for the front end. I don't have these materials online yet, but will be working on this.

CS 465 Computer Security: Fundamental principles of computer security, including cryptography, systems, and software security.

CS 665 Advanced Computer Security: This graduate course explores advanced topics in computer security. We cover some classic papers and mostly current papers from major security conferences.

Mentoring

I often mentor undergraduate students interested in working on research projects. We can now offer credit for a semester of undergraduate research, and sometimes have funding to pay students as well. In past semesters I mentored students on open source projects, including the 20 Minute Genealogist project (now Kinpoint), leaf and Citizen Budget.

Past Classes

CS 360 Internet Programming: Internet application programming, including client-server and web applications. Sockets, concurrency, thread-pool and event-driven architectures, experimental performance evaluation, web database application design, security issues. C++, Python, CSS, Javascript.

CS 460 Computer Communications and Networking: Introductory course in networking for undergraduate and beginning graduate students. Focuses on understanding how the Internet works, from the application layer down to the link layer. Application-layer networking, transport protocols (TCP and UDP), routing protocols, IP, link-level protocols, wireless networking, and multimedia networking.

CS 660 Computer Networks: This graduate course explores advanced topics in computer networks, focusing on fundamental research being conducted to improve the Internet. Topics include applications, routing, transport, wireless, measurements and other Internet research areas.

CS 601 Special Topics: Graduate courses on Advanced Operating Systems Usability Research Social Networking Wireless Mesh Networks and Peer-to-Peer Networking.

Digital Civilization: Honors 202 Western Civilization 2, co-taught with Gideon Burton in the English department in Fall 2010 and Winter 2012. Teaches western civilization from our current perspective in the digital revolution. The course emphasizes self-directed learning and the use of digital media (blogging, social bookmarking, social networking) to understand and relate to the history of Western civilization.

For a good primer on the class, read these blog posts:

If you're interested, you can also watch our final project presentations, which were streamed live over the Internet: Watch the Digital Revolution.