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.

Transformers as a Computational Model

Recently, as part of the “Special Year on Large Language Models and Transformers“, the Simons Institute in Berkeley hosted a workshop on “Transformers as a Computational Model”. You can see the schedule here.

I watched (almost) all videos and learned a lot about the limitations and capabilities of transformers. The videos have inspired me to work on one or more projects involving transformers.

P.S. This is my shortest post in a while.

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.