CIS 1068
Design and Abstraction
Duration: 3 Semesters
Course Description:
The course aims to reinforce the fundamental programming concepts learned in introductory courses, providing a deeper understanding of these topics. It introduces students to object-oriented programming and new programming tools and techniques.
Activities:
- Conducting lab sessions to reinforce programming concepts learned in class.
- Holding regular office hours to provide individualized assistance to students.
- Assisting students with understanding programming principles and debugging techniques.
- Providing guidance on designing and implementing data types using object-oriented principles.
- Helping students develop strategies for writing readable, reusable code that scales.
- Assisting students in analyzing functions, designing tests, and explaining non-testable functions.
- Teaching basic debugging techniques and encouraging the use of debuggers.
- Guiding students in writing programs using control structures like expressions, conditional statements, and loops.
- Emphasizing encapsulation and information hiding to create reusable modules.
- Teaching file handling for reading and writing data to provide persistent storage.
- Grading assignments, projects, and exams to provide constructive feedback to students.
CIS 4319/ CIS 3329
Computer Networks and Communications / Network Architectures
Duration: 3 Semesters
Course Description:
The course on computer networks and internets covers the operation and architecture of computer networks, focusing on client-server computing and n-tier software development. It includes topics such as communications technology, TCP/IP protocol suite, client-server protocols, network program component models, and issues related to security, privacy, authentication, and social changes. The primary goal is to understand the TCP/IP Protocol Suite, addressing networking problems like naming, switching, reliability, and routing. Supporting goals include practicing system and network administration tasks using Linux and developing TCP/IP socket programs in Java.
Activities:
- Designing and explaining projects to reinforce understanding of client-server computing and n-tier software development.
- Conducting lab sessions to demonstrate communications technology, computer network technology, and internetworking using the TCP/IP protocol suite.
- Assigning and grading homework assignments to assess students’ understanding of course material.
- Assisting students in understanding networking concepts such as client-server protocols, network program component models, and security issues.
- Providing guidance on system and network administration tasks using the Linux Operating System and associated tools.
- Teaching students how to develop TCP/IP socket programs using the Java Programming Language.
- Conducting discussions on issues related to security, privacy, authentication, intellectual property rights, and social changes related to computer networking.
- Encouraging students to evaluate alternative approaches to client-server computing and n-tier software development.
CIS 4378
Computer and Network Security
Duration: 1 Semester
Course Description:
This course offers an overview of the vulnerabilities found in modern computer systems and networks, along with the standard tools and practices used to enhance their security. Key topics include fundamental concepts of cryptography, virtual private networks (VPNs), secure sockets, email security measures, firewalls, secure software development practices, Kerberos authentication, web server security, virus protection, intrusion detection systems, and privacy concerns.
Activities:
- Conducting lab sessions to reinforce security concepts learned in class.
- Holding regular office hours to provide individualized assistance to students.
- Assisting students with understanding cryptography concepts and secure development practices.
CIS 0835
Cyberspace and Society (Grader)
Duration: 1 Semester
Course Description:
This course is designed to provide students with a comprehensive understanding of the fundamental principles underlying technology and its impact on society. It emphasizes the integration of these principles with real-world applications to promote information fluency and develop higher-level intellectual capabilities. The course is divided into three main sections: technology principles, technology’s societal impact, and hands-on labs. By combining these sections, students will gain a deep understanding of both the theoretical foundations and practical applications of technology in their daily lives. The course employs various teaching methods, including lectures, readings, labs, and discussions, to demonstrate the application of technology and its societal implications.
Activities:
- Grading assignments, projects, and exams to provide constructive feedback to students.