Electrical Engineering, Computer Engineering, Computer Science

tl;dr Computer Engineering \approx Electrical Engineering with Computer Science

Recently, I accepted an offer to join the department of Electrical and Computer Engineering (ECE) at the University of Illinois, Urbana-Champaign. While I am already an affiliate of the ECE department, I do not plan on teaching a course until Fall 2025. Tentatively, I am planning on teaching a topics course related to privacy/cryptography. (Will share more details on the planned topics course in a later post.)

I have gotten a few questions (especially from NaijaCoder students) concerning the differences between electrical engineering, computer science, and computer engineering. Let me try to explain what I think the key differences are.

Electrical Engineering (EE)

I see electrical engineering as the parent discipline of electronic and computing devices just as the parent discipline of EE is (probably) physics. EE includes the study of analog and digital devices used for various forms of computation and communication.

Computer Engineering (CE) and Computer Science (CS)

Computer Engineering, to me, is about computing aspects of electrical engineering. In fact, at Illinois, the major was called Electrical Engineering and Computer Science. This page states that in 1969, an electrical engineering/computer science curriculum was unveiled and that that year “An electrical engineering/computer science curriculum [was] established within the department. It will be replaced in 1973 by the computer engineering curriculum.”

So, Computer Engineering (CE) and Computer Science (CS) are closely related fields.

1. Focus of Study

  • Computer Engineering (CE):
    • Combines electrical engineering with computer science.
    • Focuses on hardware and software: how computers and devices are physically constructed and how software interacts with hardware.
    • Includes designing and analyzing microprocessors, circuit boards, and networks, as well as embedded systems like IoT (Internet of Things).
  • Computer Science (CS):
    • Primarily focused on software.
    • Emphasizes programming languages, software development, artificial intelligence, machine learning.

2. Core Curriculum

  • Computer Engineering:
    • Electrical circuits, digital design, microcontrollers, VLSI design (Very Large Scale Integration), robotics, signal processing, and computer architecture.
    • Emphasis on low-level programming that interacts with hardware.
  • Computer Science:
    • Software engineering, computer graphics, artificial intelligence, and machine learning.
    • Emphasis on high-level programming and the development of complex software systems.

3. Skills Developed

  • Computer Engineering:
    • Understanding of both hardware and software systems.
    • Skills in circuit design, chip fabrication, computer architecture, and low-level programming (like C, assembly).
  • Computer Science:
    • Problem-solving and analytical skills for software development.
    • Proficiency in programming languages (e.g., Python, Java, C++), software development life cycle, and working with large-scale systems.

Both fields share knowledge of programming and computer systems, and professionals in both disciplines work in industries like tech, telecommunications, healthcare, and aerospace. However, computer engineers have deeper knowledge of hardware, while computer scientists are more specialized in software development.

Expanding NaijaCoder to More Locations

In previous iterations, we hosted the NaijaCoder program in the capital of Nigeria, the Federal Capital Territory (F.C.T.), Abuja. Abuja is, approximately, at the center of the country and so hosting the program there—should in theory—minimize the total travel time, to the program site, for all applicants. This year, we had one student from Borno, Maiduguri. Maiduguri is, arguably, the state that is the farthest to the northeast in the country. It is nice to see students make the journey to acquire some technical computer skills. (Students who are hungry for knowledge motivate me the most.) So Abuja was chosen so that all applicants could attend the program.

However, many of the applicants in 2023 still could not travel to Abuja. As a result, the board of the organization discussed expanding to more states—out of the 36 states and the F.C.T.—in Nigeria. With the help of faculty at the University of Lagos, we were able to expand the 2024 program to Lagos state. And with the help of some key stakeholders in the northern parts of Nigeria, we might be able to expand to Kano state.

Abuja, Lagos, Kano

For those not familiar, I would like to discuss why Abuja, Lagos, Kano are different and where their strengths lie in terms of serving sub-populations. (For the purposes of this post, I will treat Abuja as a state—like Lagos and Kano—even though it is, technically, not a state; it is the capital city of Nigeria and is located within the Federal Capital Territory (FCT). The FCT is a special area that is distinct from the 36 states of Nigeria and is administered directly by the federal government. Abuja was chosen as the capital of Nigeria in 1991, replacing Lagos, due to its central location and to promote more balanced development across the country.)

Abuja, Lagos, and Kano are, at the moment, the most prominent cities in Nigeria, in terms of distinctions in their geographical regions. Abuja, Lagos, and Kano are in the central, southern, and northern parts of Nigeria, respectively. Each state plays a unique role in the country, contributing to Nigeria’s diverse and dynamic landscape. (Nigeria has over 200 ethnic groups with the Hausas, Igbos, and Yorubas representing the major groups.)

Abuja, the capital city, is centrally located in Nigeria and serves as the nation’s political hub. The president and the rest of the cabinet are situated in the capital. Unlike Lagos and Kano, Abuja was purpose-built in the 1980s to replace Lagos as the capital. Abuja is known for its relatively calm and orderly environment compared to the bustling nature of Lagos. (I was born and raised in Abuja. Maybe this explains some parts of my demeanor?) However, Abuja’s economy is heavily reliant on government activities, with less industrial and commercial vibrancy compared to Lagos.

Lagos, on the other hand, is Nigeria’s largest city and the economic powerhouse of the country. Located in the southwestern part of Nigeria along the Atlantic coast, Lagos is a major financial center and one of the fastest-growing cities in the world. It is the heart of Nigeria’s commerce, with a bustling port, thriving entertainment industry, and a diverse population drawn from all over the country and beyond. Lagos is known for its vibrant nightlife, rich cultural scene, and relentless hustle. However, it is also infamous for its traffic congestion and high cost of living. The city’s dynamic nature makes it a melting pot of ideas, entrepreneurship, and innovation, contributing significantly to Nigeria’s GDP.

Kano, situated in the northern part of Nigeria, is one of the oldest cities in West Africa and a key commercial and cultural center in the region. Historically, Kano was a major trade hub in the trans-Saharan trade routes, and this legacy continues today with its vibrant markets, particularly the Kurmi Market, one of the oldest in Africa. (According to historical records, the market was founded by Muhammad Rumfa, a King of Kano, in the 15th century.) Unlike Abuja and Lagos, Kano has a predominantly Muslim population, and its culture is deeply rooted in Hausa traditions. The city is also known for its agricultural economy, with industries related to textiles, leather, and food processing playing a significant role. Kano’s infrastructure is less developed compared to Lagos and Abuja, but its rich history and cultural heritage make it a vital part of Nigeria’s identity.

This year, we decided to expand operations to Lagos, given the diversity of the people who live in Lagos. But we hope to expand to Kano in subsequent years.

The Lagos Camp

This year, we are hosting the Lagos NaijaCoder camp within the premises of the University of Lagos (UNILAG). We are using the AI and Robotics Lab (AirLab) within the Central Research Laboratory at UNILAG. The Lagos program began on the 19th of August, 2024. Thanks for Dr. Chika Yinka-Banjo, the head of the department of computer sciences at UNILAG, for leading the major collaborative efforts between NaijaCoder and UNILAG.

Our program is bolstered by the help of a few teaching assistants from UNILAG. The instructors (and some of the TAs) are lodging at the UNILAG guest house, located on the campus. The program has been seamless so far. Looking forward to future iterations of NaijaCoder at UNILAG and also at other locations (Kano!).

At the AirLab of the University of Lagos.

Recap: NaijaCoder 2023 Summer Camp

The 2023 iteration of the NaijaCoder summer camp is now complete. Congratulations to the class of 2023 students. As one of the instructors, it was a nice experience to create a syllabus for the advanced high school students.

The in-person program ran from August 7 up to August 18, 2023 in Abuja, Nigeria. The board and head of schools of Lifegate Academy in Abuja was kind enough to allow us host the program within their premises, equipped with a computer lab that had enough facilities for every kid in class.

First Week

During the first week, we introduced the students to different variable types, logical statements, and loops (for/while/do-while). Then we spent some time on how (classical) computers represent information. Most of our sessions were spent on exercises to further reinforce any concepts introduced. Then we discussed the similarities and differences between the different searching algorithms, with a focus on implementing binary search from scratch in Python. Towards the end of the week, Dr. Lekan Afuye gave a fantastic lecture on the use of algorithms to design and test computer chips.

Second Week

The next week was more hands-on. Using Google colab, each student had to implement solutions to Python puzzles and test out their solutions on a few test cases on the computer. We also discussed the time and space complexity of computer algorithms, focusing on the basics of the big-O notation. Alida Monaco gave a presentation on how computer programming can be used to analyze or mitigate climate change impacts. It was a fascinating talk! We also spent some time on sorting algorithms and on analyzing the complexity of insertion/merge/bubble sorts. Of course, the students had to implement and test the algorithms on the lab computers. Also, using their already-implemented sorting algorithms they had to solve a few puzzles. Towards the end of the week, EducationUSA, from the U.S. Embassy in Abuja, gave a presentation and shared resources on how the students can prepare for applying to U.S. colleges. The presentation was superb! We concluded the week with a quiz. Every student got a participation certificate but a student got a perfect score on the quiz and he received a significant cash prize.

Conclusion

The NaijaCoder team is leaving no stone unturned in ensuring that participants, parents, and tech enthusiasts are well-connected and informed throughout the camp. The organization’s social media presence on platforms like Twitter, Instagram, and LinkedIn serves as a vibrant hub of information and updates.

Beyond equipping young minds with technical skills, NaijaCoder’s summer camp also serves as a platform for building a strong and supportive tech community. Participants get the chance to network with like-minded peers, mentors, and research and industry professionals, fostering a collaborative spirit that can have a lasting impact on their journey in the tech world. This is the beginning of a new and exciting journey for the class of 2023 and it is my privilege to be a part of this story. Looking forward to the NaijaCoder 2024 camp.