Best elective courses for the major:
For those deeply passionate about SE and less concerned with diversifying their studies (5th semester):
vee always got you𫡠Even if you settled on a major, Due to courses, intuition, family, friends, likes & dislikes, I would advise you to read about all three majors, just in case maybe something could click
This major qualifies you to become a software engineer, encompassing various branches such as web development, mobile development, cloud architecture, some DevOps, software testing, and more. Primarily, you'll be tasked with implementing features or enhancing system performance.
If you have a passion for coding, debugging, Learning new things, and innovating new features. Over time, you might find it more methodical than creative, but it remains enjoyable through continuous exploration.
It depends on your aspirations. Becoming a proficient software engineer demands significant effort, making it impractical as a minor due to time constraints, especially with project commitments. If you are interested in having more practical projects and experience in different stacks, this is for you.
Subject | Description |
---|---|
SE project | Build a website using a tech stack like MERN. Utilize new architecture. A cross-major subject with no final or mid-term, only the project. |
Software design and architecture | Conceptual subject covering theory, diagrams, and design patterns with a focus on UMLs. |
Software construction & testing | Conceptual subject with practical design patterns and both manual and automated testing. |
Requirement Engineering | Introduction to UMLs and software concepts. Theoretical concepts on stakeholder management. Medium-sized project using figma designs and writing SRS document. |
Subject | Description |
---|---|
SE project II | Similar to SE project 1 but with different tools/stacks. Build a web app using nextjs, nestjs with microservices architecture. Utilize Apache Kafka for communication. Dockerization is a bonus. |
Cloud Computing | Introduction to cloud computing basics, preparing for the lowest level of cloud practitioner amazon certification. Labs focus on practical application on AWS. |
Mobile Development | Focused on Flutter with theoretical lectures about widgets, spacing, etc. Labs are practical with mini app development. Course content important for learning Flutter but can be supplemented online. |
For those deeply passionate about SE and less concerned with diversifying their studies (5th semester):
lightbulb Personal insight: For some, pursuing ML outside of university might be more efficient and manageable, though individual preferences vary.
lightbulb community to join: ACM community is very important for this major
This major qualifies you to become a data scientist, encompassing various branches such as data visualization, data engineering, data analysis, database optimization, big data, data pipelining, image processing, machine learning, advanced machine learning, and more. Primarily, you'll be tasked to deal with data for different purposes such as answering a research question, making a efficient machine learning model, optimizing database queries for faster retrival, dealing with different databases, and more.
If you have a passion for researching (academic mainly), manipulating data, improving ML models, pointing out insights, and innovating new features. As it remains practical, tasks could get repetitive over time, but it remains a field of interest and it puts you on the road of playing around with data in various ways. It may shift your career a bit to be business oriented.
Being a data scientist is a more specific major in computer science, so unlike software engineering and IT security, where there are a lot of different tools to use and discover, data science is more limited with tools and focuses on data and general concepts.
Subject | Description |
---|---|
Data Engineering&Visualization | In each of its projects, you will get tasked with applying various concepts of data cleaning, extraction, visualization, and merging to answer a research question you made. The course won't teach you that much! If you are interested in Data Engineering and want to learn more, you will have to learn more on your own (at home). |
Database programming | Using PGAdmin, Learning how to make indices (sort data to different columns) to optimize database querying for efficient data retrieval. And the final lecture a view on spatial databases. |
Machine Learning | Some of the most general models and mini projects applying them using python. Most of your studying will be math but once you understand the steps it is easy so donât let the complex appearance of the slides discourage you. |
Subject | Description |
---|---|
Advanced Machine Learning | It picks up after the previous ML course with no intro. This course introduces Ensemble learning models then delves into neural networks. much like the first ML course most of the practice assignments will include math. |
Image Processing | You work with images and videos. Mainly images. You learn about and use filters on images. These
filters can make an
image sharper, blurry, etc. The second part of the course is about collecting info from images or
videos. As in object
recognition. Detecting moving objects in videos and so on.
The course itself is very interesting! A student Personal opnion => But If Dr. Amal Abdelkarim happens to be the instructor for the course, I would suggest considering alternatives. Based on my personal experience, her teaching style may not align with everyone's preferences. When weighing between majors, like Data Science and others, it's beneficial to prioritize courses led by instructors who are known for their effectiveness. |
Big Data | You will learn very abstractly and vaguely about Big Data methods and tools, like Cassandra, Spark,
MongoDB, etc.
Big Data itself (the field, not the course) is a very important and interesting field. The course itself tho doesn't delve too much into these tools. You learn about each tool in ONE or max TWO Labs, and then you move on. If you are interested in Big Data, you should definitely try to learn more on your own (at home) because the course wont teach you much. No midterm, only a final that mostly tests memorized code. |
lightbulb Kaggle as it is the Leetcode of data scientists (Its competitions rewards Green Papers đ [not easy however but it is good for practice])
Subject | Description |
---|---|
Cryptography: | The hardest course in all Uni âquoting several TAs and the past two dof3asâ, ours was especially hard (different Dr). It continues on from what you took in semester 4 intro course but ++ more details . |
Software Security: | it was one of the great courses overall, it displayed actual web attacks and how to mitigate them (also a very nice elective for software engineers) |
Digital forensics | most fun course in UNI tbh, Dr Hanan taught it and killed it el sara7a, bas if she is not the one who is teaching it, typically you will have to learn about .pcap files and Wireshark kda kda. You will learn about how the forensics process works and what to do in it, then you will learn about the types of digital evidence and how to infer from it what happened. Other than those, it is up for that Dr. |
Subject | Description |
---|---|
Ethical Hacking | best course in UNI, it is 100% practical, 2 labs per week, no lectures , final has 30% , 70% on labs , best 7 labs out of 10 |
Business Continuity | you are not gonna like it but here for the best way to pass it, it is a is a detailed excel sheet of all the course material. |
Network security: | not built on networks like you would think but it has important knowledge and it gives you the chance to study for the CCNA. |
first of all, no one can decide for you, no one. - but if you have a huge problem in programming this is the least programming heavy one (the least, doesnât mean none, they all have a lot, it is just in less frequent amount, also no problem canât be fixed and ***you should fix it***). - you have a knack for fiddling with the src code of any software you touch. - you like learning , you will do a lot of that! Constantly and consistently and you have to love it. - It is creativity heavy. meaning that thinking outside of the box is the norm (yup) and that you will always have to push to your limits to solve a certain problem whether in real life during your job or in the learning phase (solving CTFs or vulnerable machines). Doesnât mean if you think you are not creative then it is not for you. creativity either stems naturally or from experience or both akeed. pick your poison. - If you liked the ECPC competitions, we have that too but they are called CTF competitions. Basically you hack for fun and to win the competitions which also have prizes.
- Job opportunities in Egypt overall are not the best but in security. It is the lowest but they are all great companies. Think about it like: either you wonât get a job or you will get an amazing one, no in-between (at least not yet). - It is extremely stressful. To be great at it, you have to keep studying and keep working, you canât just stop and use what you already learnt, you just canât, or you will be average. For example a React Dev would just keep learning all there is to know industry wise about react (so he is learning vertically), when he does need to expand his knowledge about other domains he just goes for another javascript framework masalan msh learning about graphql and SEO masalan (btw he is doing that while working a 9 to 5 job and has a life). in security no you have to learn horizontally more and when you need to learn vertically. - you hate networks and OS - you donât like just nitpicking or fiddling or just trying every single option there is to reach some âgoalâ . some problems require one path only to solve it, so you would have to bruteforce all other options.
lightbulb To get started and have a quick idea and get a great overview on everything. This is the best resource for beginners there is. TryHackMe𫣠& portswigger
psstđââď¸ hey there buddy! if you found it useful give it a star! â¨đ StarOurRepo