2010-03-14 1 views
2

저는 컴퓨터 과학 학생이며 온라인에서 공부하고 있습니다. 자체 연구, 독립적 인 연구 및 연습을 많이해야합니다. 나는 프로그래밍이 주제 조합을 선택하는 것이 얼마나 도움이 궁금 :학부 CS 학생의 경우이 주제 조합이 얼마나 도움이됩니까?

  • 데이터 구조
  • OOP
  • 어셈블리 언어 & 컴퓨터 아키텍처

을 나는 또한 취할 수있는 옵션을 가지고 있지만 어셈블리 언어 대신 DLD (Digital Logic Design) 또는 데이터 통신 과정. 나의 관심은 프로그래밍에 있으며 나는 또한 지역 소프트웨어 하우스에서 프로그래머로 일하고있다. 누구나 나에게 좋은 조언과 제안을 줄 수 있습니까?

답변

3

귀하의 목록에서 귀하가 지연을 고려할 수있는 유일한 것은 OOP입니다.나는 객체 지향 디자인 객체 지향 프로그래밍 구별 할주의한다 :

  • 객체 지향 데이터 추상화로 프로그래밍 학습을위한 오늘의 용어입니다 디자인. 이것은 모든 프로그래머의 도구 상자에 필수적인 부분이며 데이터 구조의 모든 좋은 과정의 일부 여야합니다. 프로그래밍

  • 객체 지향 상속 통해 구현을 재사용하는 기술이다. 학부생을 가르치는 수년 간의 경험을 통해 2 차원 그래픽 사용자 인터페이스 구축과 같이 매우 특수화 된 설정을 제외하고는 이것이 어렵고 고급 주제라는 것을 알게되었습니다.

가능한 한 많은 OO 디자인을 가져오고, 더 많은 경험이있을 때까지 상속을 피하십시오.

마지막으로 어셈블리 코드와 기계 아키텍처는 계산식 에 대한 깊은 이해와 직관적 인 느낌을 개발하려는 경우 필수 주제입니다. 이 주제들을 적극 권장합니다. 확실히 논리 디자인 (명예로운 주제이지만 프로그래밍과는 거리가 먼)이나 데이터 통신 (그것이 무엇이든간에) 대신이 과정을 선택하십시오.

적어도 하나 이상의 다른 포스터가 관찰되었으므로 벨트 아래에 이러한 주제가 있으면 일부 기능 프로그래밍이 좋을 것입니다.

+0

귀하의 의견에 진심으로 감사드립니다. 고전적인 것들을 제외하고 객체 지향 디자인에 대한 좋은 교과서를 추천 할 수 있습니까? OML을 C++이나 Java로 구현하는 대신 UML로 배우는 것이 좋은 생각입니까? C, Haskell 및 Lua에 대한 전문 지식을 보유하고 있음을 발견했습니다.나는 Skype에서 당신과 채팅하고 싶다. 감사합니다. –

+0

@ Maxx : 디자인 관련 서적을 본 지 어느 정도 시간이 지났습니다. 나는 여전히 Liskov와 Guttag의 고전 텍스트 *를 좋아한다. * 프로그램 개발에서 추상화와 명세. 텍스트가 불량 언어 (CLU)를 사용하더라도 모든 핵심 아이디어가 있습니다. 직장에서 책장을 확인하고 내가 추천 할 수있는 다른 것들을보아야 할 것입니다. –

+0

Liskov & Guttag에는 최신 책이 있습니다. http://www.amazon.com/Program-Development-Java-Specification-Object-Oriented/dp/0201657686 (내가 읽지 않은 책입니다. 원본도 내가 좋아하는 주제입니다. .) –

5

디지털 논리 설계 및 컴퓨터 아키텍처는 저수준 컴퓨터 개념에 대한 이해와 멋진 작업 최적화 컴파일러에 대한 이해를 돕습니다. 나열된 코스들은 나에게 좋은 조합처럼 들립니다.

3

괜찮아 보입니다. 대학에있는 동안 기능 프로그래밍을 배울 수 있다면, 그렇게해야한다고 생각합니다. 이것이 당신의 지평을 넓힐 것입니다.

프로그래밍 작업을 끝내려면 오픈 소스 프로젝트에 참여하고 실제 경험을 얻는 것이 좋습니다. 프로그래머가 실제로 프로젝트를 프로그래밍함으로써 프로그래밍에 대해 더 많이 배우고, 교실에서 프로그래밍하는 방법을 배우는 것보다 배우게됩니다. 이론적 지식과 경험 모두를 갖는 것이 중요합니다.

+0

컴퓨터 과학 학생을 위해 인터넷에서 오픈 소스 프로젝트를 권장 할 수 있습니까? C/C++ 프로젝트에서 기꺼이 작업하게 될 것입니다. –

0

알고리즘 과정이 필요합니다. 컴파일러 디자인 과정 또한 매우 유용합니다. 그리고 인공 지능의 광대하고 흥미로운 분야가 있습니다.

+0

컴파일러 디자인과 AI는 데이터 구조와 알고리즘에 대한 지식이 필요하다는 점에서 고급 과정입니다. 알고리즘은 의심의 여지없이 매우 중요하고 흥미로운 코스입니다. 그리고 나는 그것이 데이터 구조와 함께 취해 져야한다고 생각합니다. 어떻게 생각해? –

+0

예, 또는 알고리즘을 DS 직후에 수행 할 수 있습니다. –

1

첫 두 과목 (데이터 구조 및 OOP)은 종속성이있는 것 같습니다. 데이터 구조로 들어가기 전에 먼저 OOP를 이해해야합니다.

마지막 주제 (어셈블리 언어 & 컴퓨터 구조)는 데이터 구조와 동시에 사용할 수 있습니다.하지만 어셈블리로 들어가기 전에 기본 프로그래밍 클래스를 사용하고 OOP를 배울 것입니다.

참고로

, 이것은 우리 학교의 명예 프로그램이 걸리는 구조이다 (그리고 지금까지 잘되었습니다) :

1st Semester: 
Data Structures and Algorithms 
Intro to Logic 

2nd Semester: 
Intro to Computer Architecture 
Discrete math 

3rd Semester: 
Advanced Computer Architecture 
Application of theory(e.x. compression, encryption, error correction) 
Programming languages 

4th Semester: 
Operating Systems(done in x86, uses MIT course material) - challenging but very fun and rewarding class 


Sometime after 4th semester: 
Algorithms or Automata Theory 

을 내 학교에서 네 번째 학기 후에는 거의 무료로 당신이 무엇을 수있는 좋은 방법입니다 (우등 학생으로서) - 대부분의 사람들은이 시점에서 대학원 수업을 듣습니다.

이 내용을 나열하는 것은 내 학교가 이론 (논리, ​​이산 성 일치 등) 및 구현 (아키텍처, 운영 체제 등)의 "2 트랙"모델을 사용함을 입증하는 것입니다. CS에 관심이 있다면, 둘 다 잘 숙련되어 있어야합니다. 당신은 이론을 이해하고 그것을 잘 "잘 둥근"컴퓨터 과학자로 구현하는 방법을 모두 이해해야합니다.

제 조언은 비슷한 모델을 따르는 것입니다. 건축 수업을 듣고 이론 수업을 듣는다.

+0

데이터 통신이 프로그래밍의 다른 주제와 함께 공부할 때 일관성이 없거나 유익하지 않다고 생각하십니까? 아날로그에서 디지털 및 디지털 - 아날로그 변환에 대한 이론과 실습이 있지만 (입문 단계 임). 제발 생각해보십시오. –

+0

내가 추천 한 것은 좋은 "수업"세트였습니다. 물론 다른 선택 과목을 선택해야합니다. 내 충고는 당신이 관심있는 분야를 선택하는 것입니다. 핵심 수업은 기초 숙련도를 제공 할 것이지만 선택 수업은 당신이 좋아하는 것을 탐구하고 연구에 참여할 수있는 능력을 제공 할 것입니다! "데이터 통신"의 의미를 실제로 알지 못하지만 수업에 관심이 있다면 그렇게하십시오. – Mike

+0

데이터 통신은 디지털 형식의 데이터 전송 연구에 관한 것입니다. LAN, WAN, 인트라넷 및 인터넷에 대한보다 광범위한 연구입니다. 또한 스타, 버스, 링, 토큰 링 등과 같은 디지털 변환 및 네트워크 토폴로지와 관련된 소켓 및 기타 주제를 다룹니다. 소켓 또는 네트워크 프로그래밍을 도와 주시겠습니까? 나는 그것이해야한다고 생각한다, 당신은 무엇을 말 하느냐? –

관련 문제