Talk:Advanced C Programming

From Wikiversity
Jump to navigation Jump to search

Rename[edit source]

Note from creator: I agree with a rename, if anyone gets an idea for a better name, I am open to then renaming it as they wish; I myself have no ideas as C Programming is taken. Maybe advanced C programming? Make sure to move all the subpages too. -- Thomas E. Pearson

C Programming is the correct place for this content. It isn't "taken". The content under that title is quite old and would benefit from being organized / reorganized with a more current vision. How do we integrate this work with that? -- Dave Braunschweig (discusscontribs) 02:10, 24 February 2021 (UTC)[reply]
The main problem is that the way I am explaining includes explanations on a fundamental level, as you might do with assembly, which isn't necessary for someone just wanting to learn C to learn. The main point of the course is about programming in C with an understanding of how the C maps into how things work in memory, which is very useful in specific applications of C, such as OS development where the methods of storing data can be important for the safety of kernel code, or for time-critical game features, where using pointers and arrays in C is faster than dynamic allocation in C++, where a proper knowledge of how stack allocation works can be useful. -- Thomas E. Pearson
@Thomas E. Pearson: I would disagree with the assessment that someone "just wanting to learn C" doesn't need the fundamentals. The only uses I'm seeing for C programming currently are low level interfaces where it is necessary to understand the memory mappings, etc. If they just want to learn programming, they should stick with Python. When they want to graduate to C, it's time to learn how programming really works.
The section under C Programming#Advanced lessons is open. If formatting is an issue, I'd be willing to work on reformatting C Programming to follow the standard format. The advanced formatting currently used doesn't meet accessibility standards (it is table-based) and is much more difficult to maintain. If you are convinced that this is a separate project, then Advanced C Programming or Applied C Programming might be alternative titles. -- Dave Braunschweig (discusscontribs) 14:31, 24 February 2021 (UTC)[reply]
I think the main thing I'm concerned about is that, while many people indeed use C for low-level applications, such as writing drivers, some people learn it as a waypoint for C++, or even just on its own, so they can make use of specific libraries or otherwise unavailable low-level interfaces, such as usage of the Vulkan API. While it is true that many of these things indeed should have usage of knowledge at low-levels, that knowledge isn't always necessary, like if you just want a large search algorithm to run very fast, when you already know existing limitations on what kinds of data there are ie. trading off unneeded flexibility that other languages give in exchange for speed in large-input algorithms. The main problem I think with integration into the C course also happens to be that a) existing articles would have to be completed and b) new articles added to the advanced section WHILE formatting of data must be done to ensure that all data is present in a way that still allows a proper understanding of the language. But, I would be agreeable to this if this is a recommended path to take. Maybe keep this as a separate course and then also add to the other course and see which method is preferred? Thomas E. Pearson (discusscontribs) 22:55, 1 March 2021 (UTC)[reply]
@Thomas E. Pearson: What about Advanced C Programming or Applied C Programming? -- Dave Braunschweig (discusscontribs) 00:25, 2 March 2021 (UTC)[reply]
I don't think applied C programming is accurate enough - that normally implies some sort of embedded C, or working with particular libraries. I am fine with advanced C programming, however that may imply that it should be done after the normal C programming course to work on more advanced topics, whereas it should be done separately. Of course, I am completely open to such a rename if it is considered best, I am just not sure if it is indeed the best option. Maybe it could be integrated as a side-by-side basic course with this one containing extra information? If such a rename is best then I am completely fine if someone just goes ahead and changes it, I just personally consider that it could be confused, but I am new to wikiversity and do not know if that would be a problem in general. Thomas E. Pearson (discusscontribs) 00:49, 2 March 2021 (UTC)[reply]

@Thomas E. Pearson: Based on a comment above, how about C Programming Fundamentals? -- Dave Braunschweig (discusscontribs) 01:20, 2 March 2021 (UTC)[reply]

@Dave Braunschweig Hmmmmm... maybe, but I'm not sure if that is quite accurate enough. I think "Advanced C Programming" is good, apart from if there is confusion. Maybe the other course could be "Basic C Programming", and this one could be "Advanced C programming" or "Low-level C Programming" (though again, it's not embedded C), or maybe "C with fundamental computing concepts"? Thomas E. Pearson (discusscontribs) 02:50, 2 March 2021 (UTC)[reply]