Studies the design and implementation of general-purpose operating systems on digital computers: memory management, virtual memory, storage hierarchy evaluation, multiprogramming, process creation, synchronization, deadlock, message communication, parallel programming constructs, I/O management, and file systems. Includes case studies of major operating systems.
Code
CS3032
Name
OPERATING SYSTEMS
Credits
4
Pre-requisites
CS2071
Co-requisites
None
Can be taken twice for credit?
No
Discipline
CS (Computer Science)
Level
Undergraduate
Type
Regular
CAMS ID
2690
Last update with CAMS
Students will be familiar with the architecture of digital computers
Students will learn about the main components of the modern operating systems for digital computers.
They will know the historical development of essential concepts underlying these OS as well as the crucial issues in OS design and implementation.
Students will understand and be able to explain the evolution and objectives of OS
Students will be able to identify the main components of most modern multi-user, multi-process OS Students will understand the relations among these components as well as be aware of the most probable causes of malfunctioning or suboptimal performance of the OS.
The notions of process, process synchronization, CPU scheduling, memory management, I/O systems will be explored in depth.
They will be familiar with some of the best practices for general purpose OS design and implementation
Students will have working knowledge as well as the basic administration task in of unixoid Operating Systems
Develops skill in devising combinatorial algorithms and in analyzing their behavior. Starts with a brief introduction on formal systems, automata and Turing machines and continues with a study of algorithms for sorting, searching, string processing, geometry, graphs, numeric, and algebraic applications.
Code
CS3046
Name
EFFICIENT ALGORITHMS
Credits
4
Pre-requisites
CS2071 AND MA2400
Co-requisites
None
Can be taken twice for credit?
No
Discipline
CS (Computer Science)
Level
Undergraduate
Type
Regular
CAMS ID
2692
Last update with CAMS
Have a basic understanding of theory of computation.
Have an understanding of the design of algorithms.
Have been exposed to a wealth of computer science algorithms.
Introduces theories of human-computer interaction and analyzes human factors related to the design, development, and use of Information Systems. Students will apply these theories with examples of design, implementation, and evaluation of multimedia user interfaces. The subject of this course is inherently interdisciplinary and the students attending the course normally represent several majors.
The web applications world has been going through many transformations in recent years. Originally conceived as a vehicle for delivering documents, it is now being used as a platform for sophisticated interactive applications, taking the place of traditional desktop ones. Web-based applications offer numerous advantages, such as instant access, automatic upgrades, and opportunities for collaboration on a massive scale. However, creating Web applications requires different approaches than traditional applications and involves the integration of numerous technologies on both the client and the server sides. In this course, we will cover technologies such as HTML, CSS and frameworks, JavaScript, VueJS and Node.
Code
CS3051
Name
WEB APPLICATIONS
Credits
4
Pre-requisites
CS1040GE110 OR CS1040
Co-requisites
None
Can be taken twice for credit?
No
Discipline
CS (Computer Science)
Level
Undergraduate
Type
Regular
CAMS ID
2693
Last update with CAMS
Students who successfully complete this course will know full stack development using javascript. They will be familiar with front end technologies such as HTML, CSS and VueJS, as well as backend technologies such as NodeJS and MongoDB.
Students will be able to create professional full stack web applications using all the technologies as well as deploy them on the cloud.
Students will be able to join and participate in different technological communities.
In this course we will follow the Agile approach to software engineering. The course will use a SaaS project-oriented approach in order to teach key methodologies such as Behavior and Test Driven Development, Pair Programming, Design Patterns, Tools for Automation, Continuous Integration and others. Among technologies which will be learned are: git, github, linux, ruby, rails and various gems. Attending CS3051 and CS1050 before taking this course is recommended.
Code
CS3053
Name
SOFTWARE ENGINEERING
Credits
4
Pre-requisites
CS1040GE110 OR CS1040
Co-requisites
None
Can be taken twice for credit?
No
Discipline
CS (Computer Science)
Level
Undergraduate
Type
Regular
CAMS ID
2695
Last update with CAMS
Students will master the Agile approach and will be able to use it in order to quickly engineer software as a service products.
Students will apply their knowledge in order to create software as a service application using Ruby. Additional technologies will include knowledge of git and github and various libraries and tools for software engineering.
Students will be effective collaborators using pair programming and in teams, using SCRUM. They will be able to manage and control time and tasks in an efficient way and how to resolve conflicts.
Introduces databases from the programmer's perspective. IT and CS students have common lectures but different projects. IT students learn the fundamentals of database design, SQL, and how to integrate a database into applications. CS students learn the fundamentals of database design, application integration, query motors, and space management.
Code
CS3068
Name
DATABASE APPLICATIONS
Credits
4
Pre-requisites
None
Co-requisites
None
Can be taken twice for credit?
No
Discipline
CS (Computer Science)
Level
Undergraduate
Type
GE110
CAMS ID
2697
Last update with CAMS
Students will be familiar with the theory and basics of relational databases, including design and optimization.
Students will be able to manage database responsibilities from the point of view of a software developer and will be familiar with SQL, stored procedures, indexes and triggers.
Students will know how to communicate with DB administrators in order to support enterprise needs.
Courses on different topics in the discipline, enriching the present course offerings. These classes are taught by permanent or visiting faculty. Topics vary each semester.
Offers a practical workshop in the art of acting and dramatic expression. Students learn to bring texts to life on stage through a variety of approaches to performance. This course develops valuable analytical skills through play analysis, as well as building confidence in presentation and group communications skills through acting techniques and the rehearsal and performance of play scenes. May be taken twice for credit.
For non-francophones. Aims at improving oral skills, expression, spontaneous production of French using drama and situations closer to reality than usual classroom settings. Thanks to acting techniques, students will learn to use their relationships with the world and others to stimulate their imagination and their own creativity.