David's eDossier

My Coursework
Note: No computer science coursework will be shown here.
My Computer Science Coursework
CPSC 2120 - Algorithms and Data Structures
This course provides an in-depth study of fundamental data structures and algorithms in computer science. It covers abstract data-type concepts, techniques for designing and analyzing algorithms, and methods for measuring program running time and evaluating time complexity. We learn to apply various data structures and algorithms to solve computational problems efficiently.
CPSC 3720 - Introduction into Software Engineering
This course offers an intensive introduction to software engineering, covering all major phases of the software development lifecycle. It provides an overview of requirements analysis, requirements modeling, design modeling, and project management. The course also includes intermediate-level instruction on module-level design principles, program specification and reasoning, as well as techniques for program validation and verification. We gain a solid foundation in both the theoretical and practical aspects of software engineering.
CPSC 3300 - Computer System Organization
This course provides an introduction to the structure and organization of computer systems, examining how various hardware and software components are integrated to form complete systems. Topics covered include digital logic, basic computer architecture, computer arithmetic, memory organization, input/output structures, interrupt processing, multiprocessor systems, and cluster computing.
CPSC 3600 - Network Programming
This course introduces the fundamental concepts of computer network technologies and network programming. Topics include layered protocol architectures, local and wide area networks, internetworking and internetworking principles, and network security. The course emphasizes practical skills in network programming, with a focus on socket-level programming, which is introduced and applied throughout.
CPSC 3750 - Website Development
This course focuses on the fundamental principles and techniques of website development. We learn to design, develop, and maintain dynamic and interactive websites using HTML, CSS, JavaScript, and other web technologies. The course covers best practices for front-end development, user experience design, and website optimization, providing hands-on experience in creating responsive and accessible web applications.
CPSC 4140 - Human and Computer Interaction
This course provides a comprehensive survey of human-computer interaction (HCI), exploring its literature, history, and key techniques. It examines cognitive and social models, as well as their limitations, and covers the components of both hardware and software interfaces. We learn various design methods, tools that support design processes, and evaluation techniques used to assess the effectiveness and usability of interactive systems.
CPSC 4160 - 2-D Game Engine Construction
This course introduces the tools and techniques essential for developing 2-D games. It draws on concepts from software engineering, algorithms, and artificial intelligence to equip We with the skills needed for game development. Key techniques covered include sprite animation, parallax scrolling, sound integration, AI for game sprites, and building a game shell. We gain hands-on experience in creating engaging and interactive 2-D games.
CPSC 4440 - Cloud Computing Architecture
This course provides an overview of cloud computing, including the technical skills required to develop applications in a cloud environment and the hardware and software systems used to architect cloud-based solutions. We explore various cloud services and learn essential cloud computing skills, applying them through hands-on, realistic projects to design and implement cloud applications.
CPSC 4620 - Database Management Systems
This course offers an introduction to database and data communication concepts relevant to the design of online information systems. It addresses challenges related to structuring, creating, maintaining, and accessing multi-user databases, and explores various solutions to these problems. The course also includes a comparison of several commercially available teleprocessing monitors and database management systems.
CPSC 2920 - Computing and Ethics
This course explores the ethical challenges and moral dilemmas introduced or transformed by the use of computers and technology. It applies ethical concepts and frameworks to help guide computer professionals in their decision-making. Topics covered include the digital divide, privacy, globalization, professional codes of ethics, e-waste, and intellectual property. The course also includes small discussion groups to analyze and debate current issues at the intersection of computing and society.