Need thoughts on a course curriculum for an entry-level programmer [closed]

Would love to know your thoughts on a curriculum that will be developed for people that want to get started in the programming field. The goal of the course is to help it’s students to ensure that students have an understanding of the theory and skills required to be a programmer, and have enough skills to get entry-level jobs upon graduation.

Curriculum is:

  • 400 hours of instruction plus self-study.

  • 40 hours of practicum

1. Foundation

a. Clarity

b. Detail orientation

c. Communication

d. Compartmentalization/abstraction

e. Typing

f. Memory

2. Theory

a. Lexical analysis

b. Parsing

c. Optimization

d. Hierarchical thinking

e. Scope

f. Type systems

3. Computer Science

a. Data structure (ex. sorting, searching, data structure transversal)

b. Recursion

c. Language structures (ex. arrays, linked lists, dictionaries, etc)

4. Systems Architecture

5. Operating System Theory

a. POSIX

b. IO

c. Memory allocation

6. Object Oriented Programming

a. Java

b. PL/SQL


Would love to know:

  1. Is the above curriculum laid out clearly? If not, how would it be best to change it?

  2. Are there any crucial components being missed from the above outline?

  3. Should any components be removed from the above outline (considering the timeline)? Perhaps it’s too detailed at certain points and is not in balance with the rest of the content?

2

Have you looked at the ACM Curriculum Recommendations?

ACM. the Association for Computing Machinery, is the professional society for computer software people. They’ve been thinking about what needed to be taught, in what order, with what emphasis, for decades.

1

I think this is a great start.

With a few changes. Your foundation section includes things like Memory management and abstraction. In my experience these are best handled by programmers who already have a bit of experience : a) writing programs and b) understanding the architecture of the machines running their programs. Furthermore, this type of instruction is best handled with lower level languages such as C or I daresay ASM. I would suggest then moving these into the actual Computer Science stage because by then certain skills will have already been obtained and you can focus more on minute and abstracted details like memory management.

The same goes for lexical analysis and presumably a bit of study on compilers and language theory. These concepts should be handled a little later on.

By the way, in terms of language usage, I think the foundations should be taught in something like python or ruby. Easy to use, dynamically typed and with a syntax and structure that generally reflects human thought. http://www.linuxjournal.com/article/3882

For the heavier stuff like POSIX, Data Structures/Algorithms I think your only serious choice is C.

Object orientation can be done in java, but nowadays I think its more forward thinking to handle it in python. Or if your really bleeding edge, maybe try Go.

I think its important to include some stuff on database theory too. Like relational languages and dependence theory.

In short, there’s a few things I think you are missing, but you’ve got a good solid start.

5

Looks like you’ve got some great stuff in that list. Many people might not like the theory, but I really agree that it makes you a better programmer to understand the fundamental building blocks of languages.

Here’s some more items I consider to be essential for entry-level programmers to have at least some exposure:

  1. Testing
  2. Debugging
  3. Web stuff (HTTP, web applications, etc.)

I’d put the “Object Oriented Programming” before the “Computer Science” so that the concepts in the latter can be actually worked on something without assuming one is already knowledgeable in a programming language.

Testing is a big omission here. Black box, white box and unit testing should be covered as part of what developers should know and understand within the broader scope of things.

The SDLC and methodologies like Agile and Waterfall would also be things I’d suggest covering early in terms of how are projects put together and how are things done in industry. A bit of ITIL may be useful to help illustrate how some of the bigger processes like change management and incident management are handled as this may come up within industry.

This is a good post. One thing that I would encoruage would be if possible, have a How to implement or think on a problem. Can give them certain scenarios and explain why would you take Approach A rather than Approach B. A few examples like these, would definitely help clear thinking and clear concepts.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật