Computer Forums

Member Login

Remember Me? Sign Up! | Forgot Password
 
Slogan
 
Computer Forums > Programmers Lounge > Programming Discussions » new computer science major in need of help
Closed Thread
Old 12-16-2006, 01:30 AM   #1 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 8

metrosomething

Send a message via AIM to metrosomething
Default new computer science major in need of help

Hello everyone

I am a new college student who is a computer science major. I am currently bored with my school work. I want to learn how to programming but i dont even know where to start. Right now i taking my core classes....you know english math etc.............
CAn anyone tell me where i should start ?
What books or websites should i visit to learn them from
Any tips/ comments will be very helpful


thanks in advance
metrosomething is offline  
Old 12-16-2006, 02:46 AM   #2 (permalink)
 
Software Developer

Join Date: Mar 2006

Location: Columbus, OH

Posts: 569

jaeusm is on a distinguished road

Default

Quote:
Right now i taking my core classes....you know english math etc.............
If you're bored, then why not register for CS classes? After all, that is your major.
jaeusm is offline  
Old 12-16-2006, 03:57 AM   #3 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 14

foolsdelyte

Send a message via AIM to foolsdelyte
Default

It's good you're thinking about this, because CS is one of the few majors for which you MUST learn the bulk of your knowledge autonomously. If you're really just starting out, you'll want to become familiar with command line interfaces and an object oriented language like Java. If you decide to learn Java you must download the Java JDK (java.sun.com), which includes the compiler, archiver, debugger and runtime environment. If you're lost, tell me what OS you're running and I'll help you set everything up and get started with programming.

As for books, you should buy an 'Introduction to Java' type book (should you decide to learn Java) and work off of that until you feel like you know a bit more about languages and computers in general. Additionally, you might want to read up on computer architecture (Hennessey), because this will come up in your major. And it's just good to know. Eventually your main sources of information will be tech forums and articles, but I suggest you look at those books and get comfortable with a language before anything else. There is a lot of information out there, and it can get overwhelming. If you give yourself a strong and focused foundation, you'll be able to take in new information much more easily later on. Goalsetting.

The last thing I would suggest is to think about what you'd like to do with computer science. Do you want to take a graphical approach to programming? Do you like video games? Robotics? Artificial intelligence? Simulating? Network security? Hardware design? Cryptography? Search engines? Language processing? You should always be reading about those areas that interest you.

Again, if you need any help setting up or have any questions, just ask.
foolsdelyte is offline  
Old 12-16-2006, 10:17 AM   #4 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 8

metrosomething

Send a message via AIM to metrosomething
Default

Quote:
Originally posted by jaeusm
If you're bored, then why not register for CS classes? After all, that is your major.
thanks for info all

I would take the cs classes.....but I'm currently in process of transferring to the university of maryland in the fall...and the classes do not transfer over.
And the classes do not fit into my daily activities....play basketball on a scholarship and i dont want to lose it plus there is only one class available and it was already closed.
So right now im taking 2 math classes , history, english and art all classes that will give me credit

JUST MAD MY GPA WILL BE A 2.8 after the term i hate basketball and those darn girls
metrosomething is offline  
Old 12-16-2006, 10:24 AM   #5 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 8

metrosomething

Send a message via AIM to metrosomething
Default

foolsdelyte...

i like video games ....matter of fact i love them
was thinking about learning some Cryptography in the coming months
My friend last summer go a job in seattle with microsoft...he told me he has alot more to learn because he looked like a fool out there.
Thats why i want to learn somethings on my own and before hand.....
thanks for ya advice
Since i like video games
exucse my ingorance...is it possible for you to explain in layman's terms.what the ..
Graphical approach would include
And what the hardware design would involve
Thanks you everyone in advance for comments
metrosomething is offline  
Old 12-16-2006, 03:22 PM   #6 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 14

foolsdelyte

Send a message via AIM to foolsdelyte
Default

If you want to design hardware, for example, a new microprocessor, network card, or gaming controller, you'll need an extensive background in math and physics. On the other hand, computer graphics is concerned with GUIs, image processing, 3D modelling, etc. To be honest, I don't find graphic design particularly interesting; as a programmer you'll be applying trig and calculus to problems like scaling, rotating, filtering and algorithm design, rather than working with easy software packages, like Photoshop or Maya. So if you picture yourself rendering some sports car in 3D Studio MAX using premade tools and templates, or you like graphics as an art form, you might want to major in digital media instead. But cryptography sounds good to me.
foolsdelyte is offline  
Old 12-16-2006, 04:01 PM   #7 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 8

metrosomething

Send a message via AIM to metrosomething
Default

thanks for everything foolsdel...things seem much clearer now
metrosomething is offline  
Old 12-16-2006, 08:44 PM   #8 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 8

metrosomething

Send a message via AIM to metrosomething
Default

hey foolsdel and anyone else looking at this post ( please comment if you can)

my friend emailed me the degree and course description
what do think about it
where should i get started before i transfer

--------------------------------------------------------------------------------
CMSC 102 INTRODUCTION TO INFORMATION TECHNOLOGY (3)
Prerequisites: None
Notes: Three hours of lecture each week
Syllabus: HTML
Description: For non-majors only. Computer technology and concepts. Introduction to database management systems, spreadsheats, and word processors. Introduction to networks and to the Internet in particular. Importing information from network to local application.



CMSC 106 INTRODUCTION TO C PROGRAMMING (4)
Prerequisites: MATH 140 (co-requisite)
Notes: Three hours of lecture each week
Syllabus: HTML
Description: Design and analysis of programs in C. An introduction to computing using structured programming concepts. CMPS and Computer Engineering majors will be given priority for registration until the first day of classes.



CMSC 131 OBJECT-ORIENTED PROGRAMMING I (4)
Prerequisites: MATH 140 (co-requisite)
Syllabus: HTML
Notes: Three hours of lecture and two hours of laboratory per week.
Description: Introduction to programming and computer science. Emphasizes understanding and implementation of applications using object-oriented techniques. Development of skills such as program design and testing as well as implementation of programs using a graphical IDE.
Programming done in Java.



CMSC 132 OBJECT-ORIENTED PROGRAMMING II (4)
Prerequisites: CMSC 131 with a grade of C or better, or a score of 5 on the A Java AP exam, or a score of 4 or 5 on the AB Java AP exam, or permission of the department based on satisfactory performance on the Department's placement exam. Corequisite: MATH 141.
Syllabus: HTML
Notes: Three hours of lecture and two hours of laboratory per week.
Description: Introduction to use of computers to solve problems using software engineering principles. Design, build, test and debug medium-size software systems and learn to use relevant tools. Use object-oriented methods to create effective and efficient problem solutions. Use and implement application programming interfaces (APIs).
Programming done in Java.
what do you think about it



CMSC 212 INTRODUCTION TO LOW-LEVEL PROGRAMMING CONCEPTS (4)
Prerequisites: CMSC 132 with a grade of C or better, or permission of the department based on satisfactory performance on the department's placement exam. Corequisite: CMSC 250
Syllabus: HTML
Notes: Three hours of lecture and two hours of laboratory per week.
Description: Introduction to many of the concepts that lie behind software such as hardware, memory layout, memory management, and operating systems. Explain how these concepts affect the design of software systems. Provides transition from the Java environment of preceding two courses to programming in C.



CMSC 250 INTRODUCTION TO DISCRETE STRUCTURES (4)
Prerequisites: MATH 141
Notes: Formerly CMSC 150. Three hours of lecture and two hours of lab each week
Syllabus: HTML
Description: Fundamental mathematical concepts related to computer science, including finite and infinite sets, relations, functions, and propositional logic. Introduction to other techniques, modeling and solving problems in computer science. Introduction to permutations, combinations, graphs, and trees with selected applications.



CMSC 298 SPECIAL TOPICS IN COMPUTER SCIENCE (1-3)
Prerequisites: Permission of department.
Notes: Special topics outside the normal course sequence.



CMSC 311 COMPUTER ORGANIZATION (3)
Prerequisites: Grades of C or better in CMSC 212(or CMSC 214) and CMSC250.
Notes: Three hours of lecture each week
Syllabus: HTML
Description: Introduction to assembly language. Design of digital logic circuits. Organization of central processors, including instruction sets, register transfer operations, control, microprogramming data representation, and arithmetic algorithms. Memory and input/output organization.



CMSC 330 ORGANIZATION OF PROGRAMMING LANGUAGES (3)
Prerequisites: Grades of C or better in CMSC 212 (or CMSC 214) and CMSC 250.
Notes: Two hours of lecture and two hours of lab each week
Syllabus: HTML
Description: The run-time organization of programming languages (e.g., ALGOL, PL/1, Pascal, Ada, Lisp, APL, Prolog). Dynamic versus static scope rules. Storage for strings, arrays, and records.



CMSC 351 ALGORITHMS (3)
Prerequisites: Grades of C or better in CMSC 212 (or CMSC 214) and CMSC 250.
Notes: Formerly CMSC 251. Three hours of lecture each week
Syllabus: HTML
Description: A systematic study of the complexity of some elementary algorithms related to sorting, graphs and trees, and combinatorics.



CMSC 390 HONORS PAPER (3)
Prerequisites: Admission to CMSC Honors Program.
Notes:
Syllabus: N/A
Description: Special study or research directed toward preparation of honors paper.



CMSC 411 COMPUTER SYSTEMS ARCHITECTURE (3)
Prerequisites: Grades of C or better in CMSC 311 and CMSC 330, or a grade of C or better in CMSC 400.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Input/output processors and techniques. Intra-system communication, buses, caches. Addressing and memory hierarchies. Microprogramming, parallelism, and pipelining.



CMSC 412 OPERATING SYSTEMS (4)
Prerequisites: Grades of C or better in (CMSC 311 or ENEE 350) and CMSC 330, or a grade of C or better in CMSC 400.
Notes: CMSC 411 recommended. Three hours of lecture and one hour of lab each week.
Syllabus: HTML
Description: A hands-on introduction to operating systems, including multiprogramming, communication and synchronization, memory management, IO subsystems, and resource scheduling polices. The laboratory component consists of constructing a small kernel, including functions for device IO, multi-tasking, memory management, dynamic linking and loading, socket-driven, window management.



CMSC 414 COMPUTER AND NETWORK SECURITY (3)
Prerequisites: Grades of C or better in (CMSC 311 or ENEE 350) and CMSC 330.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: An introduction to the topic of security in the context of computer systems and networks. Identify, analyze, and solve network-related security problems in computer systems. Fundamentals of number theory, authentication, and encryption technologies, as well as the practical problems that have to be solved in order to make those technologies workable in a networked environment, particularly in the wide-area Internet environment.



CMSC 415 CONCURRENT AND DISTRIBUTED SYSTEMS (3)
Prerequisites: A grade of C or better in CMSC 412.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Advanced topics and projects in contemporary computer systems, including distributed operating systems, IO subsystems, distributed shared memory, IO subsystems, mixed media systems, load-balancing, cache coherency, object-based operating systems and threads models.



CMSC 417 COMPUTER NETWORKS (3)
Prerequisites: Grades of C or better in CMSC 311 , CMSC 330 , and CMSC 351 .
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Computer networks and architectures. The OSI model including discussion and examples of various network layers. A general introduction to existing network protocols. Communication protocol specification, analysis, and testing.



CMSC 420 DATA STRUCTURES (3)
Prerequisites: A grade of C or better in CMSC 330 and CMSC 351 .
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Description, properties, and storage allocation of data structures including lists and trees. Algorithms for manipulating structures. Applications from areas such as data processing, information retrieval, symbol manipulation, and operating systems.



CMSC 421 INTRODUCTION TO ARTIFICIAL INTELLIGENCE (3)
Prerequisites: Grades of C or better in either (CMSC 330 and CMSC 251) or CMSC 420
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Areas and issues in artificial intelligence, including search, inference, knowledge representation, learning, vision, natural languages, expert systems, robotics. Implementation and application of programming languages (e.g., Lisp, Prolog, Smalltalk), programming techniques (e.g., pattern matching, discrimination networks), and control structures (e.g., agendas, data dependencies).



CMSC 422 PROGRAMMING ROBOTS (3)
Prerequisites: A grade of C or better in CMSC 214 and permission of department.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: An examination of programming issues involved in creating autonomous robots, which can interact with their environments in "intelligent" ways. Topics include traditional robotics, behavior-based robotics, sensor processing, sensor-based control, programming robotic behaviors. Team programming project. Note: this course cannot be taken for credit in the computer science graduate program.



CMSC 424 DATABASE DESIGN (3)
Prerequisites: A grade of C or better in CMSC 420.
Notes: CMSC 450 recommended. Three hours of lecture each week.
Syllabus: HTML
Description: Motivation for the database approach as a mechanism for modeling the real world. Review of the three popular data models: relational, network and hierarchical. Comparison of permissible structures, integrity constraints, storage strategies and query facilities. Theory of database design logic.



CMSC 426 IMAGE PROCESSING (3)
Prerequisites: A grade of C or better in CMSC 420.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: An introduction to basic techniques of analysis and manipulation of pictorial data by computer. Image input/output devices, image processing software, enhancement, segmentation, property measurement, Fourier analysis. Computer encoding, processing and analysis of curves.



CMSC 427 COMPUTER GRAPHICS (3)
Prerequisites: MATH 240 and CMSC 420.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: An introduction to the principles of computer graphics. This includes an introduction to graphics displays and systems, introduction to the mathematics of affine and projective transformations, perspective, curve and surface modeling, algorithms for hidden-surface removal, color models, methods for modeling illumination, shading, and reflection.



CMSC 430 THEORY OF LANGUAGE TRANSLATION (3)
Prerequisites: A grade of C or better in CMSC 330 or CMSC 400.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Formal translation of programming languages, program syntax and semantics. Finite state recognizers and regular grammars. Context free parsing techniques such as recursive descent, precedence, LL(k), and LR(k). Code generation, improvement, syntax directed translation schema.



CMSC 433 PROGRAMMING LANGUAGE TECHNOLOGIES AND PARADIGMS (3)
Prerequisites: A grade of C or better in CMSC 330.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Programming language technologies (e.g., object-oriented programming), their implementations and use in software design and implementation.



CMSC 434 HUMAN FACTORS IN COMPUTER AND INFORMATION SYSTEMS (3)
Prerequisites: A grade of C or better in CMSC 330; and PSYC 100.
Notes: Three hours of lecture each week
Syllabus: HTML
Description: Human factors issues in the development of software, the use of database systems, and the design of interactive systems. Science base (theories, models, usability studies, and controlled experimentation), and software engineering with user interface development environments. Issues include: programming and command languages; menus, forms, and direct manipulation; graphical user interfaces, computer-supported cooperative work, information search and visualization; input/output devices; and display design.



CMSC 435 SOFTWARE ENGINEERING(3)
Prerequisites: A grade of C or better in CMSC 412 or 417 or 420 or 430 or 433
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: State of the art technique in software design and development. Laboratory experience in applying the techniques covered. Structured design, structured programming, top-down design and development, segmentation and modularization techniques, iterative enhancement, design and code inspection techniques, correctness, and chief-programmer teams. The development of a large software project.



CMSC 450 LOGIC FOR COMPUTER SCIENCE (3)
Prerequisites: CMSC 351 and MATH 141
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Elementary development of propositional and first-order logic accessible to the advanced undergraduate computer science student, including the resolution method in propositional logic and Herbrand's Unsatisfiability Theorem in first-order logic. Included are the concepts of truth, interpretation, validity, provability, soundness, completeness, incompleteness, decidability and semi-decidability. This is the same course as MATH 450. Credit will be granted for only one of the following: CMSC450/MATH450 or MATH445.



CMSC 451 DESIGN AND ANALYSIS OF COMPUTER ALGORITHMS (3)
Prerequisites: Grades of C or better in CMSC 214 and CMSC 351
Notes: CMSC 420 recommended. Three hours of lecture each week.
Syllabus: HTML
Description: Fundamental techniques for designing efficient computer algorithms, proving their correctness, and analyzing their complexity. General topics include sorting, selection, graph algorithms, and basic algorithm design paradigms (such as divide-and-conquer, dynamic programming and greedy algorithms), lower bounds and NP-completeness.



CMSC 452 ELEMENTARY THEORY OF COMPUTATION (3)
Prerequisites: Grades of C or better in CMSC 214 and CMSC 251
Notes: Three hours of lecture each week
Syllabus: HTML
Description: Introduction to alternative theoretical models of computation, types of automata, and their relations to formal grammars and languages.



CMSC 456 CRYPTOLOGY (3)
Prerequisites: Two 400-level mathematics courses or two 400-level computer science courses or permission of the instructor.
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Cryptology has become very important in protecting data in communications between computers. The subject lies on the border between mathematics and computer science. Mathematical topics include number theory and probability, and computer science topics include complexity theory.



CMSC 460 COMPUTATIONAL METHODS (3)
Prerequisites: Grades of C or better in MATH 240 and MATH 241; and CMSC 104 or CMSC 214
Notes: Three hours of lecture each week
Syllabus: HTML
Description: Basic computational methods for interpolation, least squares, approximation, numerical quadrature, numerical solution of polynomial and transcendental equations, systems of linear equations and initial value problems for ordinary differential equations. Emphasis is on the methods and their computational properties rather than on their analytic aspects. Listed also as MAPL 460. Credit will not be granted for both CMSC/MAPL 460 and CMSC/MAPL 466.



CMSC 466 INTRODUCTION TO NUMERICAL ANALYSIS I (3)
Prerequisites: Grades of C or better in MATH 240 and MATH 241; and CMSC 104 or CMSC 214
Notes: Three hours of lecture each week
Syllabus: HTML
Description: Floating point computations, direct methods for linear systems, interpolation, solution of nonlinear equations. Listed also as MAPL 466. Credit will not be granted for both CMSC/MAPL 460 and CMSC/MAPL 466.





CMSC 475 COMBINATORICS AND GRAPH THEORY (3)
Prerequisites: MATH 240 and MATH 241
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: General enumeration methods, difference equations, generating functions. Elements of graph theory, matrix representations of graphs, applications of graph theory to transport networks, matching theory and graphical algorithms. Listed also as MATH 475.



CMSC 477 OPTIMIZATION (3)
Prerequisites: A grade of C or better in either CMSC/AMSC 460, CMSC/AMSC 466, or CMSC/AMSC 467; Permission of Department
Notes: Three hours of lecture each week.
Syllabus: HTML
Description: Linear programming including the simplex algorithm and dual linear programs, convex sets and elements of convex programming, combinatorial optimization, integer programming. Listed also as MAPL 477.



CMSC 498 SPECIAL PROBLEMS IN COMPUTER SCIENCE (1-3)
Prerequisites: Permission of department
Syllabus: N/A
Description: An individualized course designed to allow a student or students to pursue a specialized topic not taught as part of the regular course offerings under the supervision of a Computer Science Faculty member. In addition, courses dealing with topics of special interest an/or emerging areas of computer science will be offered with this course number. Selected topics will be structured very much like a regular course with homework, project and exams. Credit according to work done.



CMSC 499 Independent Undergraduate Research (1-3)
Prerequisites: Permission of department
Syllabus: N/A
Description: Students are provided with an opportunity to participate in a computer science research project under the guidance of a faculty advisor. Format varies. Students and supervising faculty member will agree to a research plan which must be approved by the department. As part of the research plan, students should produce a final paper delineating their contribution to the field. Credit according to work done.
metrosomething is offline  
Old 12-16-2006, 09:41 PM   #9 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 14

foolsdelyte

Send a message via AIM to foolsdelyte
Default

Looks good. You should start with CMSC 131 if you haven't done any programming. Where are you in math? Level of calculus? If you've had some discrete math you could probably take CMSC 230 as well, but you should talk to your advisor first.
foolsdelyte is offline  
Old 12-16-2006, 09:55 PM   #10 (permalink)
 
Newb Techie

Join Date: Dec 2006

Posts: 14

foolsdelyte

Send a message via AIM to foolsdelyte
Default

Hey, I just reread your first post where you said you'd be transferring in the fall. Does that mean you won't be able to take any of these courses until next year? If that's the case, you should start learning CMSC 131 and 132 on your own NOW by following the course syllabus (you can always ask questions here); it's possible that a professor will let you into an upper level course straight away next fall if you can convince him that you've had some programming experience.
foolsdelyte is offline  
 
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On