This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, graphs, and strings. The course concentrates on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications.
- Instructor: Ercan Canhasi
- Instructor: Arta Misini
- Instructor: Jusuf Thaçi
This course provides core concepts of computer architecture and digital logic, von Neuman models, MARIE machine, Memory systems, Symbol codes, Input/output operational units. Also, this course enables students to successfully apply concepts of operating systems. Gives them knowledge services of OS as an intermediary between user applications in one hand and the computer system hardware on the other hand.
- Instructor: Arianit Maraj
- Instructor: Jusuf Thaçi
Business and Leadership course is an applied and practical course surveying the attributes of leadership that are practical for different business cultures. The module will be separated into (1) Effective Communication, (2) Learning, (3) Entrepreneurship and (4) Finance & Marketing.
- Instructor: Ardi Shatri
- Instructor: Jusuf Thaçi
Introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web programming. Languages include C, Python, and SQL plus HTML, CSS, and JavaScript. Problem sets inspired by the arts, humanities, social sciences, and sciences. Course culminates in a final project. Designed for concentrators and non-concentrators alike, with or without prior programming experience. Two thirds of CS50 students have never taken CS before. Among the overarching goals of this course are to inspire students to explore unfamiliar waters, without fear of failure, create an intensive, shared experience, accessible to all students, and build community among students.
- Instructor: Arta Misini
- Instructor: Jusuf Thaçi
An important aspect of most every business is record keeping. In our information society, this has become an important aspect of business, and much of the world's computing power is dedicated to maintaining and using databases. Databases of all kinds pervade almost every business. All kinds of data, from emails and contact information to financial data and records of sales, are stored in some form of a database. In the theoretical part, this course will provide an introduction to relational databases modelling with an emphasis on database normalization. The practical part includes a hands-on approach to databases implementation and information processing using SQL.
The main objective of the course is to introduce students to concepts necessary for designing, using, and implementing database systems and applications.
- Instructor: Ermir Rogova
- Instructor: Jusuf Thaçi
This course is an introduction to notions of discrete structures in mathematics that are relevant to computer science.
- Instructor: Armend Shabani
- Instructor: Jusuf Thaçi
This course covers network management and security issues and solutions. The course starts with consideration of why network security is necessary, network vulnerabilities and the types of attacks networks need to defend against. Discussion of basic security concepts of security services, and the role played by encryption and hash algorithms along with issues and approaches for key management follow. Particular focus and emphasis are then covered regarding to network security capabilities and mechanisms (Access Control on wired and wireless networks), Network Management Security, Internet Security, Wireless Network Security, VPN, Firewalls, Deep Packet Inspection and network flow monitoring. A discussion of network application security (Email, Web, P2P, etc.) is presented followed by consideration of network utility (DNS, NTP, etc.) and management tools (Syslog, vulnerability scanning, penetration testing, etc.) and concluding with a review of necessary operational security processes and activities.
- Instructor: Blerton Abazi
- Instructor: Jusuf Thaçi
This course is designed to help students improve their software development skills using Object Oriented Programming language. During this course the concepts and the use of classes and objects (instances, inheritance, polymorphism, overloading, etc.) to solve computer related problems are demonstrated, while adhering to the best software programming practices.
Throughout the course different design patterns (creational, structural and behavioral) are demonstrated.
The use of streams and functional interfaces are explained.
Concurrent programming concepts will be introduced.
Throughout the course Java and bespoke libraries will be introduced
- Instructor: Fatos Maxhuni
- Instructor: Jusuf Thaçi