Skip to main content

Computer Science - Sophomore

COURSE #: HUSS 2051

Course Description

The course starts by interrogating the very idea of philosophy, exploring various approaches to it and distinguishing it from other disciplines such as science and theology. It discusses the broad global chronology of philosophical thought. The students use Logic to investigate the mode of systematic thinking, and examine Metaphysics and epistemology, two fundamental topics in philosophy. They also explore question of ethics, including meta-ethics, normative ethics, and applied ethics during the course. The course helps students to examine centrality of science in modern cultures and the issues it raises as well as the perils and potentials of new technological avenues such as artificial intelligence and the changing mode of human-nature interactions. The course ends by focusing on the question of “What does it mean to be an educated person?”  which will allow students to return to the meaning of reflection and an examined life.

Course Learning Outcomes

At the end of the course, students will be able to:

  • Formulate sound arguments to work out logical fallacies in written and oral texts and discussions;  
  • Review various sources of knowledge to engage with the problem of skepticism in their professional and personal contexts;
  • Evaluate the relationship of individual with society and state, using concepts of political philosophy in terms of social justice and participation in governance;
  • Examine ethical and human implications of increasingly criticized world by exploring its perils and possibilities;

Course Assessment and Grading

Item

Weight

Reflection paper 1

Reflection paper 2

Reflection paper 3

 

30%

Participation

20%

Oral presentation

20%

Research paper

30%

COURSE #: DMNS 2073

Course description

This course is designed to give students a solid basis for furthering their studies related to the biological sciences by striking a balance between mastery of core concepts and exposure to the breadth of the discipline. Students will examine the interrelationships between organisms and their biotic and abiotic environments, and will be introduced to the genetic, evolutionary, and ecological processes governing the patterns we observe in nature. The course covers basic principles of how genetic variation is generated, stored, and transmitted; the origin and evolution of species; and ecological interactions within populations, communities, and ecosystems. Emphasis will be on acquiring lasting knowledge and appreciation for living organisms and their connections to the world in which we live, and an understanding of the subdisciplines of biology as they provide insights and solutions to many of the environmental issues we are confronted with in our daily lives. Students will be directed to understand and appreciate how biologists, as scientists, understand the world, and to begin thinking like biologists themselves. By the end of the course, students will be expected to apply biological knowledge to new situations, and to integrate concepts from multiple sub-disciplines to solve problems and make predictions about biological systems.

Course Learning outcomes

Upon the completion of the course, the students will be able to:

Genetics

  • Describe the overall structure and composition of eukaryotic genomes from the scale of DNA base pairs to genes to chromosomes
  • Explain the ways in which genetic variation arises and the cellular mechanisms responsible for the variation.
  • Explain how genetic data from individuals, populations, and communities can be used to explain how traits of organisms are inherited and address scientific questions in the context of genetics, evolution, or ecology.

Evolution

  • Use information about genotypic frequencies in a population to infer whether the population is currently in equilibrium or potentially undergoing a change in allele frequency.
  • Explain in what way each of the four major mechanisms of evolution (mutation, genetic drift, selection, gene flow) may contribute to adaptation, divergence, speciation and/or extinction.
  • Explain how population or phylogenetic data can be used with an evolutionary approach to explain patterns of organismal traits in the context of their genetics and ecology.

Ecology

  • Explain how abiotic, biotic (including human), stochastic and historical factors influence species distribution patterns and population size; generate hypotheses and make predictions about how species distribution and/or population size might change in response to changes in such factors.
  • Evaluate the impact of abiotic and biotic factors on community development and structure and predict how changes in abiotic or biotic factors or disturbances can affect patterns of ecological succession and community composition over various time scales.
  • Explain how human affects or other disruptions to nutrient cycling can alter ecosystems and cause species extinctions on a global scale.
  • Evaluate conservation management strategies for populations or communities by integrating information from ecology, genetics, and evolution.

Course Assessment and Grading

Item

Weight

Genetics Exam

15%

Evolution Exam

15%

Ecology Exam

15%

Research Paper

20%

Research Presentation

10%

Participation

10%

Written Assignments

15%

COURSE #: COMP 2051

Course Description

The objective of this course is to provide detailed overview of Object-Oriented Programming paradigm. This is the advanced programming course, which is intended for students with previous programming background, with an emphasis on object-oriented programming using Java, one of the world's most popular programming languages. We begin with the very fast introduction to Java Basics and continue with implementation of abstract data types using classes, focusing on encapsulation of procedures and data, inheritance hierarchies, polymorphism across different object types and use some of its most important APIs and Design Patterns. The course will introduce students to enterprise software development using Java as programming language and UML as software modeling tool. Building upon basic programming skills, this course focuses on the design and analysis of larger, more complex programs using the industry-leading language, Java.

Course Learning Outcomes

By the completion of the course, the students should be able to:

  • Describe the paradigm of the object-oriented approach.
  • Create class hierarchies using the object-oriented design process.
  • Understand object-oriented programming principles and Java architecture to produce object-oriented software using Java, Java API’s and Object-Oriented Design Patterns.
  • Understand abstraction, inheritance and polymorphism as implemented in Java
  • Use Packages and Interfaces in Java to integrate different subsystems using modular approach.
  • Understand how to use and customize the exception handling mechanism of Java for quick debugging.
  • Design GUI applications using MVC design pattern as implemented in Java FX library.
  • Test Java programs using JUnit testing framework within Unit and Integration testing phases.
  • Apply Design Patterns to achieve modularity.
  • Design Objects using UML Class diagrams and interpret software design via various UML diagrams.

Course Assessments and Grading

Item

Weight

Problem Sets (12 PS’s)

30%

Project

20%

Two Quizzes

10%

Mid-Term Exam

15%

Final Exam

20%

Reading Overview Quizzes

5%

COURSE #: COMP 2081

Course Description

The Web is, on the one hand, a network of interlinked computers, protocols, and software and, on the other hand, a socio-cultural phenomenon that influences law, the media, business, science, etc. To shape and work with the current and future forms of the web, students need to understand its underlying design principles and concepts, relevant issues, and techniques. This course provides an in-depth overview of internet and web architecture. Students will learn to create more dynamic and interactive websites using XHTML, Cascading Style Sheet, JavaScript and server-side scripting using PHP and MySQL. This will allow students to create dynamic websites that store, access, and use data stored in the database and it allows them to perform  SQL queries to produce the desired results.

Course Learning Outcomes

  • Understand the principles of creating an effective web page including an in-depth consideration of information architecture.
  • Identify techniques of responsive web design.
  • Apply CSS for uniform formatting and styling of webpages.
  • Apply Java Scripts and event handlers that respond to various events.
  • Apply PHP scripts to develop dynamic and interactive websites.
  • Use MySQL to perform various database operations using PHP scripts.

Course Assessments and Grading

Item

Weight (%)

Quizzes

20

Homework Assignments

15

Group Project

20

Mid-Term Exam

20

Final Exam

25

COURSE #: DMNS 2011

Course Description

This course deals with an introduction to abstraction logical notation and reasoning. We discuss logic including the historical syllogistic logic, propositional logic, predicate logic, predicates and quantifiers, logical reasoning, proof of theorems, and show its application to programming and computer science. The course introduces the area of software reliability and the field of formal methods that are used to develop safe and secure software in the safety-critical and security-critical fields. We show how discrete mathematics including set theory, relations and functions as well as logic is used in the formal specification of software. Further, the course deals with number theory and cryptography, starting with modular arithmetic, prime factorization, solving congruences, finding gcd and an introduction to cryptography. Finally, exposure to general problem-solving techniques and the complexity of algorithms will be provided.

Course Learning Outcomes

By the end of this course, students will be able to:

  • Construct statements and problems using propositional and predicate logic.
  • Evaluate the correctness and procedures of a mathematical proof.
  • Create a mathematical proof or disproof of a given statement using methods such as truth tables, rules of inference, natural deduction, and semantic tableaux.
  • Apply modular arithmetic and congruence relations to cryptography.
  • Apply formal methods to simple applications in the safety-critical field.

Course Assessments and Grading

Item

Weight

Class Participation, individual work and attendance

5%

Quizzes

20%

Project Presentations of Discrete Mathematics and its application (Group of two)

20%

Mid-term Exam

25%

Final Exam

30%