Subject: Re: COP-4338, COP-4604 From: Jason Liu Date: 1/25/2012 1:28 AM To: Norman Pestaina CC: Mark Allen Weiss , Raju Rangaswami , Xiaowen Liu , Jinpeng Wei , Nagarajan Prabakar Hi All. Thanks, Norman, for forwarding the documents. About the learning outcome, here's what I see the COP-4338 course should be comprised of: 1. The language is C, not C++. Adding C++ in 4338 is possible but we need to realize that'll be a substantial addition. It's hard to talk about C++ without the fairly complicated C++ object oriented flavor. And that will take quite some time to cover completely. Personally I don't think C++ is critical for what the course is supposed to focus on. 2. The system is Unix. It's developing basic programming on true modern operating systems, meaning we use Unix editors, gnu compilers, makefiles, and gdb. These are the basic elements for program development (not IDEs). About prerequisite, COP 3530 data structure is not on the critical path for the advanced programming course. I'm OK lowering it to be COP-3337. Co-requisite with 3530 is also OK. About the name, my opinion is that we don't need to rename this course. Programming III is advanced programming. Specifically, it's NOT about system programming (which ought to deal with system-specific aspects, like device drivers, network intrinsics, kernel modules, etc.). It's about programming on a true modern operating system (which happens to be Unix). And we deal with fundamental concepts, including understanding of basic program structure (stacks, heaps, etc), pointers, memory management, and also advanced programming techniques, such as multiprocessing, multithreading, I/O, socket programming, and even parallel programming (using MPI). It's what I view as CS essential programming knowledge. Now the question is whether to include other "advanced" programming languages, such as python. But given the limited class time, we need to focus on the essential. With a good understanding of the above, I think the students will appreciate it'll become easier to learn other languages and packages. I'm not sure there is an overlap of this course with the OS course. But I'll defer that to Raju and Jinpeng, who have taught the course. I attached the syllabus and a detailed schedule of the COP-4338 course which I taught in the Fall 2011. You'll see what specific topics have been covered there. Best, -jason. On Fri, Jan 20, 2012 at 4:24 PM, Norman Pestaina wrote: >> >> Raju, Jason, Jinpeng: >> >> > > > > Here are the revised Course Outcomes and proposed Learning Outcomes. > > >> >> As the faculty have approved changing COP-4338 to focus on C and Unix, >> >> please revise the syllabus accordingly, including learning outcomes. >> >> (Norman: please email to all the most recent version you have that >> >> includes learning outcomes). >> >> >> >> There is also a suggestion to change the prerequiste of COP-4338 from >> >> COP-3530 to COP-3337, or maybe make COP-3530 a co-requisite, to restore >> >> the length of the longest prerequisite chain; however you would need to >> >> decide if that makes sense. >> >> >> >> There is also a past suggestion to rename the course to have a more >> >> "Systems" title. >> >> >> >> We also would need a revision of the Unix Course (formerly COP-4225, now >> >> COP-4604) syllabus to avoid overlap with the newer COP-4338. >> >> >> >> Thanks! >> >> >> >> Mark >> >> -- Jason Liu, Associate Professor School of Computing and Information Sciences Florida International University Phone: 305-348-1625 Fax: 305-348-3549 Email: liux@cis.fiu.edu Web: http://www.cis.fiu.edu/~liux/ Attachments: Preview of “COP-4338 Programming III”.pdf 27 bytes Preview of “Course- COP 4338 - Programming III (Section U01)”.pdf 27 bytes