[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y ] [Home]
4chanarchives logo
I am a professor - help me tailor my first year CS Curriculium
Images are sometimes not shown due to bandwidth/network limitations. Refreshing the page usually helps.

You are currently reading a thread in /g/ - Technology

Thread replies: 60
Thread images: 8
File: Edsger_Wybe_Dijkstra.jpg (297 KB, 1024x1365) Image search: [Google]
Edsger_Wybe_Dijkstra.jpg
297 KB, 1024x1365
I am a new professor at a mid-tier university. The computer science curriculum here is shit - they were using python, not teaching anything substantial about type systems, good philosophy about software design, or how to find libraries to get shit done in a pragmatic way.

What's your dream first year of CS look like? I will be integrating the suggestions in this thread into my curriculum. I want it to raise this school's standing in terms of the quality of CS education available here.

>my fucking face when i realised how shit the curriculum here was
>>
>>>/biz/
baka teecha
>>
Just copy MIT's free CS shit,
>>
Require Gentoo and start with Assembly.
If anyone asks why simply reply BLEEDING EDGE or BARE METAL respectively.
>>
Explain coding concepts, not keywords. Make sure any projects are interesting for students, too.
>>
Time stamped ID card for proof
>>
SICP
>>
>>53272333
i plan on using SICP quite a bit to cover basic computational concepts such as how math is done on a computer at the processor instruction level

>>53272342
will be touching on assembly and the heap/stack, that's a no brainer

i'll be tying in everything i know about OS's too, to really give the students a vivid picture of what's really happening in computation/how small things are interconnected to make big things like operating system components, or an operating system, or a VM.

>>53272358
yeah, nah
>>
>>53272463
and if someone can't be botherd to study everything on my required reading list they can fuck right off. we don't need anymore lazy, uncaring idiots in the field, that don't give a shit about hardcore computational science. the SJW's already have their share.
>>
7/10 most idiots here will believe you.
>>
File: pChFn3J.jpg (142 KB, 600x640) Image search: [Google]
pChFn3J.jpg
142 KB, 600x640
>>53272281
http://www.acm.org/education/curricula-recommendations

If you're not going for the meme route.
>>
LISP
I
S
P
>>
>>53272484
This.

Also, OP, you're a fucking moron
>>
>>53272281
Teach intro class with java. Lab focused. Have them choose from a large number of extra assignments for another chunk of grades. Also teach a discrete math class, and offer some other class that gives exposure to everything web/server related. Then algorithms 2nd sem. + something systems related. Dont try to weed people, and offer some kind of late policy, or students will hate you.
>>
>>53272281
>they were using python
oh like MIT?
>>
>>53272717
>le MIT uses PYTHON meme
>>
>>53272780
>calling everything memes
>>
>>53272717
they teach differential equations, calculus, physics, linear algebra, and discrete math in the first semester
>>
>>53272812
At MIT? That was what I learned first year (with Python also) as well.
>>
>>53272830
what uni?
>>
>>53272933
University of Glasgow
>>
>>53272780
MIT does use Python, and it's because Python is a good language to teach to beginners, having one way of doing things is simple and allows you to get shit done faster.

Doesn't need to be perfect or pretty, just document the fuck out of your code and get shit done.
>>
>>53273072
>muh one way of doing things
python is a terrible language: white space shouldn't mean anything to a compiler, it's only function is to make code easier to read for people i have a habit of indenting nested loops, but in python you can't do that without changing the meaning. it's bullshit

python can't even do deep type inference. example: you have an array of ints, and want to sum them. ok that works. lets say you have an array of pointers to ints, and want to sum them. DUH WHAT DO YOU MEAN BOSS? fucking python
>>
>>53272281
I read through the textbook How to Design Programs on my own. It's almost entirely about software design, and the language grows in complexity throughout the book using a (less and less) restricted subset of Lisp.
The "intermezzos" between chapters discuss the nature of programming language grammars, how scope works, how numbers are really manipulated through arithmetic on the hardware as opposed to their easier to use abstractions, and how to take care to avoid problems like under/overflow, various levels of abstraction, computation, etc.
The main chapters discuss how tackle real-world problems, including interactive programs, (the language comes with a lot of "practical" libraries for file reading/writing, APIs, web access, GUI building, audio, etc.) while writing and refining your program, developing a deep understanding of the data it consumes, and determining how to exploit the structure of that data (or organizing unstructured data in a useful way) in order to develop programs. e.g., if the input your program or function consumes is self-referential, you can use a loop/recursion to solve it and understand its correctness inductively. If your program has multiple inputs, figure out how it will process and combine these inputs into the desired answer. If both inputs are themselves complex forms of data, or refer to other data, write functions or procedures to handle each separate set of data, and then compose them together to achieve the final result you want.

It's probably the most useful and practical book on programming I've read.
>>
>>53273112
It's been a while since I've used python other than in Django web-dev which is mostly scripty stuff. What do you mean by "array of ints" and "array of pointers to ints"? like what's the python code that achieves either one of those?
>>
>>53272281
Make homework of exclusively of implementation of theory.
That shit teaches a lot
>>
Make your students do a presentation for their final and make them program it with some 2D library. No Microsoft PowerPoint bullshit.
>>
>>53272281
do you by chance teach at YCP...
>>
>>53273212
it is a good book. it's basically SICP's rewritten for (clever) high school students
>>
>>53273399
some will call this idea devilish, yet others pragmatic for moulding students into top tier engineers
>>
>>53273498
That's the impression I got while reading it. Newton's Method isn't mentioned until chapter 5 of 6 (algorithm design), but I remember it being discussed in one of the very early SICP lectures. I'd definitely recommend it for a 1st year CS student, or even just as a general first programming book.
>>
>>53273112
Arent they fixing this shit?
>>
>>53272281
>I want it to raise this school's standing in terms of the quality of CS education available here

Yeah, you're not going to be able to do that unilaterally.
>>
File: Hardest class in CS.png (423 KB, 490x684) Image search: [Google]
Hardest class in CS.png
423 KB, 490x684
>>53272489
>Mathematics Requirements in CS
>While nearly all undergraduate programs in computer science include mathematics courses in their curricula, the full set of such requirements varies broadly by institution due to a number of factors. For example, whether or not a CS program is housed in a School of Engineering can directly influence the requirements for courses on calculus and/or differential equations, even if such courses include far more material in these areas than is generally needed for most CS majors. As a result, CS2013 only specifies mathematical requirements that we believe are directly relevant for the large majority of all CS undergraduates (for example, elements of set theory, logic, and discrete probability, among others). These mathematics requirements are specified in the Body of Knowledge primarily in the Discrete Structures (DS) Knowledge Area.
>We recognize that general facility with mathematics is an important requirement for all CS students. Still, CS2013 distinguishes between the foundational mathematics that are likely to impact many parts of computer science—and are included in the CS2013 Body of Knowledge—from those that, while still important, may be most directly relevant to specific areas within computing. For example, an understanding of linear algebra plays a critical role in some areas of computing such as graphics and the analysis of graph algorithms. However, linear algebra would not necessarily be a requirement for all areas of computing (indeed, many high quality CS programs do not have an explicit linear algebra requirement). Similarly, while we do note a growing trend in the use of probability and statistics in computing and believe that this trend is likely to continue in the future, we still believe it is not necessary for all CS programs to require a full course in probability theory for all majors.

tl;dr all that's required is discrete ""math""...
>>
File: images.jpg (39 KB, 865x1000) Image search: [Google]
images.jpg
39 KB, 865x1000
>>53274212
fuck that memebook

if you want to be a scatterbrained, LOLSORANDUMXD SJW use Ducks, if you want to learn Discrete Mathematics, use Applications
>>
>>53274212
that book costs about 60 dollars

>>53274941
that book costs about 300 dollars. you get what you pay for
>>
File: Discrete math.png (63 KB, 669x794) Image search: [Google]
Discrete math.png
63 KB, 669x794
>>53274941
Epp/Rosen/Ducks, they all suck the same. If you want to learn math, read real math textbooks.
>>
>>53275050
If you want to learn real math start reading the first manuscripts in their original language.
>>
country? course duration? what are your students like?
>>
>>53275335
lol, but he does have a good point. you get information and perspectives on mathematica from like 10 different brilliant mathematicians, instead of one, who wrote the book, plus her editors.
>>
Check out this http://i.stanford.edu/~ullman/focs.html

I checked the book and the way it integrates discrete math and basic programming is really how I wish I had been taught the subject
>>
>>53272685
Definitely try to weed out the worst. You don't want people who are confused by Big O.
>>
Expose everyone to monads
>>
>>53272281
integrating C learning and linux learning then working on OOP in C before moving onto any fancy shit. OOP languages after learning C.
>>
>>53275470
Why not? algorithms is a lecture class. If they are confused by big O, they will weed themselves out. No need for artificial difficulty.
>>
>>53275507
Some colleges avoid asking any kind of hard questions so that people won't drop out.
>>
Have them learn asm, C, scheme and D
>>
>>53272281
Teach them about basic version control.
>>
>>53273112
why are you even working with pointers in python?
>>
Teach visual basic
>>
>>53275586
Which asm?
>>
>a fucking PROFESSOR asking 4CHAN for help

Holy fucking christ the education system's money-stuffed stiff corpse is getting raped by the kikes hard now isn't it
>>
>>53275662
probably something RISC at first, then x86(_64) for practicality
>>
File: 731.gif (136 KB, 460x296) Image search: [Google]
731.gif
136 KB, 460x296
>>53275705

>actually believing people on the internet

Retard
>>
>>53275738
Is he a smart man then?
>>
Drop some redpills on jews
>>
>>53272342
Third answer best answer
>>
>>53273112
>array of pointers to ints
>python
>array
>pointers
>>
File: love.jpg (90 KB, 396x532) Image search: [Google]
love.jpg
90 KB, 396x532
>>53272333
Please don't do this unless you understand that MIT content != MIT students,
and/or you're properly able to explain it as an MIT professor would.

>Our lecturer uses MIT content
>Can't explain it for shit
>He expects us to read every chapter every week
>Simply gives us pop quizzes with "how does [...] work / why does [...]"
>>
>>53272281

3rd year IT student reporting in.

I recommend teaching some basic C/C++ first semester along with a class on discrete math and programming with logic gates. Implement as many labs as possible, especially for the logic gates. A nice tool to use is Digital Works. You could also have them work on some web dev with html+css or php.

Now, my uni failed to do this but if you can find a way to make your students understand that the math they're being taught is actually of great help to them you should do that. I have no idea of how you should tackle that through.

2nd sem you should go with an OOP language of your choice (we used java. it was ok) along with more discrete math and an Assembly language. We worked on the MIPS instruction set and used the an emulator called qtSpim in the labs which was really helpful. An introduction to networking should take place at this point if not in the first semester.

on 3rd sem you should definitely throw in OS's and imo would be a good time to introduce them to UNIX and how the shell works if you haven't by that point. More networking stuff.

i'd argue that past that, anything is fair game since they'd theoretically have enough knowledge to follow any pretty much most subjects.
Thread replies: 60
Thread images: 8

banner
banner
[Boards: 3 / a / aco / adv / an / asp / b / biz / c / cgl / ck / cm / co / d / diy / e / fa / fit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mu / n / news / o / out / p / po / pol / qa / r / r9k / s / s4s / sci / soc / sp / t / tg / toy / trash / trv / tv / u / v / vg / vp / vr / w / wg / wsg / wsr / x / y] [Home]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
If a post contains personal/copyrighted/illegal content you can contact me at [email protected] with that post and thread number and it will be removed as soon as possible.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com, send takedown notices to them.
This is a 4chan archive - all of the content originated from them. If you need IP information for a Poster - you need to contact them. This website shows only archived content.