Giter Club home page Giter Club logo

mu-cse-274's Introduction

Featured Projects

Formula One® Companion Mobile App
  • View project
  • Displays the latest Formula One® season's race schedule, race results, driver standings, constructor (team) standings, driver information, constructor information, and latest news.
  • Built using C#, XAML, Microsoft's Xamarin.Forms cross-platform UI framework, and Visual Studio.
  • Calls on the Ergast Developer API web service for Formula One® race, driver, and constructor data.
  • Makes use of a local SQLite database, REST API, JSON, ListViews, user preferences, tab navigation, stack navigation, carousel navigation, images, and sound.
  • Final project submission for Miami University's CSE 382: Mobile Application Development during the Fall 2022 semester.
Personal Website and Portfolio
  • Visit website
  • View project
  • Details my story and serves as a central hub for my online presence, providing links to my resume, LinkedIn, and GitHub.
  • Built using HTML, CSS, Sass, Visual Studio Code, and GitHub Pages for hosting.
  • Makes use of CSS Media Queries for page responsiveness and dynamic adaptation to varying window sizes.
  • Personal project pursued on December 2021.
Custom Multithreaded Linux Shell
  • View project
  • Custom Linux shell with both serial and parallel execution capabilities.
  • Built using C++.
  • Makes use of fork() and exec() system calls, I/O streams, and string processing.
  • Project submission for Miami University's CSE 381: Systems II during the Fall 2021 semester.
US Tax Return Analyzer Mobile App
  • View project
  • Analyzes a TSV file containing tax return records for all zip codes in the US and allows the user to either query zip codes with an average tax return equivalent to a given amount or zip codes in a given city-state.
  • Built using C#, XAML, Microsoft's Xamarin.Forms cross-platform UI framework, and Visual Studio.
  • Makes use of embedded resources, asynchronous processing, file IO, data binding, and ListViews.
  • Project submission for Miami University's CSE 382: Mobile Application Development during the Fall 2022 semester.
MapQuest Navigation Web App
  • View project
  • Displays navigation directions given two locations from the user. Navigation history is saved and can be retrieved by date.
  • Built using HTML, Javascript, PHP, CSS, the MapQuest API for navigation data, and AWS EC2 for temporary hosting and storage.
  • Makes use of phpLiteAdmin (web-based SQLite), JQuery, AJAX, JSON, and Bootstrap.
  • Final project submission for Miami University's CSE 383: Web Application Programming during the Fall 2021 semester.
  • Project requirements emphasize a multi-page/multi-tab web client with a focus on responsive design.
MySQL RDBMS Interface Console App
  • View project
  • Interactive console app to interface with a MySQL RDBMS.
  • Built using C++ and SQL.
  • Makes use of I/O streams and string processing.
  • Project submission for Miami University's CSE 278: Systems I during the Fall 2020 semester.
Checkers Game Desktop App
  • View project
  • Functional desktop checkers game.
  • Built using Java and the Swing GUI library.
  • Makes use of JComponents, JPanels, JFrames, ActionListeners, and MouseListeners.
  • Final project submission for Miami University's CSE 271: Object-Oriented Programming during the Spring 2020 semester.
  • Implemented a functioning GUI despite it being optional. Assigned requirements document is provided.
Investment Calculator Mobile App
  • View project
  • Performs arithmetic and computes the final investment balance given a starting balance, number of years, rate of return, recurring investment, and the frequency of recurring investment.
  • Built using C#, XAML, Microsoft's Xamarin.Forms cross-platform UI framework, and Visual Studio.
  • Makes use of event handlers, grid layout, ResourceDictionary, and Pickers.
  • Project submission for Miami University's CSE 382: Mobile Application Development during the Fall 2022 semester.

Education

Miami University

Bachelor of Science (B.S.) in Computer Science

Miami University is a public research university in Oxford, Ohio. The university was founded in 1809, making it the second-oldest university in Ohio and the 10th oldest public university in the United States.

Miami is a large, primarily residential teaching university with a focus on undergraduate studies. In its 2022 national rankings, U.S. News & World Report ranked Miami University fifth among public schools for “Best Undergraduate Teaching.”

Further, Miami was ranked second nationally among public universities in "Undergraduate Engineering Program - No Doctorate," excluding military institutions.

Fall Semester 2019-2020

CEC 101: Computing, Engineering, and Society
  • Got introduced to the professional and societal context of engineering including contemporary issues and breakthrough technologies.
  • Explored issues related to professional ethics in engineering.
  • Practiced the essential skills necessary for success in teamwork and communication.
CSE 174: Fundamentals of Programming and Problem Solving
  • View course projects
  • Learned fundamental programming concepts such as language syntax and semantics, variable scope, data representation, formatting conventions, and Integrated Development Environments (IDEs).
  • Learned the fundamentals of Java and the process from source code to executable code, including the roles of the Java Compiler and the Java Virtual Machine (JVM).
  • Learned to implement clean and robust programs that solve a stated problem, including using appropriate Java primitive data types, operators, methods, conditionals, loops, input, output, collections, and third-party classes.
  • Learned to identify and eliminate errors in programs, including the ability to analyze source code, differentiate between compiler and runtime errors, interpret complier errors, use a debugger, and write test code.
  • Learned to solve programming problems using a procedural approach through functional decomposition.
  • Learned to describe, trace, and implement basic algorithms such as linear search, non-recursive binary search, non-recursive sorting algorithms such as bubble sort, selection sort, and insertion sort, and common array algorithms such as counting, adding, and computing the min/max.
  • Learned to compare algorithms with respect to their efficiency and readability.
  • Learned to use Java’s API documentation.

Spring Semester 2019-2020

CSE 102: Intro to Computer Science and Software Engineering
  • Learned to use computer science and software engineering tools such as Git, Secure Socket Shell (SSH), and the command-line interface (CLI).
  • Learned fundamental computer science concepts such as binary, hexadecimal, logic gates, computer architecture, networks, operating systems, programming, and algorithms.
  • Learned web-programming technologies and fundamentals such as HTML, CSS, JavaScript, DOM, and jQuery.
  • Explored ethical issues within computer science in the fields of privacy, security, accessibility, and copyright.
  • Learned about the various computing disciplines such as software engineering, computer engineering, electrical engineering, informational technology, management information systems, and interactive media studies and how they interrelate.
  • Learned to communicate through the use of web sites and oral presentations.
CSE 271: Object-Oriented Programming
  • View course projects
  • Learned to design and implement computer programs using Java and object-oriented programming techniques such as objects, classes, methods, abstraction, encapsulation, inheritance, and polymorphism.
  • Learned to write UML class diagrams and break a programming problem down into an appropriate set of classes and methods based on a problem statement.
  • Learned to write robust programs with input validation and an emphasis on exhaustive testing through concepts learned in CSE 174.
  • Learned to write code that throws and catches appropriate exception classes, including both checked and unchecked exceptions.
  • Learned to use JUnit and write class tests.
  • Learned to use Javadoc to document a class.
  • Learned to use recursion as a problem-solving technique and implement classical recursive algorithms such as calculating a factorial.
  • Learned to describe, implement, and compare non-recursive and recursive sorting algorithms such as bubble sort, insertion sort, selection sort, merge sort, and quick sort.
  • Learned to design and develop event-driven applications with a graphical user interface using Java Swing

Fall Semester 2020-2021

CSE 262: Technology, Ethics, and Global Society
  • Learned to formulate and defend a position on an ethical question related to technology, including applying ethical theories such as Kantianism, Utilitarianism, and Social Contract Theory.
  • Explored the ethical challenges currently posed by technology, including digital rights management, community standards, databases of personal data, fair use, freedom of expression, monitoring, technological determinism, unsafe software, and globalization.
  • Learned to engage with peers and come to a consensus on ethical issues.
  • Took positions on the social responsibilities of software developers and used oral and written methods to communicate my position.
CSE 274: Data Abstractions and Structures
  • View course projects
  • Learned to use the appropriate data structures, abstract data types, and algorithmic methods to solve a given problem.
  • Learned the features and semantics of abstract data types such as matrices, lists, stacks, queues, sets, maps, trees, graphs, and priority queues.
  • Learned the features and semantics of major data structures such as array-based lists, linked lists, hash tables, binary search trees, heaps, and graphs.
  • Learned to implement common tree and graph algorithms such as tree traversals, depth-first search, breadth-first search, Dijkstra’s algorithms, and topological sort.
  • Learned to combine multiple data structures to create efficient solutions to problems.
  • Learned to build classes that are compatible with library collection classes such as a class that can be used as a key in a hash table.
  • Learned to implement abstract data types using object-oriented programming principles such as polymorphism, inheritance, and generics.
  • Learned to determine time and space requirements of data structure implementations and algorithms as well as asymptotic notations used in algorithm analysis.
CSE 278: Systems I
  • View course projects
  • Learned to develop programs using a high level, systems programming language (C++) in a Linux environment.
  • Learned about the properties of various computer architectures including their components and functions.
  • Learned to analyze the salient aspects of machine instructions and memory addressing modes.
  • Learned to convert a high-level language program to assembly and machine language using suitable tools.
  • Learned to convert unsigned integers between different representations such as decimal, binary, and hexademical.
  • Learned to use compiler optimizations to improve performance.
  • Learned to use basic networking and socket programming concepts to develop a textual client-server program.
  • Learned to use SQL statements to manipulate a simple database, including the use of APIs to access a database from a program.
  • Learned to use appropriate system tools, including those from a command line interface.

Spring Semester 2020-2021

CSE 201: Intro to Software Engineering
  • Learned to apply an object-oriented analysis and design approach to case studies.
  • Learned to describe the software development lifecycle (SDLC) and its associated processes, the different phases, and the relationships between the phases.
  • Learned to describe and compare alternative software processes such as waterfall, incremental, spiral, prototyping, empirical, and agile methods.
  • Learned the different roles that make up a software team and the responsibilities of each.
  • Learned to develop clear, concise, and formal lifecycle artifacts, including requirements, design, implementation, and test documentation for software systems based on user and stakeholder needs.
  • Learned to create UML use case, class, and sequence diagrams.
  • Learned the importance of technologies such as version control in the software development lifecycle.
  • Learned fundamental design principles such as coupling, cohesion, and portability.
  • Learned the concept of design patterns and explored examples.
  • Learned to apply the software development lifecycle as part of a team.
  • Learned to effectively present design artifacts.
  • Learned various testing and quality assurance strategies, including validation and verification, and different levels of testing such as unit, integration, systems, acceptance, regression, black box, and white box testing.
CSE 374: Algorithms I
  • View course projects
  • Learned to characterize the runtime and storage requirements of a proposed algorithm or data structure.
  • Learned to determine the time and space complexity of algorithms.
  • Learned the formal definitions of Ο, Θ, and Ω and how they describe the amount of work done by an algorithm.
  • Learned to use big O notation to define asymptotic upper bounds on time and space complexity of algorithms.
  • Learned to describe and implement advanced algorithms such as dynamic-programming, greedy, and divide-and-conquer algorithms.

Fall Semester 2021-2022

CSE 381: Systems II
  • View course projects
  • Learned to carry out the key steps in loading and starting an operating system.
  • Learned to critique the design and tradeoffs in file systems and computer memory hierarchy levels.
  • Learned to use multiprocessing and inter-process communication (IPC) concepts and tools such as pipes to monitor and control processes.
  • Learned to use concurrency and multithreaded programming concepts to create processes with multiple cooperating threads in ways that avoid deadlock.
  • Learned about virtualization and cloud services.
  • Learned about security features provided by an operating system to avoid common security problems such as buffer overflow, stack smashing, trojans, and root kit problems.
CSE 383: Web Application Programming
  • View course projects
  • Learned technologies needed to implement web applications such as HTML, CSS, JavaScript, and AJAX.
  • Learned the nature of web applications, frameworks, and various architectures, including the role of the client and backend servers, and how they interrelate.
  • Learned to create interactive web applications using forms and other user input methods to gather and present data.
  • Learned to develop responsive web applications.
  • Learned concepts related to using databases.
  • Learned concepts of MVC and templating in the creation of web applications.
  • Learned to implement error handling conditions in relation to network programming.

Spring Semester 2021-2022

CSE 385: Database Systems
  • Learned the file structures that are used by Relational Database Management Systems (RDMS).
  • Learned the basic concepts of database systems such as entity sets and relationship sets.
  • Learned to utilize SQL to query a database.
  • Learned the syntax and semantics of SQL statements.
  • Learned to use views in relational systems.
  • Learned to utilize a commercial relational database management system (SQL Server) that supports SQL.
  • Learned to design a relational database using entity-relationship modeling and diagrams.
  • Learned the concept of normalization in database design.
CSE 465: Comparative Programming Languages
  • Learned to identify, describe, and compare programming language paradigms such as procedural, object-oriented, functional, declarative/logic, and scripting languages.
  • Learned to evaluate tradeoffs between different paradigms considering space efficiency, time efficiency, safety, and power of expression.
  • Programmed software using a language in each of the programming paradigms listed above.
  • Learned the tradeoffs of compiled and interpreted execution models.
  • Learned the phases of program translation from source code to executable code.
  • Learned the properties of a variable such as its associated address, value, score, persistence, and size.
  • Learned the tradeoffs of different lifetime management approaches such as reference counting and garbage collection.
  • Learned the difference between call-by-value, call-by-value/result, call-by-reference, and call-by-name parameter passing.
  • Learned to specify selected features of programming language syntax using standard grammatical notations.
  • Learned to specify selected features of programming language semantics using operational semantics, denotational semantics, and axiomatic semantics.

Fall Semester 2022-2023

CSE 167: Intro to Cybersecurity
  • Learned the definition, scope, and objective of cybersecurity.
  • Explored current cybersecurity trends, including data breaches, targeted ransomware, and insider threats.
  • Learned fundamental cybersecurity concepts such as the CIA triad (confidentiality, integrity, and availability), attack vectors, defense points, and controls.
  • Learned fundamental cryptography concepts and tools such as the caesar and vignette ciphers, symmetric and asymmetric encryption, hashing, OpenSSL, and GPG.
CSE 382: Mobile Application Development
  • View course projects
  • Learned to use Xamarin to build cross-platform mobile applications.
  • Learned to use Visual Studio to develop, debug, and test cross-platform mobile applications.
  • Learned the tradeoffs of cross-platform development and native development.
  • Learned to use graphical elements to acquire user input and display data.
  • Learned to develop mobile applications that support different form factors such as phone or tablet and orientations such as landscape or portrait.
  • Learned to use common navigation patterns such as tabbed, carousel, and stack navigation.
  • Learned to use asynchronous processing to provide a responsive interface.
  • Learned the basic security aspects of mobile applications.
  • Learned to implement mobile applications that permanently store data, including through a local database, the app’s file system, and the app’s preferences.
  • Learned to implement mobile applications that use internet resources, including using web services to retrieve information from an internet resource through a standard data interchange format (JSON).
  • Learned to implement mobile applications that access the device’s hardware such as the GPS, accelerometer, and camera.
CSE 470G: Cloud Computing and DevOps
  • Learned the definition, scope, and objective of DevOps.
  • Learned fundamental DevOps concepts such as virtualization, containerization, and continuous integration (CI).
  • Learned to use DevOps automation tools such as Bash scripts, Docker, GitLab CI/CD, Ansible, Nagios, Puppet, and Terraform.
  • Learned to use cloud computing platforms such as AWS and OpenStack.

Certifications

Harvard’s CS50: Introduction to Computer Science
  • View certificate
  • Due to the course's quality and reviews, multiple programmers recommended I enroll in this online introductory computer science course before coming to college. I started the course but didn't have enough time to finish before coming to Miami. For completion's sake, I finished the course during the winter break of January 2022. The course did a fantastic job explaining the fundamentals of problem solving, programming, and computing in general. The course touched on eleven topics that were covered a week each: problem solving, C, arrays, algorithms, memory, data structures, Python, SQL, web application programming, Flask, and ethics. Every week's lecture, except the last, had a corresponding problem set, and the course culminated with a final project.
AT&T's Business Summer Learning Academy
  • View certificate
  • I had the opportunity to participate in AT&T's 2021 Summer Learning Academy, where I experienced eighty total hours of intensive online programming around personal and career development, business, and technology topics. Established personalities such as Troy Aikman, Kelly Decker, and Matt Luhn were present. I received my certification on August 2021.
Miami University’s Farmer School of Business miniMBA
  • View certificate
  • I had the opportunity to enroll in Miami's Farmer School of Business miniMBA program when it first launched in 2021. As a computer science major, I gained insight on a wide range of business topics from supply chain and business strategy to entrepreneurship and creative thinking. I recieved my miniMBA on January 2021.
LinkedIn Learning Java 11+ Essential Training
  • View certificate
  • After receiving a free one-month trial on LinkedIn Learning my freshman year at Miami, I tried to maximize the opportunity. This course caught my eye as I had just finished CSE 271: Object-Oriented Programming and thought it would be a good Java refresher. I received my certification on June 2020.

Let's connect

Personal website: karimsammouri.com

LinkedIn: linkedin.com/in/karimsammouri

Email: [email protected]

mu-cse-274's People

Contributors

karimsammouri avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.