Data Structure Lecture Note (Week 1, Lecture 1)


This is lecture note for course CSC3100 instructed by prof. Linji Yang.

  • Some background about CS, DS and Algorithms
  • Software engineer career
  • How to improve programming skills
  • Requirement, policy and outline
  • Some examples

Procedures to solve a problem. Given input, give output. Algorithm has nothing to do with computer. The modern computer just makes it possible for application of large problems.

Why DS and Algorithms: information exploding. Need to play with a huge number of data.

Basics fro CS,

logical thinking and discrete math training

write efficient and high-performance code

identigy bugs faster


C/C++ is required for this course.

Why learn C++: You have to sense what is going wrong. However, Python hides many details so that if something goes wrong, you are doomed.

Also, the knowledge is evolving quite fast.

People tend to maximize today’s happiness, but maximizing today’s pain and exchange for future’s happiness is a better route.


Mastering algorithms and data structures is a necessary condition for being an excellent programmer and engineer.

Covid-19 accelerates the process of transformation of industries, it’s more like a chance instead o a crisis.


Learn Programming

Must masrter C/C++ 11 or even 14

Spend 40% of your daily working time in coding, practice more, use online judgesystem, solve small probelms

Go deeper: knowing how linux works; know GCC complier, how compiler works; knowing OjcC if want to do iOS App.


Data Structure Lecture Note (Week 1, Lecture 1)

CPU:

supports a set of very simple instructions like: data movement(load, store, copy…); arithmetic/logical; program control (branch, halt)

Very primitive, implemented as electronic binary circuits which can transform the 0s and 1s

can access the main memory

register in CPU.


Memory:

Random Access: very efficient. with door number


External storage: tape, hard disk, SSD


This course is about designing smart algorithms and data structures!