Difference between revisions of "ECE 2035"

From Georgia Tech Student Wiki
m
(updates to ece 2035)
Line 23: Line 23:
 
== Prerequisite Knowledge ==
 
== Prerequisite Knowledge ==
 
[[ECE 2020]], mainly the knowledge of the datapath, which is reviewed at the beginning of 2035
 
[[ECE 2020]], mainly the knowledge of the datapath, which is reviewed at the beginning of 2035
  +
  +
== Future Outlook ==
  +
ECE 2035, along with [[ECE 2031]], are prerequisites to [[ECE 3058]], and is thus a very important class to have completed by early second year, as [[ECE 3058]] is a gateway to many thread requirements
   
 
== Registration ==
 
== Registration ==

Revision as of 21:41, 9 May 2022

ECE 2035, formally known as Programming for Hardware and Software Systems, is the second half of the content covered in CS 2110, presented from an engineering point of view. It is required for all computer engineering majors and an option for electrical engineering majors. Students will learn the MIPS instruction set and C programming, as well as memory management, and apply this knowledge to projects

Topic List

  • Introduction to assembly programming in MIPS, loading and storing words, logical functions, loops
  • Introduction to C, branching statements, loops
  • 2D and 3D arrays
  • Data alignment in memory
  • Pointers
  • Activation Frames, Stack Memory management
  • Linked lists and hashmaps
  • Heap memory, malloc and free
  • Garbage collection
  • Introduction to compilers and compiler optimizations
  • Introduction to embedded system programming and game design, troubleshooting, unit testing

Class Structure

ECE 2035 is a mostly project-based class, though students will have early homeworks designed to guide them to learn how to program in MIPS assembly and C. Two major projects define this course, and much of the lecture content will focus on leading into these projects. The first is an assembly optimization project focused on an algorithm where the goal changes each semester. The second project is a game built on an embedded system where students will use data structures to create a game in C.

Workload

ECE 2035 has a varying amount of work each week. Once the class reaches the projects, the class becomes much more difficult and time consuming, especially since students will have exams alongside major project due dates. The final project is notorious for students trying to pull all nighters and it is heavily encouraged to start early. Expect 2035 to be a true 4 credit class on average, expecting 10-12 hours a week at minimum

Prerequisite Knowledge

ECE 2020, mainly the knowledge of the datapath, which is reviewed at the beginning of 2035

Future Outlook

ECE 2035, along with ECE 2031, are prerequisites to ECE 3058, and is thus a very important class to have completed by early second year, as ECE 3058 is a gateway to many thread requirements

Registration

ECE 2035 requires a lab component to be registered for, however, there is no scheduled lab block.

Equivalent Courses

CS 2110 will cover the same concepts as ECE 2035, and electrical engineering majors will have the option to take ECE 2036 instead of ECE 2035