<p>Even with that programming background, he may want to try CS 19 instead. Two reasons:
He’ll bond with other people who are crazy good with CS
He’ll be challenged and have a chance to learn the intensity of our CS courses. I know people who worked in government labs who still found 19 challenging.</p>
<p>To my knowledge, nanoworld is usually offered second semester (unless it’s been changed because Feldman’s going on sabbatical). And there’s no way he should take more than two CS courses in his first semester, especially if he’s thinking of double-concentrating: CS 123 and CS 125 are both very time-consuming classes (from the classes I’ve taken, and from what I’ve heard, expect 15-20 hours a week outside of lecture per class), and CS 31 isn’t easy either.</p>
<p>But basically, he knows better than anyone on here where he stands, so if he wants to jump into craziness, take four CS classes and an econ class, he should disregard everything I’ve said and just do it. If he comes out of the fire successfully, he’ll be the better for it. And no real loss if he doesn’t.</p>
<p>@anon: you could take math 35, which is pretty likely to challenge you, or just skip multivariable. Personally, having gone through Math 20, if I’d already done well in multivariable, 20 wouldn’t be difficult enough to warrant it: it was only a 3-4 hours a week outside of class for me, and while I’d had good background, hadn’t gotten past the BC curriculum in HS. Look back a few posts to my last one (#251), and you’ll see some of the options available to you. Then browse the math department’s site and such, and you’ll see what else you can do. In my experience, it’s better to try things that are harder than take the easy route.</p>
<p>Actually, CS31 is the easiest of the intro sequence courses. But there’s absolutely no way an incoming freshman would be able to handle 2 or more CS courses, particularly with one being an advanced course, and 1 or more engineering courses. I second the notion that CS19 would be a better option than 31.</p>
<p>Many thanks to all!!
He’s currently volunteering oversea. I’ll pass on the suggestion when he gets online.
I think he preferred the nanoworld, CS 31, ECON 110, CS 125.
Should he take ENGN 030 instead of CS 125? Is ENGN 030 considered a challenging course?
Thanks again!</p>
<p>Hey nospam, since your son isn’t home and probably hasn’t informed you from overseas, Nanoworld has been moved to second semester (I got into it too and we received an email about it. We’ll be classmates!). Just thought I’d pass it on to you, since you seem to be having as much fun helping with his schedule as he is making it (a good thing by all means).</p>
<p>ENGN 3 is mandatory S/NC, so perhaps that might help to alleviate the stress of what looks like a heavy load. </p>
<p>Also if your son plans to concentrate in CS, CS 19 (or CS15 & CS 16, or CS17 & CS18) is a requirement. So if he decides not to take it, he would need to somehow transfer a credit from the work he has previously done.</p>
<p>Concentrating in CS (Sc.B.) plus COE looks to me a little daunting. The COE A.B. has a lot of more requirements (about 13 if you place out of the calculus requirement) than a typical A.B. in say Econ or Philosophy. The CS Sc.B. has 16-17 requirements, and that’s not even counting the CS Department’s writing requirement. Oppurtunities for overlap between both concentrations are few. So almost the entirety of the courses he will do at Brown will be concentration courses. Also consider potential scheduling headaches when trying to fit these many courses into 4 years. </p>
<p>A CS A.B. might be a little more doable, but given his excellent CS background, I somehow don’t think this is what he is looking at.</p>
<p>Thanks again to you all!
RoyalFlush: thanks for the info. You are right. I have no idea since he disappeared on me. He should know whenever he can get internet.
Last summer he took “DS and algorithm” at Carnegie Mellon U, with mostly college students there. He said the class was very intensive, and very similar to CS 19. So far, he has done 12 AP classes and 6 college courses. Hopefully he’ll be able to transfer some of the credits. Nevertheless, I’ll pass on the suggestion. Perhaps he should check it out. It’s really his decision after all.
Thanks again!</p>
<p>CSCI 0170 Computer Science: An Integrated Introduction
ECON 0110 Principles of Economics
MATH 0090 Introductory Calculus, Part I
HIST 0971D An Empire and Republic: The Dutch Golden Age</p>
<p>What is a good CS course for a student interested with no programming background? There are several listed on the website. Does anyone know if those definitions describe the courses well? My son is thinking of CS20 or perhaps 931 which is for social science and humanities majors. Any thoughts on that?</p>
<p>For someone interested without programming background, take either CS15 or 17. I think CS2 is designed for people who don’t plan on doing any more programming, and is more of a survey course. Personally, I’d say take CS17: it won’t give you the skills you need to do big projects with only one class, but it’ll give you an intro to algorithms and analysis earlier, and 17-18 is generally considered a more difficult intro sequence. Also, you jump right into recursive programming, which is generally more challenging, and people I knew in that class who had only done Java still had to work hard to get it. I did it last year, with absolutely no programming experience, and will be TAing it this year.</p>
<p>response to aleph&nospam: if you can take a class that requires an intro course, usually they’ll make it so you can either substitute an upper-division course or count it as “taken.” But anyone thinking of doing that should talk with someone about that. I know someone who tried to start with autonomous robots, then had to drop down into CS17 about 5 weeks into it (cause Shriram in 19 wouldn’t let him).</p>
<p>Thanks – I think he breezed by CS 15 and CS17 because the website said they were for concentrators, but it sounds like it would be a better foundation if he wants to do additional courses.</p>
<p>I studied C++, alongside a little SQL, in Computer Science in the penultimate and ultimate years of my high school education. Consequently, I have no learning or programming experience in JAVA, a language that is extensively used in colleges. Brown, as I see it, has two courses for prospective concentrators - CS 15 and CS 17. Which course, according to you all, should I opt for to get the best foundation for a Computer Science concentration later?</p>
<p>This year, both classes ended up in pretty much the exact same spot (after second semester), because CS17 was a more difficult class than CS15, and went through more CS-ey concepts (algorithms, analysis), but CS16 had a prof who pushed them a lot harder than usual, and we didn’t get pushed as much in 18 as 17, largely because our professor’s attention was less on us and more on her upcoming sabbatical. And because she tried new stuff that slowed us down.</p>
<p>But, some people I know who are more mathy didn’t realize how much they enjoyed CS until they took CS16 (after taking 15), whereas everyone from 17 pretty much either enjoyed it right away, or didn’t. In my opinion, if you’re thinking of programming theory/math-based programming, 17/18 is more likely to be the route for you, whereas if you want to have a “fun” intro course, and see some of the typical, but interesting possibilities of computer science, with a professor who’s well-known in the CS-world, then have a chance of your next course being less “fun” (because it won’t be anything like 15), take 15/16. And if you haven’t done recursive programming and want a challenge, then take 17, because you won’t feel like you know the material, whereas someone with enough C/C++/Java experience might be bored the first few weeks/months of CS15.</p>
<p>You’ll get a pretty extensive introduction to Java, but you’ll have to work alone on all your hw and assignments. You’ll be in a huge class (I believe this year it’s projected to have 250 or so students… I think it was over 150 non-freshman who pre-registered). But, you’ll get to do fun, object-oriented projects, like LiteBrite and Tetris, which you’ll be able to show to your friends to explain how cool/good you are at programming.</p>
<p>You’ll have cool people like me as TAs (I’m kidding… I’m friends with some of the 15 TAs, and they’re all cool people too). You’ll be introduced to functional programming (recursion… lots and lots of recursion), using Scheme (it might be Racket now, but the same basic thing), which is a derivative of Lisp, and then OCaML, which is a little-used language, except for theoretical work, and by a few employers. But it’s a light language (not many words required for your programs to work) from which you can introduce modules and interfaces. Your projects will also be more mathy-theoretical, including Matrix (programming basically what your TI-83’s matrix stuff does), Eliza (a taste of a program that can “speak” to you), and Game, where you program a 2-player game, and an AI who can determine the optimal move.</p>
<p>^Thanks a lot for the wonderful explanation my fellow Brunonian! I honestly have no qualms about your ‘coolness’!</p>
<p>After going through what you wrote, I seem to find myself in an unenviable position. I like the fun part of CS 15, but I also like the challenge of CS 17. If I go into CS 17 with my limited knowledge, will I be, in any way, at a disadvantage with regards to the kind of programming that lies in the future? I ask this question because I have been told by a lot of people that one’s prowess in JAVA is essential to one’s success in Computer Science. Since you were pretty much in my position a while back, which course, according to you, will do justice to my ability and curiosity?</p>
<p>CS 18 will teach (I believe this year) completely in Java (last year it was Scala and Java, which meant a bit of time used with a language whose power we didn’t really explore). And if you speak C++, Java will be really, really easy to pick up. Seriously, pick up a book at your library or something, and I’m sure you could learn it to the point where you’re as good in it as in C++ by the end of the summer. A week or two if you push yourself, and are willing to count relying on Javadocs as understanding. Take a look at a few sample codes, and you’ll see that the structure of the two languages is the same: the only difference might be a few syntactical things, as well as some differences in how they treat garbage collection and arrays. The more difficult languages to adjust to are functional languages, but once you speak Scheme, learning OCaML is easy. And going from Scala to Java (probably similar in difficulty to jumping from C++ to Java), we were given two lectures of in-class time to “learn” Java, but were expected to be learning new concepts and as fluent in it by the time we did our next homework, with only one 2-hour lab in between. And besides screwing up the syntax a bit, everyone made the jump pretty easily.</p>
<p>Chsowflax, thanks so much for showing the course work. That is so much better than a description! You will be a great TA. </p>
<p>Do you think for my son who has no programming experience those classes (1 and 17) are still options? If so, do you recommend that he learn some material this summer, too, just to be better prepared? </p>
<p>It looks like it is possible to take that sequence and then maybe another course or two for fun as a nonconcentrator?</p>
<p>Okay, so I really don’t know if my courses changed or not (I can’t find my old post), but I created a final schedule. All are pretty much set in stone after AP/IB exam scores and the fact that the courses are either 1) classes that I can strictly take this semester or 2) really interested in and have no desire to change.</p>
<p>GEOL 220 - Physical Processes in Geology (CAP)
SOC 1080 - Organization in Groups
LITR 710 - Writers on Writing (FYS with Howard)
CHEM 330 - Equilibrium, Rates and Structure (no one in my IB Chem HL class got above a 5 on the exam… it was depressing)</p>
<p>After thinking over which levels of classes I should take, I decided that I will probably take:
ENGN 0030
CHEM 0330
ECON 0180 (FYS)
CSCI 0170</p>
<p>The problem I have is that I have so little time between classes. Is it normal to have 3 hour blocks of classes 3 days a week? And I would also have to have lunch after 1PM on most days which is late for me, but I guess I could get used to. I guess for a prospective engineer, I’m kinda stuck with lots of foundations classes, but I’m trying to keep things open for a possible compsci or applied math major if I choose not to do engineering. Also, I’m not completely forgetting about math–I’m planning on doing 0200 or 0350 in the Spring.</p>
<p>If you are an engineer, then you really should take ENGN 3 now. Most people suggest taking CHEM 33 in the fall because you can take Orgo in the spring if you decide to do that (and if you take CHEM 33 in the spring, you have to wait a whole year before taking Orgo). Since the CS classes are sequences, you’re right to take 17 now. </p>
<p>Re: “normal.” I was in class 9-12 MWF first semester and TTH second semester. I know a lot of other people who had similar schedules. Sometimes it gets long, and I can understand why having lunch at 1 is annoying, but your sleeping/eating/working schedule will probably change a lot once you get here. Given the classes you’re taking, though, the time frame seems inevitable.</p>